1

簡単なコード:

 ProcessStartInfo psi = new ProcessStartInfo(path);
 psi.UseShellExecute = false;
 Process.Start(psi);

パスが C:\Users\Marat\AppData\Local\MyCompany\Program.exe の場合、問題ありません。

ただし、パス = C:\Users\Marat\Local Settings\Application Data\MyCompany\Program.exe の場合

例外を取得しています:

System.ComponentModel.Win32Exception(0x80004005): 無効な名前の要求が行われました。現在、要求された名前を取得できません

実際には、すべてうまくいきましたが、ある時点でこのエラーが発生し始めました。

4

1 に答える 1

1

Windows 7のローカル設定フォルダーを覚えている限り、これはAppDataフォルダーへのリンクであり、主に古いWindows Vista以前のアプリケーションとの互換性のために使用されます。実際には、そのリンクの所有者を変更しない限り、直接アクセスすることはできません(これはシステムです)、それがおそらくこのエラーが発生する理由です。

もう1つの原因は、プロセスの開始時にパスまたはその内容をどのように構成するかを示していないため、名前の空白である可能性があります。

于 2012-08-20T17:11:22.677 に答える