vb.net経由で完全なファイルパスを使用してアプリケーションを終了したいが、そのプロセスの下にそのファイルが見つかりませんでした。 Process.Startのような簡単なProcess.Stop(ファイルパス)を望んでいましたが、そのような運はありません。vb.netのファイルパスを使用してアプリケーションをプログラムで終了する
どうすればいいですか?
vb.net経由で完全なファイルパスを使用してアプリケーションを終了したいが、そのプロセスの下にそのファイルが見つかりませんでした。 Process.Startのような簡単なProcess.Stop(ファイルパス)を望んでいましたが、そのような運はありません。vb.netのファイルパスを使用してアプリケーションをプログラムで終了する
どうすればいいですか?
各プロセスの[モジュール]プロパティを調べて、必要に応じてファイル名を確認する必要があります。ここで
は例です:VB.NET
Dim path As String = "C:\Program Files\Ultrapico\Expresso\Expresso.exe"
Dim matchingProcesses = New List(Of Process)
For Each process As Process In process.GetProcesses()
For Each m As ProcessModule In process.Modules
If String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) = 0 Then
matchingProcesses.Add(process)
Exit For
End If
Next
Next
For Each p As Process In matchingProcesses
p.Kill()
Next
C#
string path = @"C:\Program Files\Ultrapico\Expresso\Expresso.exe";
var matchingProcesses = new List<Process>();
foreach (Process process in Process.GetProcesses())
{
foreach (ProcessModule m in process.Modules)
{
if (String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) == 0)
{
matchingProcesses.Add(process);
break;
}
}
}
matchingProcesses.ForEach(p => p.Kill());
EDIT:は、文字列の比較のために、アカウントに大文字と小文字の区別を取るために、コードを更新。
は
System.Diagnostics.Process.GetProcessesByName(nameOfExeFile)1次回を()してみてください。(殺す)
これは、ファイルのパスを無視します。
それをやる*パスはありますか?または、ファイルパスからファイルの名前を見つける方法はありますか? – Cyclone
なぜ私は真剣に、プロファイルが、彼は南極からだとすぐに購入可能でしょうMMORPGを作っていると言う男を取るだろう。ところで、ファイルパスを使ってアプリケーションを終了させることはありません。代わりに、通常は実行可能ファイルの名前であるプロセスの名前を使用します。 –
南極のことは冗談ですが、MMORPGは販売されていません。私の最新の仕事(ソフトウェアはmmoと無関係です)は間もなく発売予定です。なぜ私は小さい冗談を取れない人を真剣に受けなければならないのですか?私はあなたがファイルパスを介してアプリケーションを終了させないことを知っていますが、私はそうする方法について尋ねています。 – Cyclone