0

私のプログラムは、サブウィンドウを見つけます。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;
}

サーバーがロックされているが実行されている場合、これを行うことはできますか?

4

1 に答える 1

1

コンピューターがロックされていると、セキュリティ上の理由から、実行できる操作が非常に制限されます。コンピュータのロックを停止するか、最初にメッセージボックスが表示されないようにしない限り、これを回避する方法があるとは思えません。

間違った方法で問題を解決しようとしています。

そのエラーメッセージボックスについてできることを見つけて、それが起こらないようにするためにできることをしてください。PCがロックされているときにできることはたくさんあるとは思わないでください。

于 2011-12-08T17:46:17.587 に答える