Roddyが示唆しているように、パラメータスイッチは唯一の信頼できる解決策だと私は思います。ただし、ユーザーが自分のショートカットを作成した場合、これはあなたのニーズに合わないことがあります。
つまり、ユーザーがコマンドラインに「ドキュメント」を含むショートカットを作成した場合、コマンドラインの呼び出しまたは「ダブルクリック」として扱うかどうかを指定します。私の推測は後者です。
前者の場合は、ここでの読解をやめることができます。 :)
しかし、それが後者であるならば、あなたは(それ以上)にしてもう少し作業を配置する必要があるかもしれません確実にしたい動作を取得....
コマンドラインを使用することを含むであろうとダブルクリックの起動ではなく、コマンドラインの起動を表示するように切り替えるには、コマンドラインから何かを実行するための複数の方法があります。 (私は、スタートメニュー - >実行...をコマンドラインの起動とみなしています。)ymmv)
私の場合は、アプリケーション用のコマンドライン固有のランチャーを作成します。コマンドラインランチャーは実際には、実行可能な実際のアプリケーションを呼び出す前に、与えられたコマンドラインを受け取り、単純に追加のパラメータを追加する非常にシンプルなコードのコードとなります:
単純に効果的とのShellExecuteを呼び出し
myappというのparam1 PARAM2
:
myappguiのparam1 PARAM2 /CMD
私は自分自身が2つの実行を有するあまりにも心配ではないでしょうユーザーがあなたの「本当の」アプリを表現するexeの実際の名前にはるかに関心がないのでもちろんGUIの呼び出しはその名前を知っているか、知りたいという必要はありません。あなたのファイルの種類の関連付けとショートカットなどを直接に単純にすべてのポイントmyappgui.exeはなく、を「本物」のmyapp.exe
そして、あなたのコマンドラインリファレンスは、単にのmyapp.exeを使用するユーザーに指示コマンドラインからあなたのアプリを起動する。
アプリケーションでは、コマンドラインスイッチが見つかった場合、コマンドラインランチャアプリケーションから起動されたことを認識します。それ以外の場合は、ダブルクリック/ GUI起動でなければなりません。
あなたのユーザーの大多数が懸念している限り、2つのexeが関わっていることを知る必要はありません。いずれにせよ、あなたが選択した技術をユーザが発見した場合、ユーザはそれを受け入れる必要があります。彼らは望む目的を達成するためにコマンドラインを作って偽装することができます。
これが重要なのであれば、コマンドラインランチャーのアプローチでは、おそらく2つの実行可能ファイルが不足していることを知っているため、コマンドラインスイッチを知る必要がありますあなたのコマンドラインランチャが追加されました - コマンドラインランチャmyapp.exeを使わずにコマンドラインから直接myappgui.exeを直接使用した場合、GUIから起動されたかのように応答します!
一方、スイッチを使用してGUIを起動すると、は、必要なスイッチを「パブリックビュー」にする必要があります。
はい。私が必要としていることを忘れないでください。うーん、でも、私はthisbasic/dlパラメータが結局最良の解決策だと思っています... –
+1 Roddyは信じられないほど謎めいた質問を見つけました! – Argalatyr
Argalatyrと合意しました。この質問は、私がRoddyの答えを読むまでは何も理解していませんでした。 –