2013-07-05 2 views
1

Я хочу, чтобы скопировать c:\Windows\regedit.exe в тот же каталог с regedit2.exe именем Но когда я пытаюсь скопировать его, я беру ошибку, которая сказать regedit.exe файл не найден»или иногда скопировать его под windows\SysWOW64 каталога. А на самом деле Я knıow win64 перенаправляет его Но как я могу отключить перенаправление и скопировать окна/regedit.exe в Windows/regedit2.exe. Мой пример кодаКак отключить перенаправление на Win64

if(File.Exists(@"c:\Windows\regedit.exe")) 
try 
{ 
File.Copy(@"c:\Windows\regedit.exe", @"c:\Windows\regedit2.exe", true); 
} 
catch (Exception ex){} 

есть ли тот, кто может помочь мне

ответ

4

там доступны функции Win32, которые могут отключить и включить redi Реакционный.

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

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

Пример:

IntPtr wow64Value = IntPtr.Zero; 

// Disable redirection. 
Wow64DisableWow64FsRedirection(ref wow64Value); 

// Do whatever you need 
// ..................... 

// Re-enable redirection. 
Wow64RevertWow64FsRedirection(wow64Value); 
+0

я постараюсь поблагодарить у так много – happy

+0

Спасибо, я не думаю, что есть способ сделать это в чистом .net? – WHol

Смежные вопросы