我的程序,找到任何子窗口,如果一个3部分的应用程序显示错误框,然后我想关闭它的情况..当服务器没有被锁定时,它工作正常。
代码:
[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;
}
如果服务器被锁定但是正在运行,可以这样做吗?
答案 0 :(得分:1)
当计算机被锁定时,出于安全考虑,您可以做的事情非常有限。我怀疑是否有办法解决这个问题,除非你要么停止计算机被锁定,要么阻止消息框出现在首位。
您试图用错误的方法解决问题。
找出有关该错误消息框的内容,并尽力避免这种情况发生。当PC被锁定时,不要指望你能做多少。