2009-08-16 15 views
0

最近、私は両方の時間パラメーターが同じであれば、プログラムが呼び出された方法を決定するいくつかの問題を実行します。 /何か。 私は実行時にプログラムとアイコンを関連付けることができますが、私はそれを呼び出すためにcmdを使用することができますが、関連するファイル(アイコン付き)をdoubleclikcすると、progamは単に開きますが、必要なトリガー/属性/ run> appname.exe/something/somethingではなく、実行がダブルクリックされた場合のパラメータ。デルファイ:CMDからのプログラム実行と内部プロシージャー/関数の呼び出し

あなたはなど簡単な例を与えるかrequiered機能を理論的にはすべての書き込みはでき

現在、あなたが推測できるように、私が使用ParamStr/ParamCount/blablabla/FindCMDLineSwitch /および他のいくつかの機能...しかし...まだ...

答えて

5

:(あなたは私はあなたがあればアクション#1を行うことができるようにしたい考える少し?

を説明することができ、文書の「mydocument.ext」のアイコン、および行動上のユーザーdoubleclicks彼がタイプすれば#2

appname.exe mydocument.exe 

ダブルクリックすると、シェルに「オープン」動詞が実行されます。この動詞には、レジストリに関連付けられた「コマンド文字列」があります。あなたの最善の策は何かのように、このコマンド文字列を設定し...

MyProgram.exe "%1" /doubleclicked 

...と/は、実行時にフラグをダブルクリックさのために、次にチェックすることです。明らかに、 "/ doubleclicked"オプションでコマンドを入力するのを防ぐことはできませんが、それはシェルの動作です。

+0

はい。私が必要としていることを忘れないでください。うーん、でも、私はthisbasic/dlパラメータが結局最良の解決策だと思っています... –

+1

+1 Roddyは信じられないほど謎めいた質問を見つけました! – Argalatyr

+0

Argalatyrと合意しました。この質問は、私がRoddyの答えを読むまでは何も理解していませんでした。 –

1

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を起動すると、は、必要なスイッチを「パブリックビュー」にする必要があります。

+0

http://ja.wiktionary.org/wiki/TLDR – Argalatyr

関連する問題