C# 如果服务器被锁定,是否可以向子客户端窗口发送密钥?

C# 如果服务器被锁定,是否可以向子客户端窗口发送密钥?,c#,winapi,setfocus,C#,Winapi,Setfocus,我的程序,找到任何子窗口,如果一个由三部分组成的应用程序显示一个错误框,那么我想关闭它。。当服务器未锁定时,它工作正常 代码: 如果服务器已锁定但正在运行,是否可以执行此操作?当计算机被锁定时,出于安全目的,您的操作非常有限。我怀疑是否有办法解决这个问题,除非你首先停止锁定计算机,或者阻止消息框出现 你试图用错误的方法解决问题 找出错误消息框的相关信息,并尽可能防止这种情况发生。当电脑被锁定时,不要期望你能做很多事情。(如果它看起来不起作用)-是的,我试过。res1==res2==true?真正

我的程序,找到任何子窗口,如果一个由三部分组成的应用程序显示一个错误框,那么我想关闭它。。当服务器未锁定时,它工作正常

代码:


如果服务器已锁定但正在运行,是否可以执行此操作?

当计算机被锁定时,出于安全目的,您的操作非常有限。我怀疑是否有办法解决这个问题,除非你首先停止锁定计算机,或者阻止消息框出现

你试图用错误的方法解决问题


找出错误消息框的相关信息,并尽可能防止这种情况发生。当电脑被锁定时,不要期望你能做很多事情。

(如果它看起来不起作用)-是的,我试过。
res1==res2==true
?真正地为什么不
res1==res2==true==true
?我本来可以使用return(res1&&res2)-它更易于阅读。(messagebox是不可能停止的,它是第三方应用程序,为什么要尝试所有这些,但我认为它必须解锁)谢谢。
[DllImport("user32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private extern static bool PostMessage(IntPtr hwnd, uint msg, IntPtr WParam, IntPtr lParam);

    [DllImport("user32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private extern static bool BringWindowToTop(IntPtr hwnd);

public static bool FocusWindowAndSendEnter(IntPtr hWnd)
{
    try
    { // hWnd = pointer to subwindow, like messagebox.

        uint WM_KEYDOWN = 0x0100;

       //Set focus
      var res1 =  BringWindowToTop(hWnd);

        //Send enter_Key 
      var res2 = PostMessage(hWnd, WM_KEYDOWN, (IntPtr)Keys.Enter, IntPtr.Zero);

      return (res1 == res2 == true);

    }
    catch (Exception ex)
    {
        Logger.LogException(MethodInfo.GetCurrentMethod().Name, ex);
    }

    return false;
}