![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
自分の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ランキング
-
ファーストピアスのキャッチが...
-
ASP.NET 動的コントロールのフ...
-
googleサーチコンソールでの重...
-
TextBoxのカーソルを右端に移す...
-
word
-
名古屋の栄と錦は治安悪い?
-
数式中の文字をCambria Math以...
-
Illustratorテキストエリアへ塗...
-
PowerPoint SmartArtの箇条書...
-
PDF→CSVへ変換
-
イラレでダブルクリックで文字...
-
Google マップに同心円と文字を...
-
VB.NET でのLaod/unLoad につ...
-
エクセルVBA シート全部のLine...
-
illustratorとExcelは連携出来...
-
DOSテキスト形式とは?
-
シリアルフラッシュメモリをな...
-
バケツツールが上手く使えません
-
【PDF】Bullzip PDF Printer で...
-
Outlook Express 6で 画像送信...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LINEのステメやプロ画は変える...
-
ユーザーがクリックするまでフ...
-
ファーストピアスのキャッチが...
-
Access2010 SetFocusが当たらない
-
VS2013の選択した行に出る白枠...
-
子ウインドウを閉じて 親ウイ...
-
人体切断マジックの事でお聞き...
-
ASP.NET 動的コントロールのフ...
-
googleサーチコンソールでの重...
-
VBにて、非アクティブでフォー...
-
JSPで初期カーソル表示する方法
-
アプリがフォーカスを
-
あなたの知ってるおもしろいデ...
-
波紋のようなエフェクトを発生...
-
タスクバーに今やってることを表示
-
この文を英語で分かりやすく訳...
-
路上の呼び込みについて
-
Canvasのメモリーリーク疑いに...
-
猫の目とカメラのフラッシュの...
-
TextBoxのカーソルを右端に移す...
おすすめ情報