• 締切済み

実行時のコマンドプロンプトを非表示 Visual C++

<質問内容> プログラム実行時に自動で起動するコマンドプロンプトを表示させたくないのですが方法をご存知でしょうか? 最小化ではなく非表示にしたいと考えています。 このアプリケーション終了するには、タスクマネージャのプロセスからしか消せないようにする目的です。 (不意にアプリを落としてしまうことを避けるため) <環境> Windows 2000 Microsoft Visual C++ 6.0

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★なぜ? ・ウインドウを出したくないなら WinMain() から始めれば良い。  なぜコマンド・プロンプトで動くアプリを作成しているのですか?  コンソール・アプリケーションで作るとコンソール・ウインドウが  自動的に作成されます。起動後に非表示にするには何らかの方法で  ウインドウのハンドルを取得します。  取得方法は  (1)SetConsoleTitle()関数で一意の『タイトル文字列』を設定  (2)Sleep()関数で100msほどウェイトを入れる  (3)FindWIndow()関数で(1)で設定した『タイトル文字列』を取得  (4)(3)で得たウインドウ・ハンドルを使って非表示(ShowWindow使用)  これでコンソール・アプリケーションを起動時に非表示に出来ます。  でも、あまりスマートではないです。起動時に一瞬表示されたり…。  このため最初から WinMain() の GUI アプリケーションで作成することを  お勧めします。常駐ソフトならこの方法が一般ですから。  ※設計を見直すべし。

helpmerightnow
質問者

お礼

Oh-Orangeさんありがとうございます。 単純にWinMain()関数を知りませんでした。 調べて見ます。

関連するQ&A

  • 【VB2005】コンソールアプリ実行時のコマンドプロンプトの非表示方法

    22歳男性です。 vb2005で開発してます。 コンソールアプリケーション実行時に表示されるコマンドプロンプトを非表示(タスクバーにも表示されない)にしたいのですがやり方がわかりません。 私が調べたところ「System.Diagnostics.Process」クラスを使用すると外部アプリ(コマンドプロンプトなど)の操作はできるようです。ですが、私は外部アプリの操作ではなく、実行ファイル自身が実行時に表示するコマンドプロンプトを非表示にしたいので、「System.Diagnostics.Process」クラスでは実現不可と考えています。 それと、このことを実現するために、新たに実行ファイルを作るのではなく、あくまで既存の実行ファイルに「コマンドプロンプトを非表示にする」コードを埋め込むことを理想としています。そのため、実行ファイルが2つ以上になる(実際に実行するファイルと、その実行ファイルのコマンドプロンプトを操作する実行ファイル)ような考えは求めてません。 もし知っている方がいらっしゃいましたら、「使用するクラス」「具体的なコード」などを記述していただけたらありがたいです。 宜しくお願いします。

  • コマンドプロンプトが立ち上がらない

    質問させてください。 windows2003Serverを現在使用しているのですが コマンドプロンプトが開きません。 [スタート]→[ファイル名を指定して実行]でcmdまたは [スタート]→[全てのプログラム]→[アクセサリ]で 開こうとしているのですが クリックしても何の反応もありません。 タスクマネージャーから見ても 実行しているようには見えません。 又、コマンドプロンプトだけではなく exeファイルも実行できないものもあり 症状はコマンドプロンプトのときと同じです。 原因がわからないため 大変困っています。 又、ウイルスにかかったのではないかとも 思っています。 同じ症状または原因や対策を 知っていらっしゃる方いらっしゃいましたら 教えていただけないでしょうか。 以上、大変お手数ですが 宜しくお願い致します。

  • コマンドプロンプトからアプリを操作

    コマンドプロンプトの質問です。 コマンドプロンプトと別に、アプリが1つ立ち上がっています。 アプリにはテキストボックスと送信ボタンがあるウィンドウ、 送信したテキストを表示するエリアとログ消ボタンがあるウィンドウの2ウィンドウで構成されています。 (タスクマネージャでのプロセスは1つです) アプリはコマンドプロンプトから起動したものではなく、自作したものでもありません(中身の詳しいことは分かりません)。 この条件下で、コマンドプロンプトからアプリ側のテキストボックスに入力、送信ボタンを押す、ログ消ボタンを押す、といったことは可能でしょうか? 手順を教えて頂けると助かります。よろしくお願い致します。

  • W2Kのコマンドプロンプトを最小化で実行したい

    XCOPYコマンドを用いた、バックアップ用のバッチファイル buckup.bat を作成し、これをタスクで1時間に1回自動起動しています。 しかし、1時間ごとにコマンドプロンプトの画面が表示され鬱陶しくてしかたありません。 自動実行でもしくはタスク起動時コマンドプロンプトを最小化で起動する方法をご存知の方教えてください。 尚、ショートカットを最小化設定にしてそのショートカットをタスクに登録しても、元のBATファイルが呼ばれるため、最小化できませんでした。

  • コマンドプロンプトにてコマンド実行ができません

    コマンドプロンプトにて、コマンド(ipconfig)を 実行すると 'ipcongi'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはパッチファイルとして認識されていません。 と表示されます。 正常に実行するにはどうしたらよろしいでしょうか?

  • コマンドプロンプトが起動後すぐ消える

    コマンドプロンプトを起動させると一瞬ウィンドウが表示された後 すぐに消えてしまいます。 最小化されているわけでもありません。 同様にタスクマネージャーでも同様に一瞬ウィンドウが表示された後 すぐに消えてしまいます。 これについてご存じのかたどうかお教え下さい。

  • コマンドプロンプトについて

    OSはXP Home Editionです。 コマンドプロンプトでタスク情報を表示しようと思って、tasklistで実行してみると、内部または外部コマンド、操作可能なプログラム、バッチファイルとして認識されていませんとでます。 何故でしょうか?

  • SQLローダーをコマンドプロンプトから実行

    SQLローダーをコマンドプロンプトから実行した場合にロードは実行されログも出力されているのに終了しない。コマンドプロンプトのまま。タスクマネージャーを見るとSQLLDRのタスクが残っている。別端末で実行すると正常に返る。 環境:サーバーWindowsNT4.0 DB oracle8.0.5 クライアントWin2000サーバー oracle8.0.5

  • コマンドプロンプトからファイル実行について

    コマンドプロンプト初心者です。 説明が下手で申し訳ありませんが、コマンドプロンプトを起動し、C:\Program Filesから辿ってファイルを実行させようとすると、 C:\Programは、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され、できなくて困っております。 パスがないのかなと思い、試行錯誤してみましたがダメでした。 あとDOS窓はコマンドプロンプトのことですよね?

  • Microsoft Visual C++ 2008 Express Editionのコマンドプロンプトのついて

    Microsoft Visual C++ 2008 Express Editionのコマンドプロンプトからnotepad++を起動できるようにしたいのですがどうすればできますか?

専門家に質問してみよう