私は 2 つのアプリを持っています。1 つは隠しウィンドウ (「hW」)、もう 1 つはコンソール アプリ (「CA」) で、そこから hW にコマンドを送信することを想定しています。コンソール アプリで hW ハンドルを取得しています。ここに質問があります。実行中の場合:
PostMessage(hwnd, WM_QUIT, NULL, NULL);
すべて正常に動作し、メッセージが hW に到達してオフになります。
PostMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)"texttext");
メッセージはハードウェアにまったく到達しません。Spy++ は、メッセージが hW に届かないことも示しています。それを防ぐ WM_SETTEXT に固有のものはありますか? 前もって感謝します。
わかった。ここで答えが見つかりましたhttp://cboard.cprogramming.com/windows-programming/72589-wm_settext-postmessage.html
API がスコープの問題から私を守ろうとしていることがわかりました。PostMessage() WM_SETTEXT、またはその他のシステム定義メッセージで常に失敗します。 パラメータとしてのポインタ。 非同期メッセージングが欲しかったので....
PPS
また、次のように見えます
SendMessage(hwnd, WM_QUIT, NULL, NULL);
アプリをターゲットにすることは何もしません。
HWND hNote;
if (!(hNote=FindWindow(L"Notepad",NULL)))
exit(1);
SendMessage(hNote, WM_QUIT, NULL, NULL);
その間
PostMessage(hNote, WM_QUIT, NULL, NULL);
動作します。
私には論理的ではないように見えます...どんな種類のメッセージでも適切に機能する普遍的な機能はありますか?