- ベストアンサー
C言語APIウィンドウズアプリにおいて
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SDKのドキュメント(SetForegroundWindow)を読むと、 「次の条件がが満たされていなければ、プロセスがフォアグラウンドウィンドウを設定することはできません。 ・そのプロセスがフォアグラウンドプロセスである。 ・そのプロセスはフォアグラウンドプロセスにより開始された。 以下省略 」 とあるので、できないのでは?
関連するQ&A
- CのAPIの Windowsアプリにおいて
アプリがMessageBox等ポップアップWindowを表示しているかどうかを他のアプリが知るにはどんな関数があるのでしょうか?
- ベストアンサー
- C・C++・C#
- アプリがフォーカスを
自分の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); をはずしても同じでした
- ベストアンサー
- C・C++・C#
- WIN32APIについて質問です。
WIN32APIについて質問です。 C++を用いてデスクトップにフォーカスを与えるプログラムを 作成する為に、デスクトップのウィンドウハンドルを得る GetDesktopWindow関数を使用しています。 しかし結果はフォーカスが設定できず、エラーとなります(下記ソースをご参照下さい)。 ググってみるとこの関数は実際にはデスクトップのウィンドウハンドルを返している 訳ではなく、他のハンドルを返しているようです。 他の方法も試してみましたが、一向にデスクトップを操作することができません。 何か良い方法をご存知ないでしょうか? よろしくお願いします。 ~テストに使用したソース~ #include <windows.h> int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd ) { if( SetFocus( GetDesktopWindow() ) == NULL ) MessageBox( NULL, "フォーカスが設定できない", "エラー", MB_ICONSTOP ); return 0; }
- ベストアンサー
- C・C++・C#
- 次のWindowsアプリで
メッセージボックスは他のアプリのWindowの下に隠れることはないのですが他のアプリのウィンドウをクリックするとメッセージボックスの焦点がぼけアクティブでなくなります メッセージボックスを常にアクティブにする方法を終えてください #include <windows.h> using namespace std; WINAPI WinMain(HINSTANCE hI,HINSTANCE,LPSTR,int) { HWND hW; hW=CreateWindow("STATIC","",WS_OVERLAPPED, 0,0,9,9,NULL,NULL,hI,NULL); SetWindowPos(hW,HWND_TOPMOST,0,0,9,9,NULL); MessageBox(hW,"OK?","",MB_OK); return 0; }
- ベストアンサー
- C・C++・C#
- windowsプログラミンで質問です
EDITコントロールを一度クリックすると、そこにフォーカスが当たり | ←こんな感じの棒が点滅します。 そのコントロールにフォーカスが当たったことを知らせてくれるメッセージは無いですか? 別の WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU を持つ親ウィンドウをクリックしても ずっとこのEDITコントロールにフォーカスが当たりっぱなしなので質問しました。 もしそんなメッセージが無いならば、ESCボタンが押されたらSetFocus関数で強制的にフォーカスを外そうかなとも考えたのですがEDITコントロールにフォーカスがあたっていると WM_CHARではメッセージを受け取ることが出来ませんでした。 どうすればよいのでしょうか?
- 締切済み
- C・C++・C#
- エデットコントロールなどにフォーカスを移す
エデットコントロールなどにフォーカスを移す 場合どの様なAPI関数を使えばいいのでしょうか? SetFocus()でハンドルを指定したのですが うまくいきません 宜しくお願いいたします。
- ベストアンサー
- C・C++・C#
- C#でAPI利用
C#でAPI、具体的にはVideo for windowsを使いたいのですが、 やり方がわかりません。APIを読み込む方法からわかりません。 読み込めてしまえば、あとは関数を呼び出せばよいとおもうのですが、、、、 初歩的な質問かもしれませんがよろしくおねがいします。
- 締切済み
- その他(プログラミング・開発)
- Windows C APIまたはメッセージの中で
実行中アプリとWindowsシステムに対して Windowsの強制終了を依頼する関数またはメッセージを教えてください。
- ベストアンサー
- C・C++・C#
- 別プロセスのコントロールにフォーカスをあてたい
VC++5.0 または VC++6.0 の環境で、MFC を使ってダイアログベースの EXEを造っています。 (OS は NT4.0 または 2000 です) 以下のことをしたいと思っています。 ・プロセスA、Bがあります。 ・プロセスAがプロセスBをフォアグランドにします。 →SetForegroundWindow() します。 ・プロセスAがプロセスBのボタンやエディットボックスなどのコントロールに フォーカスをあてる。 で、この最後のフォーカスをあてる処理は実現可能でしょうか? 自分のプロセス内のコントロールに対しては、SetFocus() で フォーカスをあてられたのですが、別プロセスではフォーカスを あてることができませんでした。 識者の方、ご教授願います。
- ベストアンサー
- C・C++・C#
- SSTabのフォーカスの移動について!
Windows2000、VB6.0、SP5で開発しています。 質問は、SSTabのフォーカス移動についてです。 SSTab上のコントロール上にフォーカスがある時、 Tabでフォーカスの移動をしてると、急にフォーカスが見えなくなってしまうことがあります。 調べてみると、隠れているコントロールに移動してしまってるみたいなんですが、 これは、解決策はないんでしょうか? 最後のコントロールでSetFocusを使うとかあったのですが、その場合、 最後のコントロールにフォーカスがある時に、どのコントロールをクリックしても、 最後のコントロールのSetFocusで設定したコントロールにフォーカスが移動してしまいます。 良い方法をご存知の方、いらっしゃいましたら、 どうぞ、ご教授よろしくおねがいしますm(_ _)m
- ベストアンサー
- Visual Basic
お礼
ありがとうございました どうしようもないのでしたか