私はc#windowsサービスで書いています。問題なく動作している場合、このようにティッカーします。
bool processIsRunning(string process)
{
return (System.Diagnostics.Process.GetProcessesByName(process).Length != 0);
}
if (!processIsRunning("notepad"))
{
Process.Start("notepad.exe");
}
コードがこのように機能していない場合。
StreamReader read = new StreamReader(Environment.GetEnvironmentVariable("appdata") + "\\path.txt");
string path = oku.ReadLine();
string processname = Path.GetFileName("notepad");
if (processIsRunning(processname) == false)
{
System.Diagnostics.Process.Start(path);
}
レジストリからプログラムの名前とプログラムパスを取得しています。