問題タブ [setforegroundwindow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
124 参照

winapi - ウィンドウが最前面に表示されない原因は何ですか?

状況によっては、ダイアログがフォアグラウンドでモーダルに表示されない原因は何ですか?

プロセス (KeePass.exe) が隠しウィンドウを所有しています。グローバル ショートカット (CTRL+A) は、ダイアログをフォアグラウンドで表示します。これは、DoModal メソッドを使用して行われます。そして、それは機能します。

しかし、私が知らないいくつかの状況では、次のことが起こります: ウィンドウがタスクバーに表示され、それをクリックした後にのみ表示されます。WndProc を上書きし、特定の WM_COPYDATA メッセージを待機する KeePass 用のプラグインを作成しました。このメッセージが届いた場合、ダイアログは DoModal を使用して表示されます。ただし、この場合はタスクバーにのみ表示され、フォアグラウンドには表示されません。

WM_COPYDATA メッセージは別のプロセスから送信されますが、これは問題ではありませんか? その理由は何ですか?

私はこれに長い間苦労しています。問題を説明するのが難しいほど奇妙です。

ダイアログを表示する前に SetForegroundWindow(hKeePassWindow) を発行しようとしましたが、変更はありませんでした。

0 投票する
1 に答える
3200 参照

winapi - バックグラウンド アプリケーションが別のプロセスのフォアグラウンド ウィンドウを設定できるようにする

まず、これが物議を醸す議論であることは承知していますが、これを技術的なものにしておくことができれば幸いです。

バックグラウンドで起動されるアプリケーションがあり、別のプロセスでウィンドウをアクティブ化/フォーカスできるようにしたいと考えています。ただし、アクティブ化するウィンドウのプロセスが AllowSetForegroundWindow(ASFW_ANY) を呼び出した場合でも、SetForegroundWindow の呼び出しは常に失敗します。

その理由は(IMO)、開始アプリケーションがバックグラウンドプロセスであり、入力を受け取っていないため、フォアグラウンドウィンドウを設定できないためです。したがって、すべてがタスクリストに表示されますが、表示されません。

そこで、すぐに閉じられ、その後SetForegroundWindow を正常に呼び出すことができる入力を受け取るダミー ウィンドウを作成してみました。しかし、私が表示するダミーウィンドウでさえ背景に表示されます。

しかし、私が電話すると

ダミーウィンドウを作成する前に、ウィンドウは実際にフォアグラウンドで作成され、後で別のプロセスで別の HWND に対して SetForegroundWindow を呼び出すことができます。

BUT: ダミー ウィンドウを作成しないと、AttachThreadInput を使用しても SetForegroundWindow はゼロを返します。

独自のウィンドウを作成した場合に AttachThreadInput ハックが成功する (および後で他のウィンドウで成功する) が、最初に独自のウィンドウを作成しないと失敗する理由がわかりません。

ダミー ウィンドウを作成せずに、バックグラウンド プロセスが別のプロセスの別のウィンドウで SetForegroundWindow を呼び出すにはどうすればよいですか?

[*] バックグラウンド アプリケーションは実際には gpg-agent.exe であり、パスワードが要求されるたびに pinentry.exe (私のアプリケーション) を呼び出します。pinentry.exe (バックグラウンド プロセスとして実行) は、別の実行中のアプリケーションからパスワードを要求する必要があるため、ウィンドウを前面に表示する必要があります ...

0 投票する
2 に答える
140 参照

winapi - ウィンドウを上に固定する方法

SetForegroundWindow他のアプリケーションのウィンドウを一番上に設定するために使用します。このウィンドウを上部に固定するにはどうすればよいですか? つまり、他のアプリケーションが を呼び出すとSetForegroundWindow、私のウィンドウは固定ウィンドウの下になります。

0 投票する
1 に答える
2801 参照

python - ShowWINdow() と SetForegroundWindow を正しく使用するには?

これが私がやりたいことです:

1) ユーザー名でアプリケーションを開く
2) いくつかの入力を
行う 3) 別のユーザー名でアプリケーションの 2 番目のウィンドウを開く
4) 再度いくつかの入力を
行う 5) 最初のアプリケーション ウィンドウに切り替えて、何かを行う
6) 2 番目のアプリケーションに切り替える

win32guiライブラリを使用してPythonでプログラミングしています。ShowWindowandを使用してみましたSetForegroundWindowが、正しく動作しません。誰かが非常に簡単な方法でそれを行う方法を説明してもらえますか?

0 投票する
0 に答える
588 参照

windows - Delphiで点滅するウィンドウを取得します(フォーカスが必要なウィンドウで、ウィンドウは前面に設定されません)

Windows 7 のタスクバーにボタンが点滅する「オートスイッチ」または「オートレイズ」ウィンドウを有効にする方法をインターネットで検索していましたが、それを無効にする方法しか見つかりません! それを有効にするには反対が必要なので、その回答を見て、レジストリキーForegroundLockTimeoutを見つけました。デフォルトで 200000ms に設定されていると思うので 1ms に設定しましたが、Windows XP 以降では影響はないと思います.. 以前は Microsoft の Tweak UI で自動切り替えを有効にすることができたことがわかりましたが、 Win 7でも動作しないようです。

Delphiでそれをプログラムしようとしましたが、SetForegroundWindowでウィンドウを一番上に設定できますが、注意が必要なウィンドウを検出できません-点滅しています。GetForegroundWindow を使用して前景ウィンドウを検出することもできますが、点滅しているウィンドウは検出できないため、上に設定できます。

だから私の質問は、デルファイで、バックグラウンドでフォーカスが必要なウィンドウの hwnd を取得することは可能ですか?