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

How to use CreateProcessAsUser with argument is japanese?

我编写 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