1

Windows 8.1 システム用の単純なカスタム シェル アプリケーションを WPF で作成しました。正常に機能しますが、レジストリの [実行] セクションでいくつかのアプリケーションを起動する必要があります。問題はありませんが、何を試しても起動せず、「指定されたファイルが見つかりません」というエラーが表示されます。

これは 64 ビット システム用に設計されているため、パスに C:\Windows\System32\ ではなく C:\Windows\Sysnative\ を使用すると修正されると聞きましたが、うまくいきませんでした。私のコードは次のとおりです。

Process processToStart = new Process 
{ 
    StartInfo = 
    { 
        FileName = @"C:\Windows\Sysnative\hkcmd.exe", 
        WorkingDirectory = @"C:\Windows\Sysnative\") 
    }
};
processToStart.Start();
4

2 に答える 2

4

これを機能させるために私が見つけた方法は、WOW64 ファイル システムのリダイレクトを無効にすることでした。他に何も機能していないようでした。
このリンクから: http://tcamilli.blogspot.co.uk/2005/07/disabling-wow64-file-system.html

[DllImport("Kernel32.Dll", EntryPoint="Wow64EnableWow64FsRedirection")]
public static extern bool EnableWow64FSRedirection(bool enable);

Wow64Interop.EnableWow64FSRedirection(false)
Process processToStart = new Process 
{ 
    StartInfo = 
    { 
        FileName = @"C:\Windows\Sysnative\hkcmd.exe", 
        WorkingDirectory = @"C:\Windows\Sysnative\") 
    }
};
processToStart.Start();
Wow64Interop.EnableWow64FSRedirection(true)
于 2015-04-01T15:39:26.043 に答える