« コマンドプロンプト非表示 | Main | 大雨と車 »

2005.08.11

コマンドプロンプト非表示(2)

 コマンドプロンプトからの引数との連結はstrcat()で行えたのですが、引数を渡そうと思ったら別途ショートカットを作成してプロパティを作成する必要があったりと、ソース中に埋め込んでいる部分は変更できなかったりと不便なので、基本となるコマンド部分を外部ファイルで定義できるようにしてみました。


#include <windows.h>
#include <stdio.h>

int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){
PROCESS_INFORMATION pi;
STARTUPINFO si;
char buffer[512];
FILE *fp;
ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);
fp = fopen("exec.txt", "r");
fgets(buffer, 512, fp);
fclose(fp);
CreateProcess(NULL,strcat(buffer,szCmdLine),NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi);
return 0;
}


 これをコンパイルしてできたexeファイルと同じフォルダにexec.txtを作成して、その内容を
javaw -jar hoge.jar
などのように記述してexeを実行すると、コマンドプロンプトを開くことなくhoge.jarを実行することができます。
 ただし、ファイル入出力部分が手抜き(正確には、詳しい処理の仕方をよく知らない、のですが)などの理由で、末尾に改行コードが入っていたらNGだったりします(苦笑)。

#ファイルのオープン・クローズのタイミングが正しいのかどうかも不明。

|

« コマンドプロンプト非表示 | Main | 大雨と車 »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

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

Listed below are links to weblogs that reference コマンドプロンプト非表示(2):

« コマンドプロンプト非表示 | Main | 大雨と車 »