- 締切済み
ShellExecuteのコマンドについて
すみません、どなたか教えてください。 下記のコマンドですが、 ShellExecute(null,"open","cmd.exe","実行したいもの",NULL,SW_HIDE); "実行したいもの" の書き方なんですが、 "/c c:\\work\\test.bat" のように書くと、cmd.exeにtest.batを実行させることができたんですが、 実行したいtest.batが指定できず、変数でセットする場合の書き方が分かりません。 ShellExecute(null,"open","cmd.exe","/c c:\\work\\test.bat",NULL,SW_HIDE); ↓ ShellExecute(null,"open","cmd.exe","/c c:\\work\\ "" & 変数 & "",NULL,SW_HIDE); こんな感じだと思うのですが、変数をダブルクォーテーションで囲むときに、ダブルクォーテーションをいくつ重ねるのかが分かりません。ググっているのですが、どこを調べていいのか分からず、はまっています。どなかたアドバイスお願いします。C++です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hue2011
- ベストアンサー率38% (2801/7249)
こういうことはなぞでも何でもなく、仕様が公開されているのだからちゃんと読んでください。 どこを調べていいのか分からないというのはおかしいでしょう。 Microsoftの情報を転載します。 HINSTANCE ShellExecute( HWND hwnd, // 親ウィンドウのハンドル LPCTSTR lpVerb, // 操作 LPCTSTR lpFile, // 操作対象のファイル LPCTSTR lpParameters, // 操作のパラメータ LPCTSTR lpDirectory, // 既定のディレクトリ INT nShowCmd // 表示状態 ); なんでlpFileにパラメータをコンカチしようとしているのですか。 バッチ実行のシステムはどうなっているのでしょうか。 バッチは、コマンドラインの処理をそのまま記載してファイル化し、それをCMDに実行させるものではないでしょうか。 だったらバッチファイルがなければ実行なんてできないでしょう。 memoかなにかで処理自体を作成し、savetofileした上、そのバッチファイルを渡さなければいけないでしょう。 そして実行後そのバッチファイルを削除すればいいのです。
投稿するカテゴリを以下に変えて、再質問したほうが良いです。 [技術者向] コンピューター ⇒ プログラミング ⇒ C・C++ なお、質問者さんの書かれたプログラムは C++ と Visual Basic の記法が混じっていますので、動きません。正しい記法は上記カテゴリで聞いてください (私は C++ は自信がないのでパス)。
お礼
すみません、アドバイスと叱咤激励?ありがとうございました! ちょっと時間に追われていて、頭がパニックに陥り、「どこをどうしらべていいのか分からない」などといったことを書いてしまいました。もう少し落ち着いて、ググって調べたいと思います。ありがとうございました!