我有一个Windows服务应用程序,该应用程序显示确认弹出窗口以供进一步操作。当我在本地计算机上安装服务应用程序时,它工作正常,但是当我在远程计算机上安装服务应用程序时,不会显示确认弹出窗口。
[DllImport("Kernel32.dll", SetLastError = true)]
static extern int WTSGetActiveConsoleSessionId();
public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;
public static int ConfirmPopup(string message, string title)
{
try
{
WTSSendMessage(WTS_CURRENT_SERVER_HANDLE,
WTSGetActiveConsoleSessionId(), title, title.Length, message,
message.Length, 3, 0, out int response, true);
return response;
}
catch (Exception ex)
{
Trace.WriteLine($"Exception:ConfirmPopup()::{ex.Message}");
return 0;
}
}
[DllImport("wtsapi32.dll", SetLastError = true)]
static extern bool WTSSendMessage(
IntPtr hServer,
[MarshalAs(UnmanagedType.I4)] int SessionId,
String pTitle,
[MarshalAs(UnmanagedType.U4)] int TitleLength,
String pMessage,
[MarshalAs(UnmanagedType.U4)] int MessageLength,
[MarshalAs(UnmanagedType.U4)] int Style,
[MarshalAs(UnmanagedType.U4)] int Timeout,
[MarshalAs(UnmanagedType.U4)] out int pResponse,
bool bWait);
我们必须向远程计算机上的客户端显示一个演示,并且该演示在那里不起作用。在本地计算机上工作正常。