これは非常に初歩的な方法です。ファイルをアクティブにするときに既知の場所にファイルを書き込んだ後、フォームを読み込むたびにそのファイルの存在を確認します。それがあれば、直ちにForm2を表示してください。もしそうでなければ、彼らに活性化する機会を与えてください。
異なり方法はどこかのレジストリまたはデータベースの起動状態を保存したり、することですが、全体のプロセスは同じ
サンプルコードについてです:
まず、取得する方法私たちが作成しようとしているファイルのパス:
private string GetActivatedFilePath()
{
var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var thisExeName = Path.GetFileNameWithoutExtension(
System.Reflection.Assembly.GetEntryAssembly().Location);
return Path.Combine(appDataPath, thisExeName, "Activated.txt");
}
次に、ファイルを作成する方法のカップル(Activate()
)ファイルが存在する場合、(IsActivated
)を確認し、ファイルを削除します(Deactivate()
):
private void Activate()
{
if (!IsActivated())
{
var filePath = GetActivatedFilePath();
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
File.Create(filePath);
}
}
private bool IsActivated()
{
return File.Exists(this.GetActivatedFilePath());
}
private void Deactivate()
{
if (IsActivated())
{
File.Delete(GetActivatedFilePath());
}
}
その後、我々はまた、我々は複数の場所でこれを呼び出すことになるので、第二のフォームを表示するメソッドを作成することができます。これを修正して、現在のフォームを非表示にしてから、2番目のフォームをダイアログとして表示します(つまり、メインフォームに戻ることはできず、2番目のフォームが閉じるまでコードが最初のフォームで一時停止します)。
private void Form1_Load(object sender, EventArgs e)
{
// If they user is already activated, show the second form immediately
if (IsActivated())
{
ShowForm2();
}
}
そして:
private void ShowForm2()
{
Form2 n = new Form2();
this.Hide();
n.ShowDialog();
this.Close();
}
彼らは私たちのイベントで活性化している場合今、私たちは確認することができ、そして、彼らはその後、ある場合は、直ちに第二の形式を示しています。二つ目は閉じたときに最初にフォームを閉じます現在のコードでは、これらの関数を使用してユーザーをアクティブ化することもできます。私はコードがActivate
ボタンの背後にあると仮定しています:
private void btnActivate_Click(object sender, EventArgs e)
{
bool activated = false;
if (textBox1.Text.Length > 7)
{
string mac = textBox1.Text;
string str1 = mac.Substring(4, 1);
string str2 = mac.Substring(5, 1);
string str3 = mac.Substring(7, 1);
string str4 = mac.Substring(2, 1);
string pattern = str1 + str2 + str2 + str3 + str4;
activated = textBox2.Text == pattern;
}
if (activated)
{
MessageBox.Show("Program activated!!!");
Activate();
ShowForm2();
}
else
{
MessageBox.Show("Wrong key");
}
}
レジストリまたはファイルの使用を検討してください。 – SLaks
フォームとコントロールに名前を付ける必要があります。 – SLaks
メインフォームとしてロードするProgram.csを決定することができます。 – Psi