У меня есть приложение-служба 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);
Мы должны показать клиенту демонстрацию на удаленной машине, и она там не работает.На локальной машине работает нормально.