5

メッセージボックスを検討して、ユーザーに「はい」または「いいえ」と答えるように促します。XPマシンと1台のWindows7ビルドマシンで動作します。

ただし、Windows7Embeddedマシンでは機能しません。エラーメッセージはなく、MessageBoxは表示されません。createDatabase();そこから作成されたデバッグファイルを見つけることができ、その前にmessageBoxがなくても呼び出されるため、ユーザーが[はい]ボタンをクリックしたと想定しています。

MessageBoxに必要なアセンブリ(System.Windows.Forms.dll)を見つけることができます。これは、Windows7ビルドマシンと同じ場所にあります。なぜか分かりますか?ありがとう

DialogResult result = System.Windows.Forms.MessageBox.Show(
    "Do you want to update your database?\nWarning: All your data will be erased if you click Yes !",
"Update Database",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);

if (result == DialogResult.Yes)
{
    string[] cmdLines2 = { @"C:\AndeDB\AndeDB.db is here and selected yes" };
    //it will create, open and write or overwrite
    File.WriteAllLines(@"C:\Temp\dbcheck2.txt", cmdLines2);
    createDatabase();
}
4

2 に答える 2

5

この投稿から、Windows7Embeddedの「メッセージボックスのデフォルトの返信」コンポーネントを無効にすることができます。詳細については、msdnを参照してください。

于 2010-11-11T21:38:54.470 に答える
4

ここでのキーワードは「埋め込み」です。このようなバージョンのWindowsは、多くの場合、ヘッドレス(モニターなし)で実行するように構成されているか、誰も近くにいなくても動作するように最適化されています。MessageBoxは、このような構成には有害です。マシンは実行を停止し、誰もその理由を知ることができません。

システムビルダーに戻って、これを制御するオプションを見つける必要があります。

于 2010-11-11T21:43:27.993 に答える