タイトル通りの質問です。
あんまりそういうソフト見たこと無いので、もしかしたら
出来ないんじゃないかと思ったりもしています。
Console Applicationをタスクトレイに常駐できるのでしょうか?
以上よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

>ところで裏で常駐するコンソールアプリは、出来ればスタートアップで


>起動させたいのですが、起動後、タスクバーに表示させないように出来るでしょうか?

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

参考URL:http://www.microsoft.com/japan/developer/winds/f …
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/08/22 18:18

> この先、メンテなどで表示する必要が出てくる場合は


> 表示、非表示の情報をINIファイルから読み込んで
> CreateProcess()の引数を操作しようと思っているのですが、
> いかがなものでしょうか?

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

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

みたいなやつです。
    • good
    • 0

>mkiiさん



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

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

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

この回答への補足

基本的に表示する必要があるものがないので、何も表示されなくても構わないのです。
この先、メンテなどで表示する必要が出てくる場合は
表示、非表示の情報をINIファイルから読み込んで
CreateProcess()の引数を操作しようと思っているのですが、
いかがなものでしょうか?

補足日時:2001/08/22 18:19
    • good
    • 0

出来なくは無い、と思います


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

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

質問されている事とは異なってしまいますが、



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

この回答への補足

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

補足日時:2001/08/20 14:56
    • good
    • 0

> Console Applicationをタスクトレイに常駐できるのでしょうか?



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

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

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

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

やれないことはないのでは?



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

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

ではでは☆
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QWin32 Console Applicationで作った実行ファイルのアイコン変更

前に同じような質問をしましたがMFC AppWizardの変更の仕方ではなくWin32 Console Applicationで作成した実行ファイルのアイコンを変更したいのですがどうしたらいいでしょうか?
プロジェクトごとに違うということを知らなかったので、記述することができませんでした。
どうか教えてください。

Aベストアンサー

1.リソーススクリプト(.rc)をプロジェクトに新規追加
2.リソースにアイコンを追加。

IDは何でもかまいませんが、アイコンを複数作成した場合は一番小さいIDのものがexeのアイコンになります。

#ウィンドウの左上や、タスクバーに表示されるアイコンとは別物です。

Qアプリ終了時にタスクトレイからアイコンを消すには?

以下を参考にタスクトレイにアイコンを追加するようにしました。

http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TaskTray.html

しかしながら、プログラムを終了させてもタスクトレイにアイコンが残っており、マウスポインタをアイコンに近づけるとようやくアイコンが消えます。

一般的なアプリのようにプログラム終了時に即アイコンが消えるようにするにはどうすれば良いのですか?

<環境> WIN98 VC++6.0 MFC 

Aベストアンサー

1.呼ばれてない
2.呼ぶタイミングが悪い

では?

呼ばれていないについては、デバッグすればわかるでしょう。
呼ぶタイミングが悪いについては、
CDialog::OnDestroy();
を呼ぶ前にAPIをコールしてみるとか。

Qタスクトレイからのバルーン表示

タスクトレイ(タスクバーの横)にアイコンが並んでいますが、
ここからバルーンを表示する方法を教えてください。

これは、「Windowsアップデートの通知」などで使われているものです。
Windows初回使用時のスタートボタンに対しての「ここから始めます」みたいなものも同様です。

タスクトレイからメッセージボックスを表示すると
そのようになるのかなと思ったのですが、そうではないようです。

バルーンと書きましたが、きちんとした名称も分からず
検索もうまくいきません。

以上、よろしくお願いします。

Aベストアンサー

『猫~』にこんなのがありましたが、これのこと?

「ツールチップのスタイルにTTS_BALLOONを加えるだけ
です。」
だそうです。

そうでなければ、ノッペラボウのウィンドウを作成し
吹き出し型のリ-ジョンを加えて手製で作るしかない
ようです。

参考URL:http://www.kumei.ne.jp/c_lang/sdk4/sdk_307.htm

Qタスクトレイのアイコンが消えてしまう。

こんにちは。
今、タスクトレイに常駐するプログラムを作成しています。
プログラム起動するとすぐ、メインウインドウとタスクトレイにアイコンが
表示されます。
メインウインドウ右上の最小化ボタンまたは、終了ボタンを押すと
メインウインドウが消えてタスクトレイのアイコンだけが残るように
したいと考えています。
最小化ボタンの場合はWM_SIZEをキャッチして、ShowWindow(hwnd, SW_HIDE)
で、メインウインドウだけ消え、タスクトレイのアイコンは残ります。
しかし、終了ボタンの場合は、WM_DESTROY をキャッチし、同じくShowWindow(hwnd, SW_HIDE)
でメインウインドウを消しているのですが、メインウインドウだけでなく、
アイコンも消えてしまいます。アイコンを消さずに残すようにしたいのですが、
どうしたらよいでしょうか。WM_DESTROYでは、PostQuitMessage(0)はポストして
おらず、最後にreturn 0;を返しています。
どうぞよろしくお願いします。

環境 BCC、WindowsXP、C言語、Win32 API

こんにちは。
今、タスクトレイに常駐するプログラムを作成しています。
プログラム起動するとすぐ、メインウインドウとタスクトレイにアイコンが
表示されます。
メインウインドウ右上の最小化ボタンまたは、終了ボタンを押すと
メインウインドウが消えてタスクトレイのアイコンだけが残るように
したいと考えています。
最小化ボタンの場合はWM_SIZEをキャッチして、ShowWindow(hwnd, SW_HIDE)
で、メインウインドウだけ消え、タスクトレイのアイコンは残ります。
しかし、終了ボタンの場合は、WM_DEST...続きを読む

Aベストアンサー

VCユーザーですが、
WM_DESTROYのかわりにWM_CLOSEやWM_SYSCOMMANDに変更するのはBCCならどうですか。

QConsole.ReadLine()で、入力デフォルト値を指定できます

Console.ReadLine()で、入力デフォルト値を指定できますか?

C#でプログラムをつくっています。
Console.ReadLine()を使えば、コマンドプロンプト上からのキー入力を文字列として受け取れますが、最初は空の状態です。
例えば、

string s = Console.ReadLine()

を実行し、Enterキーを押すと、sは何も入力されませんが、デフォルト値を指定することで、ユーザーがただEnterキーを押したときに、デフォルト値を返すような方法はありますか?
また、指定したデフォルト値を画面上に表示し、ユーザーが編集できるような方法はありますでしょうか?

どうぞよろしくお願いします。

Aベストアンサー

何だかよさそうなもの見付けましたよ。

説明(英語): http://tirania.org/blog/archive/2008/Aug-26.html
ライブラリ(これを取り込む): http://anonsvn.mono-project.com/source/trunk/mcs/tools/csharp/getline.cs

LineEditorのEdit()メソッドは第1引数がプロンプトで第2引数が初期値のようです。
C#の基本ライブラリのみに依存し、外部プログラムは必要ないそうです。
ライセンスも制限が緩いもののようです。


人気Q&Aランキング

おすすめ情報