• ベストアンサー

windowsプログラム WinMainの引数nCmdShowのデフォルトの値は?

C++でwindowsプログラムを作成する場合について質問です。 WinMainの引数nCmdShowのデフォルトの値はSW_SHOWNORMALでしょうか。 また、コマンドラインからアプリケーションを起動する場合、どうやってnCmdShowの値を渡せばよいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

> また、コマンドラインからアプリケーションを起動する場合、どうやってnCmdShowの値を渡せばよいのでしょうか。 「STARTコマンド 最大化」等で検索すると見つかるかと思います。

string
質問者

お礼

ご回答ありがとうございました。 アドバイス通り試したらできました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

★アドバイス >WinMainの引数nCmdShowのデフォルトの値はSW_SHOWNORMALでしょうか。  exe をそのまま実行すれば nCmdShow のデフォルトは SW_SHOWNORMAL 定数です。  しかし、ショートカットファイルから起動したときには設定により異なります。  プロパティの『実行時の大きさ』より次のようになります。  『通常のウインドウ』なら nCmdShow が SW_SHOWNORMAL 定数。  『最小化』なら nCmdShow が SW_SHOWMINNOACTIVE 定数。  『最大化』なら nCmdShow が SW_SHOWMAXIMIZED 定数。  となります。 >また、コマンドラインからアプリケーションを起動する場合、どうやってnCmdShowの値を渡せばよいのでしょうか。  渡せないと思います。  ただし CreateProcess() 関数から起動するときは STARTUPINFO 構造体の wShowWindow で渡せます。  その他 ShellExecute() 関数の最後の引数でも指定できます。 ・コンソール画面のコマンドラインなどからは渡せませんので lpCmdLine 引数を文字列として  自分で解析して下さい。lstrcmp 関数を使って処理すれば良いと思います。 ・以上。

string
質問者

お礼

