C言語関係掲示板

過去ログ

No.982 systemで一瞬だけ出るコマンドプロンプトを出ないようにしたい

[戻る] [ホームページ]
No.12796

コマンドプロンプトについて
投稿者---me(2004/02/17 10:15:12)


system( "ping > C:\WINDOWS\Temp\aaa.txt" );
を実行すると、一瞬だけコマンドプロンプトが出てきてしまいます。
これを出てこなくさせる方法ってありますか?

Windows XP Visual C++ 6.0

No.12798

Re:コマンドプロンプトについて
投稿者---nop(2004/02/17 11:08:57)


>system( "ping > C:\WINDOWS\Temp\aaa.txt" );
>を実行すると、一瞬だけコマンドプロンプトが出てきてしまいます。
>これを出てこなくさせる方法ってありますか?

それは、C 言語の問題ではないのでは?

No.12799

Re:コマンドプロンプトについて
投稿者---me(2004/02/17 11:14:46)


>それは、C 言語の問題ではないのでは?

何か、イイ方法ありませんか??
調べても調べてもわかりません…。

No.12800

Re:コマンドプロンプトについて
投稿者---三毛猫(2004/02/17 11:49:51)


CreateProcessを使えば出来ます。
STARTUPINFOでSW_HIDEを指定してください。


No.12804

Re:コマンドプロンプトについて
投稿者---me(2004/02/17 14:00:14)


>CreateProcessを使えば出来ます。
>STARTUPINFOでSW_HIDEを指定してください。

これで指定した場合、実行可能ファイルのみの指定しかできませんでした。
私が、やりたい事は
system( "set < c:\windows\temp\aaa.txt" );
なんですけど、
※CreateProcessを使う場合

CreateProcess(NULL, "set < c:\windows\temp\aaa.txt", NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi);
だと、うまく動いてくれませんでした…。
パラメータでなにか渡してあげれば良いのでしょうか??

No.12806

Re:コマンドプロンプトについて
投稿者---YuO(2004/02/17 14:22:32)


>CreateProcess(NULL, "set < c:\windows\temp\aaa.txt", NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi);
>だと、うまく動いてくれませんでした…。
>パラメータでなにか渡してあげれば良いのでしょうか??

STARTUPINFOのhStdInputを適切に設定してやることで,リダイレクトを自分で行うことができます。

MSDNをちゃんと読むようにしましょう。
Creating a Child Process with Redirected Input and Output


No.12807

Re:コマンドプロンプトについて
投稿者---三毛猫(2004/02/17 14:23:10)


"cmd.exe /c set < c:\windows\temp\aaa.txt"
ではダメでしょうか(試してはいないですが)

ところでsetということは環境変数を設定しているのでしょうか。
この方法で環境変数を設定しても意味が無いような気がしますが。
環境変数を設定するのでしたらSetEnvironmentVariableってのがあります。



この投稿にコメントする

削除パスワード

No.12808

Re:コマンドプロンプトについて
投稿者---me(2004/02/17 14:38:50)


>"cmd.exe /c set < c:\windows\temp\aaa.txt"
>ではダメでしょうか(試してはいないですが)
>
>ところでsetということは環境変数を設定しているのでしょうか。
>この方法で環境変数を設定しても意味が無いような気がしますが。
>環境変数を設定するのでしたらSetEnvironmentVariableってのがあります。

すみません…。
ipconfigコマンドのデータをaaa.txtに書き込みたかったんですよ…。
環境変数設定の勉強にもなりました^^
ありがとうございました。