
自分の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ランキング
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
C#でTreeViewのCheckBoxのサイ...
-
visual studio 2022でのC#プロ...
-
略語の読み方について
-
c言語
-
C言語の関数のextern宣言
-
【C言語】全角文字の配列を、全...
-
最初に聞かれたこと
-
C言語 関数、変数の宣言について
-
あってる
-
C言語のことです。写真(見にく...
-
プログラミング言語についてc++...
-
UART通信の取説で,left floati...
-
パソコン
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C++でデスクトップGUIアプリ開...
-
C言語について。
-
C言語 解答について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファーストピアスのキャッチが...
-
TextBoxのカーソルを右端に移す...
-
ユーザーがクリックするまでフ...
-
LINEのステメやプロ画は変える...
-
ASP.NET 動的コントロールのフ...
-
VS2013の選択した行に出る白枠...
-
vb.netでフォーカスされている...
-
VBにて、非アクティブでフォー...
-
googleサーチコンソールでの重...
-
Access2010 SetFocusが当たらない
-
タブダイアログのフォーカスの...
-
人体切断マジックの事でお聞き...
-
危険なURL?
-
ブラウザを飛び出す画像
-
マイクロダイエットの類似品に...
-
テキストエリアの末尾にフォーカス
-
Optionsについて教えてください。
-
FlashとPHPの連携
-
【FLASH】テキスト入力ボックス...
-
WEB作成で参考・お手本になるH...
おすすめ情報