4

私はこのコードを持っています:

 Process myProcess = new Process();

 myProcess.StartInfo.UseShellExecute = true;
 myProcess.StartInfo.FileName = "rdpclip.exe";
 myProcess.Start();

system32 にある exe ファイルを起動するには

システムファイルが見つからないというエラーが常に発生します。Windows 2008 サーバーで。

StartupInfo.FileName="c:\\windows\\system32\\rdpclip.exe" を設定しても、まだファイルが見つかりません!?

ファイルを別のフォルダに置くと動きますが、System32では起動しません。このプロセスを強制終了してやり直す必要があるだけですが、C# でこのような単純なことを行うのがこんなに面倒だとは思いませんでした。

4

2 に答える 2

4

このエラーは、通常、そのフォルダへのアクセス許可がないことを意味するため、誤解を招く可能性があります。プログラムを作成してみて、結果の.exeを右クリックし、[管理者として実行]をクリックします。

于 2012-11-24T06:33:56.847 に答える
4

これを試してください (System.Runtime.InteropServices をインポートする必要があります):

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);

IntPtr ptr = IntPtr.Zero;
if(Wow64DisableWow64FsRedirection(ref ptr))
{
    Process myProcess = new Process();
    myProcess.StartInfo.UseShellExecute = true;
    myProcess.StartInfo.FileName = "rdpclip.exe";
    myProcess.Start();
    Process.Start(myProcess);
    Wow64RevertWow64FsRedirection(ptr);    
}
于 2013-02-22T14:14:02.027 に答える