0

私の VB.net アプリケーションでは、System.Diagnostics.Process.Start("c:\TEMP\MyFile.pdf") を使用して PDF ファイルを開いています。

何らかのイベントでこのファイルをプログラムで閉じることは可能ですか?

4

4 に答える 4

3

はい、非常に洗練されたソリューションではありませんが、1 つの方法があります。

PDF プロセスを開始すると、グローバル変数でプロセス ID を取得します。

Dim id As Integer 'Global variable
id = System.Diagnostics.Process.Start("C:\Temp\myfile.pdf").Id

次に、プロセスを強制終了する必要がある場合は、次のようにします。

System.Diagnostics.Process.GetProcessById(id).Kill()

(実際に実行されているこの ID を持つプロセスがあることを確認してください!)

プロパティを使用してProcess.HasExited、PDF が閉じられているかどうかを確認し、それに基づいてコードを処理することもできます。

于 2013-04-12T16:28:33.253 に答える
0

これはC#ですが、便利かもしれません...

var myPDFEvent = System.Diagnostics.Process.Start(@"C:\Temp\myfile.pdf"); myPDFEvent.Exited += new EventHandler(myPDFEvent_Exited); myPDFEvent.EnableRaisingEvents = true;

void myPDFEvent_Exited(object sender, EventArgs e) { System.IO.File.Delete(@"C:\Temp\myfile.pdf); }

于 2013-04-12T16:30:24.263 に答える
0

これはうまくいくかもしれません:

 Process1.Start()
 Process1.WaitForExit()
 If Process1.HasExited Then
     System.IO.File.Delete(Your File Path)
 End If

ツールボックスからプロセス オブジェクトをフォームに追加し、startinfo セクションを構成してください。

許可に問題がある場合。フォルダーを使用しAppDataます。プログラムの実行に必要なアクセス許可を持っています

于 2013-04-13T00:16:09.517 に答える