2017-05-18 42 views
0

Inno Setupインストーラを使用して、インストールしたばかりのインストーラファイルをセットアップし、次のコマンドで:Inno Setupで新しいウィンドウを開くことなくCMDコマンドを実行する方法

[Run] 
Filename: "{cmd}"; Description: "{cm:LaunchProgram,3mtxmail}"; \ 
    Flags: nowait postinstall skipifsilent runascurrentuser; \ 
    Parameters: "/b /k "" ""{app}\my.exe"" -c ""{app}\default.conf"" "" " 

my.exeが動作しているとき、それは任意のインターフェイスを必要としない、とだけ特定のポート上のすべてのトラフィックに耳を傾け、ログファイルにそのトラフィック情報を書き込む必要があります。

しかし、インストーラを実行してプログラムを起動すると、新しいコンソールウィンドウが表示されますが、これは/bが防げていたはずだと思います。私はこの新しいコンソールウィンドウを表示しないと思うし、実際に画面上に何も表示されません。

https://technet.microsoft.com/en-us/library/bb491005.aspxから、は、コマンドに新しいウィンドウを開かないことを示すフラグにする必要があります。

正しい構文は何ですか?

+0

コンソールまたはGUIアプリケーションですか? –

+0

@MartinPrikrylコンソールです。 – jamesdeath123

+1

投稿ごとに1つの質問だけをお願いします。あなたはもちろん、あなたの新しい質問を歓迎しますが、それを別々に投稿してください。 –

答えて

5

何かのためにcmd.exeが必要なようには見えません。代わりに、直接アプリケーションを実行します:

[Run] 
Filename: "{app}\my.exe"; Parameters: "-c ""{app}\default.conf""" \ 
    Description: "{cm:LaunchProgram,3mtxmail}"; \ 
    Flags: nowait postinstall skipifsilent runascurrentuser; 

アプリケーションがコンソールアプリケーションであれば、それは自身のコンソールを開きますけれども。これを防ぐには、runhidden flagを追加してください。

実際にrunhiddenフラグを使用して、cmd.exeコンソールウィンドウを隠すこともできます。しかし、cmd.exeの必要がない場合は、使用しないでください。

+0

ありがとうマーティン!私はちょうどあなたが2番目の質問にも私を助け、フォローアップの質問を含めるために質問を更新しました、私は確かにあなたの答えとupvoteを受け入れることになります!ありがとうございました! – jamesdeath123

+0

これはまったく異なる質問です。アイコンはInno Setupによって実行されません。アイコンはInno Setupによって作成されますが、Windowsエクスプローラで実行されます。別にそれを求めてください。 –

+0

私はあなたが答えた他の質問から回避策を得ました。ありがとうございました! – jamesdeath123

関連する問題