Damian ale ja nie uruchamiam na nowo programu tylko otwieram kolejny Form za pomocą:
setpassword pass_dial = new setpassword();
pass_dial.Show();
Plik główny:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace WindowsFormsApplication1
{
public partial class Main : Form
{
public string dir_password = "";
public string directory;
public Main()
{
InitializeComponent();
}
private void browse_button_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
directory = folderBrowserDialog1.SelectedPath;
folder_path.Text = folderBrowserDialog1.SelectedPath;
}
}
private void nowaBlokadaToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Restart();
}
private void button_setpassword_Click(object sender, EventArgs e)
{
setpassword pass_dial = new setpassword();
pass_dial.Show();
}
private void button_lock_Click(object sender, EventArgs e)
{
MessageBox.Show(directory);
if (dir_password == "")
{
MessageBox.Show("Nie podałeś hasła", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Kod źródłowy setpassword:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace WindowsFormsApplication1
{
public partial class setpassword : Form
{
public setpassword()
{
InitializeComponent();
}
Main main_activity = new Main();
private void button_password_ok_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(setpassword_1.Text) && String.IsNullOrEmpty(setpassword_2.Text))
{
MessageBox.Show("Wypełnij wszystkie pola", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
if (setpassword_1.Text != setpassword_2.Text)
{
MessageBox.Show("Hasła nie pasują do siebie", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show(main_activity.directory);
}
}
}
private void button_password_cancel_Click(object sender, EventArgs e)
{
this.Hide();
}
}
}
Dobra, w tym kodzie mam Main, w którym wybieram folder. Ścieżkę do folderu przypisuję do zmiennej directory. Dla testów wyświetlam tą zmienną za pomocą przycisku Zablokuj ( kontrolka Main ) i to działa ale jak otworzę setpassword za pomocą przycisku Ustaw hasło ( kontrolka main ) to ten Form setpassword już mi nie wyświetli zawartości zmiennej directory.
Docelowo ma być tak że w formularzu setpassword ustawiam hasło i to hasło przypisuje się do zmiennej znajdującej się w form Main i już ta wartość od razu się tam znajduje.
Jeśli chodzi o szyfrowanie hasła itp no to sprawa oczywista ale po co mam się tym teraz zajmować jak mam taki problem ;/
Ogólnie próbuję to napisać na podobiznę tego projektu:
http://www.codegain.com/articles/csharp/miscellaneous/folder-protection-for-windows-using-c-sharp.aspx
jednak w wersji dostosowanej bardziej do swoich potrzeb.