- ベストアンサー
ときどきいきなりタスクバーが消えるプログラム
をC言語SDKで作ってしまいました どこにもタスクバーを消すコードは入れていません (タスクバーに何かをする方法を私は知らない) そこでとにかくこれを解消するために タスクバーが有るかどうかを検出してタスクバーが無ければタスクバーを表示する用にしたいのです そこでC言語SDK関数で (1)タスクバーが有るかどうかを知る方法 あるいは (2)タスクバーを表示する方法 を教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ウィンドウハンドルhWの表示状態nCmdShowを知る関数を教えてください これは、タスクバーのnCmdShowを知りたいということですか? >IsWindowVisible(FindWindow("Shell_TrayWnd",NULL)); これではまずいんですか? 意識したほうがいい状態は、表示、非表示、アクティブ、非アクティブ位しかないと思うのですが。
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
最前面のウィンドウを非表示にする処理とか入れてませんか? >(1)タスクバーが有るかどうかを知る方法 FindWindowで調べましょう。 クラス名はSpyで自分で調べましょう。 >あるいは >(2)タスクバーを表示する方法 そもそもログインしている間は普通あります。 エクスプローラが落ちたときやログインしていないときは ないこともありますが。
補足
ありがとうございます IsWindowVisible(FindWindow("Shell_TrayWnd",NULL)); でよさそうです しかしよく考えてみると 自分のプログラムを実行したときのタスクバーの表示状態がどうであろうと表示状態をそのままにしておかないといけないとの結論に達しました そこでタスクバーウィンドウにおいて int WINAPI WinMain (HINSTANCE hCurInst, HINSTANCE hPrevInst,LPSTR, int nCmdShow) のnCmdShowに相当するものを知らないといけません ウィンドウハンドルhWの表示状態nCmdShowを知る関数を教えてください
お礼
ありがとうございます 納得しました