自分のゲーム用のランチャーを作ったので、ランチャーが自動的にダウンロードしてゲームにパッチを当てます。 しかし、ランチャーによってゲームが開始されたかどうかを確認するにはどうすればよいですか?コマンドライン引数を使用せずにこれを行う方法はありますか?C# - アプリケーションが別のプログラムによって起動されたかどうかを検出します。
答えて
ランチャーが.netアプリケーションの場合、コマンドラインではなく、(エクスポートされたクラスの)Main()
関数を呼び出すことでアプリケーションを起動できます。
ランチャーが.netアプリケーションではなく、アプリケーションがWindowsのみで動作する場合は、メインアプリケーションからランチャーのウィンドウ(FindWindow
機能を使用)を見つけて、SendMessage
WinApi関数を使用してメッセージを送信し、結果を確認します。
これらの記事には便利かもしれません:
大丈夫ですが、誰かが私のランチャーを逆コンパイルすると、彼は自分で作ることができ、ゲームは問題なく起動しますか? Main()メソッドを呼び出してゲームを開始する方法は? (私のゲームはUnityで作られています) –
@ Unity-ThiagoSouza誰かが新しいランチャーを作るのを防ぐために、あなたは難読化を使うべきです。あなたのランチャーから 'Main()'メソッドを実行するには、 'Game.exe'または' Game.dll'を1つずつ追加する必要があります。その後、クラスのオブジェクト( 'MyGameNamespace.MyGameClass'など)を作成し(静的でない場合)、' Main() 'メソッドを実行することができます。 – Astronavigator
ログのいくつかの種類を追加するランチャーを作成し、そのログファイルを確認することができますゲームが始まるとき – Robert
興味深い質問。確かにそれは可能ですが、私はこれがプラットフォーム固有であると考えます。 – Astronavigator
まあ、 "mygame.exe"を呼び出さないと、.netを使用してexeファイルを使用して、メインルーチンに「直接電話しないでください」と言っても、 。 – BugFinder