0

たとえば、私はこのコードを持っています:

Process proc = new Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "dxdiag.bat";
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
proc.Close();

プロジェクト \debug ディレクトリからファイル dxdiag.bat を削除すると、次の行で例外が発生するかどうかをテストしました。

proc.Start();

ファイルが見つからないこと。ファイルが \debug ディレクトリにあると、機能します。

dxdiag.bat ファイルを自分のプロジェクトに追加したいので、自分のプログラムを他の人に送信すると、その人は自分のプログラムを実行でき、プロセスはプログラム自体から dxdiag.bat を実行するので、プログラムを送信したファイルは実行されません。自分のハードディスクにbatファイルが必要です。

4

6 に答える 6

1

最も簡単な解決策は、Visual Studio でプロジェクトにバッチ ファイルを追加することです。これを行うには、次の手順を実行します。

  1. プロジェクトを保持するディレクトリにバッチ ファイルをコピーします。
  2. ファイルをプロジェクトに追加します。
  3. プロパティ「Build Action」を「Content」に設定します。
  4. プロパティ「出力ディレクトリにコピー」を「常にコピー」に設定します。

これにより、バット フィルがビルドの出力ディレクトリにコピーされます。その後、プログラムを配布する場合は、出力ディレクトリを送信できます。もちろん、これはユーザーフォームがbatファイルを削除するのを妨げません。

もう 1 つのオプションは、バッチ ファイルをリソースとしてプロジェクトに埋め込み、そこから使用することです。

于 2013-07-26T06:20:17.413 に答える
1

プロジェクトを右クリックして dxdiag.bat をプロジェクトに追加し、既存の項目の追加を選択します。次に、プロジェクトに入ったら、dxdiag.bat ファイルを右クリックしてプロパティを選択します。「出力ディレクトリにコピー」プロパティを「常に」に設定します。

于 2013-07-26T06:22:23.950 に答える
0
// create the dxdiag.bat file 
using (StreamWriter sw = new StreamWriter("dxdiag.bat"))
{
   sw.WriteLine(".........");
   // ......
}

Process proc = new Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "dxdiag.bat";
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
proc.Close();

//delete the file 
File.Delete("dxdiag.bat");
于 2013-07-26T06:14:36.943 に答える
0

.bat ファイルを埋め込むことができます。必要な場合は、これらのファイルが存在することを確認します。いいえの場合は、埋め込みリソースから %appdata%\YourAppName にコピーしてから使用します。

埋め込みリソースの読み方:埋め込みリソース テキスト ファイル
の読み方 Microsoft の埋め込みリソースの説明: http://support.microsoft.com/kb/319292

于 2013-07-26T06:24:23.070 に答える