我正在使用 wtsapi32.dll。(窗口终端服务api)
我正在尝试从方法 WTSQueryUserConfig 获取用户信息。
[DllImport("wtsapi32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool WTSQueryUserConfig(
[MarshalAs(UnmanagedType.LPStr)] string pServerName,
[MarshalAs(UnmanagedType.LPStr)] string pUserName,
WTS_CONFIG_CLASS wtsConfigClass,
out StringBuilder pBuffer,
out int dataLength);
我对使用日语(unicode)的 SAM-Account-Name 的用户有疑问。
我用(unicode 版本)修改了我的课程:
[DllImport("wtsapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool WTSQueryUserConfigW(
[MarshalAs(UnmanagedType.LPStr)] string pServerName,
[MarshalAs(UnmanagedType.LPStr)] string pUserName,
WTS_CONFIG_CLASS wtsConfigClass,
out StringBuilder pBuffer,
out int dataLength);
但是我用日语 SAM-Account-Name 调用这个方法它不起作用。
没有 unicode 字符的用户可以使用非 unicode 版本方法正常工作。