如何使用带有参数的CreateProcessAsUser是日语

本文关键字:CreateProcessAsUser 日语 参数 何使用 | 更新日期: 2023-09-27 18:37:25

我编写Windows服务以使用指定路径启动应用程序,并发送文件名作为其参数。 => 我在C#代码上使用CreateProcessAsUser

  1. 如果文件名来自 a,b,c...Z 字符 =>成功

  2. 如果文件名是日语 => 文件名在应用程序时不正确

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);

如何使用带有参数的CreateProcessAsUser是日语

在所有结构和例程中使用CharSet = CharSet.Unicode CreateProcessAsUser