3

実行可能ファイルがあり、それが開始されたときに、どのように開始されたかを知りたいとしましょう。つまり、ショートカットで開始するのか、直接開始するのかを知りたいのですが。これとともに:

string test = Environment.GetCommandLineArgs()[0];

実行可能ファイルのパスを取得できますが、ショートカットで開始した場合でも、これは常に同じです。

実行可能ファイルの名前がc:\ text.exeで、直接起動すると、test ='c:\ test.exe'ショートカット、つまりc:\shortcut.lnkを作成した場合(ターゲットc:\ test.exeを使用) )テストを「c:\ shortcut.exe」にしたいのですが、「c:\test.exe」です。

OSがショートカット部分を処理し、実行可能ファイルが違いを認識できないため、これは不可能だと強く思いますが、誰かが創造的なアイデアを持っているのではないでしょうか。

4

2 に答える 2

2

これは一般的には機能しませんが、ショートカットを作成している場合は、コマンドラインパラメーターを追加してショートカットを識別することができます。

于 2010-03-25T08:37:27.193 に答える
1

あなたの疑惑は正しいです、オペレーティングシステムはあなたからメカニックを隠しています。

ただし、開始したプロセスを取得することは可能です。これは、スタートメニューのリンクから開始したのか、エクスプローラウィンドウでダブルクリックしたのかを区別するのに役立ちません。

于 2010-03-25T08:29:08.320 に答える