![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
自分のWindowから他のアプリのWindowに
移す事は可能でしょうか?
仕様上不可能なのでしょうか?
可能だとすれば
自アプリのWindowをhWmineとし
他アプリのWindowをhWotherとしたとき
どのようにすればいいのでしょうか?
ちなみに
DWORD dw_other=GetWindowThreadProcessId(hWother,NULL);
DWORD dw_mine=GetWindowThreadProcessId(hWmine,NULL);
AttachThreadInput(dw_mine,dw_other,TRUE);
ShowWindow(hWother,SW_SHOWMAXIMIZED);
SetForegroundWindow(hWother);
AttachThreadInput(dw_other,dw_mine,FALSE);
とするとすぐに一瞬他Windowにフォーカスが移りすぐに自Windowにフォーカスが戻ってきます
最後の
AttachThreadInput(dw_other,dw_mine,FALSE);
をはずしても同じでした
No.3
- 回答日時:
HWND SetForegroundWindowEx(HWND hWnd)
{
// 強制的に Foreground にする
HWND hWndOrg = ::GetForegroundWindow();
DWORD dwID= ::GetWindowThreadProcessId(hWndOrg, NULL);
AttachThreadInput(::GetCurrentThreadId(), dwID, TRUE);
::SetForegroundWindow(hWnd);
AttachThreadInput(::GetCurrentThreadId(), dwID, FALSE);
return hWndOrg;
}
の引数 hwnd を他のアプリのウィンドウズハンドルにすればいいと思います。
この回答への補足
ありがとうございます
前面に出したいhtmlのWindowはhWhtmlとし
前面に出ているのは自アプリのWindowでWmainとしたときに
DWORD dw_html=GetWindowThreadProcessId(hWhtml,NULL);
DWORD dw_main=GetWindowThreadProcessId(hWmain,NULL);
AttachThreadInput(dw_main,dw_html,TRUE);
SetForegroundWindow(hW);
AttachThreadInput(dw_html,dw_main,FALSE);
を実行しても一瞬フォーカスがhtmlにいくのですが
すぐに自アプリに戻ってきます
No.2
- 回答日時:
>ShellExecute(NULL,"open","mywindow.html",NULL,NULL,SW_SHOWMAXIMIZED);
起動直後だと早すぎるのかも。
WaitForInputIdleで起動したIEが入力待ちになるまで待ってみるとか。
>Sleep(1000);
1秒じゃ足りないのかも・・・
WaitForInputIdle()で試す前に1分くらい待ってみたらどうなります?
あと、Sleepじゃなくてちゃんとタイマー作ってみるとか。
この回答への補足
ありがとうございます
60秒でやってみると60秒たつまで
HTMLが前面に出てしかもフォーカスされています
しかし60秒後自アプリが起きてきてフォーカスを奪い取ります
だから
ShellExecute(NULL,"open",str1.c_str(),NULL,NULL,SW_SHOWMAXIMIZED);
だけで希望の処理はできているけれどもその後
自アプリがフォーカスを奪うのが問題のようです
自アプリが寝たままだと困りますがおきたときにフォーカスを取らなければ問題はないようです
No.1
- 回答日時:
>あとは、ボタンを押してってことなんで、ボタンのクリック時には処理をせずに、PostMessageで自分宛に
>独自メッセージをポストし、ポストしたメッセージを受け取ってから他アプリの最前面化をしてみるのも効果があるかも。
これどうなりますかねぇ?
もしくはタイマーでボタンを押してから1秒後ぐらいに処理させてみるとか。
単にボタンを押して、その後ボタンを戻す処理をWindowsがするから自ウィンドウにフォーカスが戻ってくるような気がするんですけど。
この回答への補足
ありがとうございます
サブを
BOOL CALLBACK EnumProc(HWND hW,LPARAM)
{
char s[999];
SendMessage(hW,WM_GETTEXT,999,(LPARAM)s);
if(string(s).find("MyWindow")!=string::npos)
{
ShowWindow(hW,SW_SHOWMAXIMIZED);
DWORD dw_html=GetWindowThreadProcessId(hW,NULL);
DWORD dw_main=GetWindowThreadProcessId(hWmain,NULL);
AttachThreadInput(dw_main,dw_html,TRUE);
SetForegroundWindow(hW);
AttachThreadInput(dw_html,dw_main,FALSE);
return FALSE;
}
とし
メインのボタン処理場所を
ofs.open("mywindow.html");
ofs<<"<title>MyWindow</title>"<<endl;
ofs.close();
ShellExecute(NULL,"open","mywindow.html",NULL,NULL,SW_SHOWMAXIMIZED);
b_out=true;
とだけし
WinMainのお決まりの処理を
while(GetMessage(&ms,NULL,NULL,NULL))
{
TranslateMessage(&ms);
DispatchMessage(&ms);
if(b_out==true)
{
Sleep(1000);
EnumWindows(&EnumProc,NULL);
b_out=false;
}
}
としましたがしっかりフォーカスが自分に戻ってきます
絶対にフォーカスを戻すんだという意気込みが感じられます
勿論自Windowを最小化するときれいにFocusがうつってくれます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ネットショッピング・通販・ECサイト) この水着、DWスタイルというサイトで見つけて購入したいのですが 怪しいサイトで他のとこから高値で売っ 1 2022/07/29 00:16
- 会社経営 値上げラッシュについてみなさんはどう思われますか? https://www.nikkei.com/t 6 2023/03/15 11:06
- 英語 It will most likely be necessary to perform a spli 2 2023/03/26 09:40
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- iOS デスクトップの画面が Prt Sc 出来ない。 1 2022/05/09 15:57
- 英語 Once it is anticipated that the possibility of a b 1 2023/03/04 09:14
- ドライブ・ストレージ ノートPCの容量について 5 2023/03/15 22:40
- 英語 The edges of the membrane were left outside the wi 3 2023/03/22 12:21
- Windows 10 マルチディスプレイ【モニター2つ並べて】プリントスクリーンを片方のだけ取るにはどうする? 3 2022/11/27 02:46
- 物理学 いくつか疑問点があったので教えて欲しいです。 流れが分かるように答えも書いてます。 (4)ΔW=Δq 2 2023/04/16 14:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
子ウインドウを閉じて 親ウイ...
-
難解!Flashの曜日別の画像変更...
-
ユーザーがクリックするまでフ...
-
VISTAで使えるフリーのH...
-
デュアルコアCPUの期待度は?
-
ファーストピアスのキャッチが...
-
mp3のタグが勝手に書き換わって...
-
ホームページビルダーV9での...
-
外部XMLでHTMLタグを使う
-
GeForce GTX 580の後継種は?
-
ApacheでFLASHが再生されない
-
ホームページの表示のされ方に...
-
用語の意味の確認です。
-
あなたの知ってるおもしろいデ...
-
flashの再生後に別ページに自動...
-
波紋のようなエフェクトを発生...
-
ハイタッチの、手の向きや求め...
-
Flashから新規ブラウザを開くこ...
-
この丸がしている部分は、この...
-
面白FLASH
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
googleサーチコンソールでの重...
-
ユーザーがクリックするまでフ...
-
LINEのステメやプロ画は変える...
-
ファーストピアスのキャッチが...
-
Access2010 SetFocusが当たらない
-
ASP.NET 動的コントロールのフ...
-
VS2013の選択した行に出る白枠...
-
TextBoxのカーソルを右端に移す...
-
子ウインドウを閉じて 親ウイ...
-
人体切断マジックの事でお聞き...
-
JSPで初期カーソル表示する方法
-
VBにて、非アクティブでフォー...
-
Canvasのメモリーリーク疑いに...
-
iframe インラインフレームにつ...
-
EXCEL VBAで URLの内容 が取...
-
webページに表示する文字の時間...
-
ホームページ作成での質問(初...
-
vb.netでフォーカスされている...
-
テキストエリアの末尾にフォーカス
-
背景画像 リサイズ jQuery maxI...
おすすめ情報