我编写Windows服务以使用指定路径启动应用程序并发送文件名作为其参数。 =>我在CreateProcessAsUser
代码上使用了C#
:
如果文件名来自a,b,c ... z character =>成功
如果文件名是日语=>应用程序获取的文件名不正确
P / S:我调试了windows服务:传递给CreateProcessAsUser
的文件名是正确的,但是在应用程序中没有。
问题:如果文件名是日文,我怎样才能正确获取文件?
更新:使用CreateProcessAsUserW()
[DllImport("advapi32.dll", EntryPoint = "CreateProcessAsUserW", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public extern static bool CreateProcessAsUserW(IntPtr hToken, String lpApplicationName, String lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes,
ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandle, int dwCreationFlags, IntPtr lpEnvironment,
String lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation);
答案 0 :(得分:0)
在所有结构和CharSet = CharSet.Unicode
例程
CreateProcessAsUser