自アプリケーションがユーザーオペレーションによって起動されたか他アプリからシェル内で起動されたかを判別する手段って有りますでしょうか?何方かご指導下さいますよう。よろしくお願いいたします。
他アプリからシェルで起動する際、起動引数を指定してはいかが?Command関数など調べてみると良いでしょう。
ささきち様早速の御返答有難う御座います。出来ますれば、引数等を付けずに判別出来ればと思案しているのですが。やはり駄目ですかね…どなたか良い知恵が有りましたら。ご指導お願いいたします。
ユーザが異なるなどの差異が存在しない限りは、区別は無理でしょう。どちらにしてもAPI関数のCreateProcessが呼び出されるのですし、そこに渡される引数で区別がつくものではないでしょうし。IShellExecuteHookをかけても、これで判明するのはShellExecute(Ex)を呼び出して実行されたものである、ということだけですし。
環境変数で区別するor親プロセスを調べるorアプリパス名の大文字小文字をわざと変える(実行には影響しないので)