掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DOSコマンドをウインドウを表示させずに実行させたい (ID:54748)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
とりあえず、cmd.exeのスイッチの件は他の方にしてもらうとして… > char command[256]; > STARTUPINFO si; > PROCESS_INFORMATION pi; > sprintf(command, "net user %s passwd /domain > c:\\tempmsg", m_UserName); > CreateProcess("cmd.exe", command, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi); では、ゴミデータの入ったSTARTUPINFO構造体を使用しています。 構造体のメンバに設定されている値は不定ですので、最悪何が起こるか判りません。 (CreateProcess()が失敗するか、ヘンなふうに実行されるか……) 詳しくはMSDN等で各メンバを調べて貰うとして、とりあえず下記の方法でよろしいかと。 (丸ごとコピーするのではなく、ちゃんと調べて意味を把握して下さい) ZeroMemory(si, sizeof(STARTUPINFO)); // 安全の為0クリア si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; # PROCESS_INFORMATION構造体の方はCreateProcess()が設定して返してくれるのでとりあえずは問題なし。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.