ご回答ありがとうございます。 大変よくわかりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • WinMainの第3引数のlpszCPを・・・

    WinMainの第3引数のlpszCPを使うのをやめたとたんに Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland 警告 W8057 program.cpp 335: パラメータ 'lpszCP' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) ) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland という警告が出始めたのですが普通lpszCPは使わないものなのではないでしょうか? 警告を回避するにはどうしたらいいでしょうか?

  • ウィンドウを出したくない

    OS: Windows 2000 C: Borland C++ Compiler コマンドラインアプリケーション(Hello world!的なもの)を作成しています。 別の方の質問で出来上がったexeファイル実行時ウィンドウを出したくない場合は、main()をWinMain()にすればよいとのことだったのですが、これだとコマンドラインパラメータを渡せなくなってしまいます。 コマンドラインパラメータを渡せて、かつexeファイル実行時にウィンドウを出したくない場合は、どうすればよいでしょうか? 目的はあるウィンドウアプリケーションから外部プログラムとして実行したいのですが、実行中ウィンドウがでてしまっていて、それを避けたいのです。 よろしくお願い致します。

  • 【VB2005】プログラム実行時に引数を渡したい

    VB2005で作成したプログラムがありまして、 Shell("C:\XXX.Exe -Prg=1")というのを使って プログラムをShellで開きます。 そこで、"-Prg=1"という引数を、受け取る側のアプリケーションを 作りたいのですが、どういう方法で値を取得できるか教えてください。 よろしくお願いします。

  • BccDeveloperでコマンドラインの引数を拾えない

    最近、新しいWindows XPマシンにBorland C++5.5とBcc Developerをインストールしました。 以下のような簡単なプログラムを入れて、コマンドラインの引数を拾えるかチェックしたのですが、長さ0の文字列が帰ってきてしまいます。 不思議なことに、TurboDebuggerだとうまく引数が拾えます。 実行ファイルを直接に実行すると拾えるので、BccDeveloperが実行する際に引数を渡していないように思います。 どなたか、原因として思いつく方はいらっしゃいますか? よろしくお願いいたします。 #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) { MessageBox(HWND_DESKTOP, lpCmdLine, "Command Line", MB_OK); return 0L; }

  • ShellExecuteExでスペースを含む引数を渡すには?

    すみません。 ShellExecuteEx関数を使用して、コマンドラインで実行していた実行ファイルを起動させたいのですが、実行ファイルに渡す引数にスペースが含まれると、ペースの前までか渡せないのですが、スペースを含む引数を渡す方法を御存知ないでしょうか? (詳細) コマンドライン(cmd.exe)では”○○○.exe 引数1 引数2 引数3(リターン)”で実行しているのですが、ShellExecuteEx("○○○.exe", "引数1 引数2 引数3”, NULL, ・・・・, SW_SHOW); のような形で作成して実行すると、引数1までで○○○.exeが実行されてしまい、スペースを挟んだ引数2以降が渡せていません。 スペースを挟んだ引数を渡す方法を御存知ないでしょうか? すみません。

  • SDKでのWinmain同時起動について

    windows SDKの話なんですが、二つのプロジェクトまたは同じプロジェクト内の二つのWinmain関数を起動することはできるのでしょうか? たとえばプロジェクトAとプロジェクトBがあり、プロジェクトAのWinmainから始まったプログラムがダイアログを作成しているとして そのダイアログのボタンを押すと、プロジェクトBのWinmain関数から始まったプログラムを起動するみたいなことなんてできるのでしょうか? 言葉たらずで申し訳ありませんが回答よろしくお願いします。 ちなみにVisual C++6.0を使用しています。

  • 引数付自作関数において、引数を送らない場合について

    こんにちは。 makecolumn(a,b,c)という 自作関数があったとします。 ここで、 aとcにのみ、引数をおくり、 bは、デフォルト値を使いたいと 思います。 この場合、 makecolumn(30,,40) のようにすると、 どうも、エラーになってしまいます。 プログラム側では、 bの値について、 makecolumn=function(a,b,c){ if(b==null || b==''){ b=デフォルト値; } } としていますが、うまくいきません。 引数があるのに、空白で送ってきた場合に、 その状態を取得するには、 どうしたらいいのでしょうか。 よろしくお願いします。

  • WinMain関数が呼ばれません

    CTestDialogクラスより、CTest2Dialogクラスのダイアログを、 MDIで呼び出すプログラムを作成したいのですが、 まずフレームウィンドウを作成しようと思い、 CTestDialogクラス内に下記のような雛形を作成しました。 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow){ MSG msg; while ( GetMessage( &msg, NULL, 0, 0 ) ){ TranslateMessage( &msg ); DispatchMessage( &msg ); } return msg.wParam; } ビルドしてみると、通るのですが、 中にデバッグポイントを打って実行してみても、 どうやら中に入っていないようです。 WinMain関数が正しく動いていれば、プログラム実行時に 自動で呼び出される認識なのですが。。 何か定義が間違っているのでしょうか? 解決策についてご存知の方おられましたら、 お手数ですがご教授お願い致します。 開発環境はVC++2005です。

  • VS2019でWinMainエラー発生

    以下メッセージを表示するだけのプログラムですが、以前はビルドできたのですが、VS2019になってからWinMainで「整合性のないインスタンス・・・」とエラーが出ます。なんででしょうか。 お願いします。 またVCをVBSみたいに黒い画面が出ずに引数を使用したいですが、その他アドバイスもお願いします。 #include <windows.h> int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MessageBox( NULL, TEXT("Hello, world!"), TEXT("Hello"), MB_OK | MB_ICONINFORMATION ); return 0; }

  • コマンドライン引数の例外処理について

    整数a、bをコマンドライン引数として受け取るプログラムを作成するとします。この時、入力するコマンドライン引数を整数であるa、b2つのみとします。 次の事柄について教えて下さい。 (1)コマンドライン引数を2個入力しなかった時の例外処理の仕方 (例えば、コマンドライン引数を入力しなかったり3個入力した時) (2)整数のコマンドライン引数を入力しなかった時の例外処理の仕方 (例えば、「abc」などと入力した場合) (3)コマンドライン引数を数の小さいものから入力しなかった時の処理の仕方 (例えば、「3 5」ではなく「5 3」と入力した場合) 初心者なもので…。どなたかお教え下さい。宜しくお願いします。

    • ベストアンサー
    • Java
このQ&Aのポイント
  • ダウンロードしたファイルを開くと、指定されたデバイス、パスまたはファイるにアクセスできません。と表示され、ドライバーのインストールができない状況です。
  • お使いの環境はWindows11で、接続はWiFiで行っています。関連するソフトやアプリについての情報はありません。
  • 電話回線の種類はひかり回線です。
回答を見る