2016-08-26 2 views
-1

내 게임의 실행기를 만들었고 실행기가 자동으로 게임을 다운로드하고 패치합니다. 하지만 런처로 게임이 시작되었는지 어떻게 확인할 수 있습니까? 명령 행 인수를 사용하지 않고 그것을 할 수있는 방법이 있습니까?C# - 다른 프로그램에서 응용 프로그램을 시작했는지 감지합니다.

+0

:

이 기사는 유용 수 있습니다 게임을 시작할 때 – Robert

+0

흥미로운 질문입니다. 분명히 가능하지만 플랫폼에 따라 다를 수 있습니다. – Astronavigator

+0

글쎄, 만약 당신이 그냥 "mygame.exe"전화를 사용하여. NET에서 EXE를 사용하고 메인 루틴 "내가 직접 전화 해달라고 물건을 할"아직 클래스 등을 사용하여 어쩌면 ... 어쩌면 . – BugFinder

답변

1

런처가 .net 응용 프로그램 인 경우 명령 줄이 아닌 내 보낸 클래스의 Main() 함수를 호출하여 응용 프로그램을 시작할 수 있습니다.

런처가 .net 응용 프로그램이 아니고 응용 프로그램이 Windows에서만 작동하는 경우 주 응용 프로그램에서 실행 프로그램의 창 (FindWindow 기능 사용)을 찾고 SendMessage WinApi 기능을 사용하여 메시지를 보내고 결과를 확인하려고 할 수 있습니다. 당신이 실행 로그의 어떤 종류를 추가 할 수 있도록 한 다음 로그 파일을 확인하실 수 있습니다

  1. Importing .net classes
  2. Finding windows
  3. Sending messages
  4. Importing dll functions
+0

괜찮 았지만 다른 사람이 내 발사기를 디 컴파일하면 그 사람이 내 발사기를 디 컴파일하면 문제없이 게임이 시작됩니다. 어떻게 Main() 메서드를 호출하여 게임을 시작할 수 있습니까? (나의 게임은 Unity로 만들어진다.) –

+0

@ Unity-ThiagoSouza 누군가가 새로운 발사기를 만들지 못하게하기 위해 난독 화를 사용해야한다. 런처에서'Main()'메쏘드를 실행하려면'Game.exe' 나'Game.dll' 화합에 의해 참조를 추가해야합니다. 그런 다음 (정적이 아닌 경우) 클래스의 객체 (예 :'MyGameNamespace.MyGameClass')를 생성하고'Main()'메소드를 실행할 수 있습니다. – Astronavigator

관련 문제