4

私は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);
}

レジストリからプログラムの名前とプログラムパスを取得しています。

4

1 に答える 1

0

あなたの質問はあまり意味がありませんが、あなたが投稿したコードがあなたの関連するコード全体である場合、いくつかの問題が発生する可能性があります。

あなたStreamReaderはと呼ばれていますが、あなたは?readと呼ばれるストリームから読み込もうとしています。oku

また、StreamReader, you would be better of using aStreamが適切に閉じられて破棄されていることを確認するために、実際にusing`ブロックを閉じていることを示していません。

using (StreamReader read = new StreamReader(Environment.GetEnvironmentVariable("appdata") + "\\path.txt"))
{
    string path = read.ReadLine();
    string processname = Path.GetFileName("notepad");
    if (processIsRunning(processname) == false)
    {
        System.Diagnostics.Process.Start(path);
    }
}
于 2012-12-06T09:54:47.007 に答える