Trying to run slui.exe from within a method using ProcessStartInfo and Process

1.9k views Asked by At

I'm having an issue with running slui.exe from a method in c#. I'm using the code:

ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\slui.exe"); Process p = new Process(); p.StartInfo = startInfo; p.Start(); p.WaitForExit();

but I keep getting a Win32Exception: 'The system cannot find the file specified'.

If I change the ProcessStartInfo to: (@"C:\Windows\System32\cmd.exe") it will launch just fine.

Is there something with running slui.exe in this context that is breaking?

I'm certain that the file is in the directory specified, so I'm stumped as to what may be going wrong here.

Any ideas how to call slui.exe from a c# method?

1

There are 1 answers

1
Hans Passant On

Slui.exe is only available as a 64-bit program on Windows x64. Your hard-coded path c:\windows\system32 will get re-directed to c:\windows\syswow64 when you run as a 32-bit process. And thus won't find the file.

Project + Properties, Compile tab, change the Platform target setting to "AnyCPU". Repeat for the Release configuration. And use Environment.GetFolderPath() to ensure it still works when Windows isn't installed to c:\windows.