1

Internet Explorer ウィンドウを強制的に TOPMOST にしようとしています。Internet Explorer ウィンドウの上に他のウィンドウが表示されないようにする必要があります。インターネットエクスプローラーを使用する必要があります。私もこれを Windows 7 で実行しています。どうやら違いはあるようですが、私が見つけたすべての情報はどちらかというと曖昧で、基本的には「なぜこれは簡単ではないのか!」と叫ぶ人々で構成されています。これは私のコードです:

HWND ieWin = FindWindow(TEXT("IEFrame"), 0);
SetFocus(ieWin);
SetWindowPos(ieWin, HWND_TOPMOST, 0, 0, 100, 100, SWP_SHOWWINDOW );
UpdateWindow(GetParent(ieWin));

これはループで実行されているため、ウィンドウにこれらの設定を継続的に強制することができますが、役に立ちません。上記のコードが機能する場合と機能しない場合があります。

4

2 に答える 2

3

いいえ。2 つのプログラムがこれを行った場合はどうなりますか? .

于 2012-03-09T15:46:06.730 に答える
0

多くの議論の後、ループを使用してウィンドウを強制的に上に保つようになりました。将来、他の誰かが本当にこれを行う必要がある場合は、以下の手順に従っていることを確認する必要があります.

1) ユーザーが開くことができるウィンドウを完全に制御できるようにします。私の場合、ユーザーは私のプログラムと Internet Explorer しか開くことができません。

2) IE ウィンドウを表示するように初めて設定するときは、前景に設定します。

3) ウィンドウを TOP_MOST に設定するためにループしている間は、フォーカスを IE ウィンドウに設定しないでください。

4) SWP_SHOWWINDOW、SWP_NOSIZE、および SWP_NOMOVE があることを確認します。それ以外の場合、そのループはウィンドウのサイズと場所を繰り返しごとに変更します。

そして、それを可能な限り回避できる場合は、これをまったく行わないでください:P

于 2012-03-16T12:50:44.553 に答える