OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Console Applicationをタスクトレイに常駐できますか?

  • すぐに回答を!
  • 質問No.117982
  • 閲覧数829
  • ありがとう数2
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 10% (50/498)

タイトル通りの質問です。
あんまりそういうソフト見たこと無いので、もしかしたら
出来ないんじゃないかと思ったりもしています。
Console Applicationをタスクトレイに常駐できるのでしょうか?
以上よろしくお願いします。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル9

ベストアンサー率 40% (43/105)

>ところで裏で常駐するコンソールアプリは、出来ればスタートアップで
>起動させたいのですが、起動後、タスクバーに表示させないように出来るでしょうか?

参考URLにはWindowsNT系では という限定付きで出来るような事が書いてあります。
この場合は、コンソールアプリケーションを制御するアプリケーション経由で
CreateProcess()を使って起動する必要がありますね。
お礼コメント
mk_jmc

お礼率 10% (50/498)

URL拝見しました。丁度開発環境がNTだったんですよ。(^^
CreateProcess()を使えば画面表示させずに起動できそうですね。
これからCreateProcess()の引数を勉強します(^^;
投稿日時 - 2001-08-22 18:18:57
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

> Console Applicationをタスクトレイに常駐できるのでしょうか? できないんじゃないかなあ。 タスクトレイにプログラムを登録する API Shell_NotifyIcon() では、 引数の構造体に、タスクトレイのアイコンをクリックしたときのメッセージを 通知するウィンドウのハンドルを指定するようになっている。 ウィンドウを作成する為には、アプリケーションのイ ...続きを読む
> Console Applicationをタスクトレイに常駐できるのでしょうか?

できないんじゃないかなあ。

タスクトレイにプログラムを登録する API Shell_NotifyIcon() では、
引数の構造体に、タスクトレイのアイコンをクリックしたときのメッセージを
通知するウィンドウのハンドルを指定するようになっている。

ウィンドウを作成する為には、アプリケーションのインスタンスハンドルが
必要だけど、Console Application では、それが手に入らない(Window
アプリケーションであれば WinMain の引数として手に入れられる)。

やったことはないけど、メッセージの通知先ハンドルを NULL にしても
登録できちゃうかもしれない。でも、喩え、登録できたとしても、メッセージの
処理ができないんだったら、タスクトレイにアイコンをただ表示しているだけ
なので、常駐しているプログラムの意味が無いもんね。
  • 回答No.1

やれないことはないのでは? 少し前のApache+ApacheRapperはそんな感じで 動作していましたよ。 要するにコンソールアプリケーションの実行画面を 非表示にするようにタスクトレイに常駐するソフトで 制御してやれば、何とかなるのでは? ではでは☆
やれないことはないのでは?

少し前のApache+ApacheRapperはそんな感じで
動作していましたよ。

要するにコンソールアプリケーションの実行画面を
非表示にするようにタスクトレイに常駐するソフトで
制御してやれば、何とかなるのでは?

ではでは☆
  • 回答No.3
レベル9

ベストアンサー率 40% (43/105)

質問されている事とは異なってしまいますが、 コンソールアプリケーションは裏で常駐として、 そのコンソールアプリケーションを制御するアプリケーション(起動・終了等) をタスクトレイに常駐させる というのが一般的な作りではないでしょうか。 ...続きを読む
質問されている事とは異なってしまいますが、

コンソールアプリケーションは裏で常駐として、
そのコンソールアプリケーションを制御するアプリケーション(起動・終了等)
をタスクトレイに常駐させる
というのが一般的な作りではないでしょうか。
補足コメント
mk_jmc

お礼率 10% (50/498)

このやり方は目から鱗でした。
ところで裏で常駐するコンソールアプリは、出来ればスタートアップで
起動させたいのですが、起動後、タスクバーに表示させないように出来るでしょうか?
投稿日時 - 2001-08-20 14:56:49
  • 回答No.4
レベル11

ベストアンサー率 58% (114/195)

出来なくは無い、と思います ただ、通常のConsoleApplicationプロジェクトではなく、WindowApplicationで作成し、そのプログラム内でAllocConsole、FreeConsoleしてやる必要があるでしょうが・・・ タスクトレイにアイコンを常駐させるため、CreateWindowしてそのウィンドウを非表示にしておく必要もあるでしょう。(タスクトレイでのイベントはこの非表示ウ ...続きを読む
出来なくは無い、と思います
ただ、通常のConsoleApplicationプロジェクトではなく、WindowApplicationで作成し、そのプログラム内でAllocConsole、FreeConsoleしてやる必要があるでしょうが・・・
タスクトレイにアイコンを常駐させるため、CreateWindowしてそのウィンドウを非表示にしておく必要もあるでしょう。(タスクトレイでのイベントはこの非表示ウィンドウのウィンドウプロシージャで受け取り、処理させます)
んー、でもこの方法だとConsoleに来るイベントを取得できないですねぇ
最小化イベント発生時にタスクバーではなく、タスクトレイに引っ込めるような挙動をさせるのであればグローバルフックでメッセージをトラップする必要があるんですが・・・たしか出来なかったような・・・

構造的に無理臭い部分があるのは確かですね
まっとうな方法としてはWin32ベースでConsoleを自作するのが妥当でしょうね
  • 回答No.6
レベル11

ベストアンサー率 58% (114/195)

>mkiiさん これってなんか目的のものと違うと思いますけど・・・ これってUNIXでの端末無しでのコマンド実行(標準出力が/dev/nullになる)と同じなのでは? また、このFAQのだと、バックグラウンドでプロセスは走りますが、ウィンドウをアクティブに出来ません。(ShowWindow()しようにも対象のWindowHandleが無い) なので >起動後、タスクバーに表示さ ...続きを読む
>mkiiさん

これってなんか目的のものと違うと思いますけど・・・
これってUNIXでの端末無しでのコマンド実行(標準出力が/dev/nullになる)と同じなのでは?

また、このFAQのだと、バックグラウンドでプロセスは走りますが、ウィンドウをアクティブに出来ません。(ShowWindow()しようにも対象のWindowHandleが無い)

なので
>起動後、タスクバーに表示させないように出来るでしょうか?
はOKですが、その後、そのWindowをActiveに出来ません。
補足コメント
mk_jmc

お礼率 10% (50/498)

基本的に表示する必要があるものがないので、何も表示されなくても構わないのです。
この先、メンテなどで表示する必要が出てくる場合は
表示、非表示の情報をINIファイルから読み込んで
CreateProcess()の引数を操作しようと思っているのですが、
いかがなものでしょうか?
投稿日時 - 2001-08-22 18:19:58
  • 回答No.7
レベル9

ベストアンサー率 40% (43/105)

> この先、メンテなどで表示する必要が出てくる場合は > 表示、非表示の情報をINIファイルから読み込んで > CreateProcess()の引数を操作しようと思っているのですが、 > いかがなものでしょうか? それでもいいですけど、アプリケーションのオプションにする という手もありますよ。 xxx.exe /d デバッグオプション みたいなやつです。
> この先、メンテなどで表示する必要が出てくる場合は
> 表示、非表示の情報をINIファイルから読み込んで
> CreateProcess()の引数を操作しようと思っているのですが、
> いかがなものでしょうか?

それでもいいですけど、アプリケーションのオプションにする
という手もありますよ。

xxx.exe /d
デバッグオプション

みたいなやつです。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