- - PR -
Winodowの非表示の方法について
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-16 15:37
VB2005でアプリケーションの作成をしているのですが、
Windowsアプリケーションで作成はするが、フォームは表示しないように するにはどのようにすればよいのでしょうか? 本来であればコマンドアプリケーションで作成すればよいのですが、 SendMessageによるメッセージ受信を行うため、Windowを持つ必要があります。 しかしながら、特にユーザから何らかの操作をするわけではないので、 ウィンドウフォームを見せる必要はありません。 このような場合は、フォームは持つけど、非表示にしておくしかないのではと 思っているのですが、どのようにすれば実現できるのでしょうか? | ||||||||||||||||
|
投稿日時: 2007-04-16 16:04
これっていつ開始されて、いつ終了するのでしょうか? タスクトレイに常駐するようなつくりのものはよく見ますよね。 _________________ かるあ のメモ と スニペット | ||||||||||||||||
|
投稿日時: 2007-04-16 16:17
イメージ的には、SendMessageを送信するアプリケーションが、 EXEファイルを直接起動し、その後SendMessageで情報をやり取りし、 最後にSendMessageで終了依頼メッセージを投げます。 それを受信することで終了となります。 | ||||||||||||||||
|
投稿日時: 2007-04-16 17:23
メッセージ関連は確認するのが大変なので確認していませんが、 タスクトレイに入れる場合とそう変わらないと思います。 こんな感じか?
。。。できるか不安(汗 _________________ かるあ のメモ と スニペット | ||||||||||||||||
|
投稿日時: 2007-04-16 18:00
かるあさんの方法でもいけますけど、アプリケーションの終了を自分でやらないといけないのが難点かも。
(前に深く考えずにやったときにエラー処理とDispose絡みで悩んだ覚えが・・・) 参考:どぼん!さんのとこ 手っ取り早くフォームのコンストラクタで this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; ってのはドダ? | ||||||||||||||||
|
投稿日時: 2007-04-16 23:02
SendMessageを送信するアプリケーションは、EXEを起動した後、
そのEXEのウィンドウハンドルを取得してメッセージを送信しています。 以下のようなコードでウィンドウハンドルを取得しています。
ご回答いただいた方法をためしたのですが、以下の問題が発生してしまいました。
上記の方法だと、ウィンドウハンドルの取得ができないみたいです。 また、
この場合も、ShowInTaskbarをfalseとするとメインウィドウハンドルが取得できません。 メインウィンドウハンドルを取得でき、かつフォームを非表示にしたいのですが、 メインウィドウハンドルを取得の方法が間違っているのでしょうか? [ メッセージ編集済み 編集者: Tol 編集日時 2007-04-17 14:46 ] | ||||||||||||||||
|
投稿日時: 2007-04-17 07:40
質問!
表示されていないものを、どうやって捕捉するのですか? あるいは、見えないものをどうやって観察するのですか? あるいは、無いものを、どうやって取得するのですか? SendMessage じゃなきゃダメなの?そこから見直した方がいいんじゃない? _________________ | ||||||||||||||||
|
投稿日時: 2007-04-17 11:20
Tolさんごめんなさい。Sendmessageって見えてないフォームは受け取れないのか。
フォームを隠す方だけに注力してしまった。m(_ _)m Jittaさん >SendMessage じゃなきゃダメなの?そこから見直した方がいいんじゃない? スレ主でもないのに質問して申し訳ないですけど、非表示の常駐プロセスへの送信って普通どうやるんでしょうか?(MQとか?) |