메모장과 같은 다른 프로그램을 스레드로 실행하여 내 프로그램과 동일한 메모리 공간을 공유하는 방법이 있습니까? 그래서 내 프로그램이 끝나면 메모장도 열리므로 메모장은 내 프로그램 인 작업 관리자에 표시되지 않습니까?프로그램을 스레드가 아닌 프로세스로 실행
답변
아니오, 확실히 메모장과 같이 관리되지 않는 앱에는 해당되지 않습니다.
그러나 관리되는 응용 프로그램의 경우 System.Reflection
에있는 유틸리티를 사용하여 어셈블리를로드하고 Main()
메서드 (또는 엔트리 포인트가 아니라)의 실행을 시작할 수 있습니다.
그러나 사용자가 원하는 것을 에뮬레이트 할 수있는 몇 가지 기능이 System.Process
클래스에 있습니다.
아니요. 이것은 모든 종류의 불쾌한 일이 발생할 가능성이 있으므로 매우 나쁜 생각입니다. 다른 프로그램은 초기화해야 할 내용과 호스팅 프로그램에 의해 초기화 된 내용을 알 수있는 방법이 없습니다.
그러나 프로그램에서 메모장을 강제로 닫을 수는 있습니다. 응용 프로그램이 종료 될 때 생성 한 프로세스에서 Process.CloseMainWindow (nice) 또는 Process.Kill (dead this to) 메서드를 호출하면됩니다.
아니,이 (단일 프로세스 내에서 몇 가지 이상한, 가상화 스타일의 환경을하려고 금지.)
, 그 메모장 앱으로 사망 확인 작업 개체를 생성에 응용 프로그램을 할당 할 수 없습니다 그것이 메모장을 시작하기 전에. 프로그램이 닫히면 작업 개체가 삭제되고 작업 개체의 모든 하위 프로세스도 닫힙니다.
이론적으로 OS 로더와 동일한 작업을 수행 할 수 있습니다. 실행 파일을로드하고 기본 진입 점을 찾고 스레드에서 호출합니다.
모든 종류의 app-compat 문제로 실행될 가능성이 높습니다. 실행 파일의 코드가 이러한 방식으로 실행될 것으로 예상하지 않기 때문입니다.
- 1. Java 응용 프로그램을 별도의 프로세스로 실행
- 2. 다른 프로세스로 서비스 실행
- 3. 대기 후 스레드가 실행 가능 상태가 아닌 차단 상태에 있어야합니다?
- 4. Visual C++ 프로세스로 Java 클래스 실행
- 5. 백그라운드 프로세스로 java 응용 프로그램을 실행하십시오.
- 6. 심비안 응용 프로그램을 백그라운드 프로세스로 사용
- 7. PHP CGI 스크립트를 백그라운드 프로세스로 실행 하시겠습니까?
- 8. 백그라운드 프로세스로 명령 줄에서 PHP 스크립트 실행
- 9. Android NDK 스레드가 프로그램을 중단합니다.
- 10. 스레드가 제한된 다중 실행 경로
- 11. 스레드가 실행 완료되었는지 확인하는 방법
- 12. 다른 실행중인 프로세스로 전환
- 13. 핫 배포 후에 실행 스레드가 계속 실행 중임
- 14. 하나의 라이브러리가 멀티 스레드가 아닌 경우 어떻게해야합니까?
- 15. 프로젝트가 아닌 파일 실행
- 16. 루트가 아닌 프로세스에서 jailkit 실행
- 17. 응용 프로그램을 Windows 서비스로 실행
- 18. 장치가 에너지 절약 모드에있는 동안 스레드가 실행 중입니다
- 19. 스레드가 완료된 후 일부 작업 실행
- 20. 스레드가 실행 완료 될 때까지 기다리는 중
- 21. 파이썬을 별도의 프로세스로 실행하십시오.
- 22. 하위 프로세스로 프로세스를 복구합니다 .Popen?
- 23. JGNAT 프로그램을 실행 하시겠습니까?
- 24. 프로그램을 서비스로 실행 하시겠습니까?
- 25. 스레드가
- 26. WinForm 응용 프로그램을 여러 인스턴스가있는 하나의 프로세스로 제한
- 27. Citrix에서 WPF 응용 프로그램을 자식 프로세스로 작동시키는 방법
- 28. 인스턴스 메서드는 인스턴스화 스레드가 아닌 별도의 스레드에서 호출되었습니다.
- 29. 64 비트 Windows에서 32 비트 프로세스로 MSIL exe 실행
- 30. 파이썬에서 서브 프로세스로 파일에 출력하기
많은 경우에는 작동하지 않습니다. 분할해야 할 프로세스 정보가 많이 있습니다. GetModuleHandle (NULL) 또는 GetCommandLine()을 호출하는 것만 큼 간단한 결과라도 잘못된 결과가 반환됩니다. – Michael
실행 파일로드 및 실행 _will_ work. 내가 말했듯이, 정의되지 않은 _after_가 발생합니다. :-) –
당신은 흥미로운 작업 정의가 있습니다 :) 그것은 프로그램의 진입 점에도 미치지 못합니다 - 소스 코드 WinMainCrtStartup 또는 __mainCRTSTtrtup을보십시오. 많은 API 호출이 올바르게 작동하지 않습니다. – Michael