« ロシア語 | Main | Windows XP SP2 RC2 »

June 16, 2004

非GUIプログラムの実行

ふと思い立って、「非GUIのプログラムをコマンドプロンプトを表示させずに実行させる」という機能を考えてみた。

ソース:040616-command.c

Perlなどで書いたプログラムをTClockのアラームで定期実行させたい、と思うことはあるが、実行のたびにコマンドプロンプトのウィンドウが一瞬現れて消える、というのがうざったい。そこで、exe/command.cにちょっと機能を追加してみた。試したい人は、上記のCファイルをcommand.cと差し替えてほしい。関数ExecCommandStringとExecHiddenCmdPromptを参照。

アラーム、マウス、tcmenu*.txtで、ファイルの指定の前に > を付けると、cmd.exe /c ~ として実行されるようになる。次の例では、cmd.exe /c perl hoge.pl >> log.txtが実行される。なお、Windows NT/2000/XPのみ。

>perl hoge.pl >> log.txt

やってることは、ウィンドウの表示オプションをSW_HIDEにしてcmd.exeを起動しているだけ。

サーバーとやりとりするPerlスクリプトを定期実行させたいとか、ちょっと起動して終了するだけのCプログラムをGUI対応にするのが面倒とか、バッチファイルを使いたいとかいう場合を想定している。

ただし、実行するプログラムに「入力待ち」があると、隠れたcmd.exeがいつまでも終了しない、ということになる。

|

« ロシア語 | Main | Windows XP SP2 RC2 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/33568/780814

Listed below are links to weblogs that reference 非GUIプログラムの実行:

« ロシア語 | Main | Windows XP SP2 RC2 »