- ベストアンサー
開いたファイルを閉じるには?
Cのプログラムで system関数を使うとDOSコマンドが使えるので、 txtファイルを(ノートパッド)開くことができます。 開いたtxtファイルを Cのプログラムまたは、DOSコマンドで 閉じるのには、どうしたら良いですか? 教えてください。 お願いしますm(._.)m (不可能ならば、不可能と教えてください。)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 #1 muyoshid です。 以下に、プロセス起動のサンプルを挙げて起きます。 cmdline に、実行するコマンドのコマンドラインを渡すと、関数の復帰値で プロセス起動の成功/失敗が分かります。 プロセスの起動に成功した場合、アウトパラメータで起動されたプロセスの プロセスハンドルが帰ってきますので、プロセス終了時には 「TerminateProcess(hProcess, 1);」とすればプロセスを終了させられます。 パラメタの詳細等については、市販本やInternet 等で確認して下さい。 -------------------------------------------------------------------------------------- int ExecProcess(cmdline, hProcess) char *cmdline; // (IN) 実行するコマンドライン HANDLE *hProcess; // (OUT) 起動されたプロセスのハンドル { PROCESS_INFORMATION info; STARTUPINFO sinf; BOOL rinf; memset((void *)&info, 0x00, sizeof(info)); memset((void *)&sinf, 0x00, sizeof(sinf)); // プロセス起動 rinf = CreateProcess(NULL, cmdline, NULL, NULL, FALSE, (CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS), NULL, NULL, &sinf, &info); if (FALSE == rinf) { // プロセス起動失敗 *hProcess = INVALID_HANDLE_VALUE; return(-1); } CloseHandle(info.dwThreadId); *hProcess = info.dwProcessId; return(0); } --------------------------------------------------------------------------------------
その他の回答 (1)
- muyoshid
- ベストアンサー率72% (230/318)
こんにちわ。 system 関数は、プロセスの起動に成功したか失敗したかしか 分からないので、呼出し元でプロセスを終了させるのは無理 だと思います。 Win32API の場合、CreateProcess/TerminateProcess で プロセスの起動/終了ができます。
補足
ご回答ありがとうございます。 win32APIの知識がほとんどないので、 どのようにプログラムを書けばよいかよくわかりません。 どのように書けばよいでしょうか? 単純なサンプルを書いてくださると うれしいのですが。 お願いしますm(._.)m
お礼
回答ありがとうございました。 わざわざ、サンプルまで書いてもらい、感激です。 私は APIの基礎を学んでいる最中の素人ですが、 そんな私にも、理解できました。 これから、挑戦してみます。