Windows 7에서 인수로 호출 한 taskmgr.exe


13

내가 누를 때주의 Ctrl+ Alt+ Del및 작업 관리자를 클릭, 윈도우 호출을 taskmgr.exe /3명령한다. 일부 웹 사이트는 작업 관리자에 명령 줄 인수가 없다고 주장합니다.

프로세스 탐색기의 작업 관리자 프로세스

Windows가이 인수를 왜 첨부합니까?


또한 Google 검색뿐만 아니라 존재의 목적과 일반적인 목적에 따라 알아낼 수 없었기 때문에 더 혼란스러운 또 다른 가중치 LaunchTM.exe%windir%\System32있습니다.

@ Chinggis6 LaunchTM.exeWindows 7 에는 없습니다 . Windows 8에 있다고 생각합니다. 여기서 수퍼 유저에 대해 새로운 질문을 작성 하지 않겠습니까? ;)
Martin Braun

답변:


13

분석

분명히 그것은 문서화 된 행동이 아닙니다. 몇 가지 테스트를 수행 한 결과를 확인했습니다.

  • 작업 표시 줄을 마우스 오른쪽 단추로 클릭하고 작업 관리자 시작을 클릭 하십시오 .

    "C:\Windows\system32\taskmgr.exe" /4
    
  • Ctrl+ Shift+를 누릅니다 Esc.

    taskmgr.exe /2
    
  • 를 눌러 Ctrl+ Alt+ Del, 클릭 작업 관리자 시작 .

    taskmgr.exe /3
    
  • 높지 않은 작업 관리자를 시작하고 모든 사용자의 프로세스 표시 단추를 클릭하십시오 .

    "C:\Windows\system32\taskmgr.exe" /1
    
  • taskmgr.exe시작 메뉴 검색 창에 입력하거나 붙여 넣은 다음 Enter; Win+를 누르고 텍스트 상자에 R입력하거나 붙여 taskmgr.exe넣은 다음 Enter; System32폴더로 이동 하여 taskmgr.exe실행 파일을 두 번 클릭하십시오 . 시스템 구성 유틸리티 ( msconfig.exe)를 시작하고 도구 탭을 클릭 하고 목록에서 작업 관리자 항목을 선택한 다음 시작을 클릭하십시오 .

    "C:\Windows\system32\taskmgr.exe"
    
  • 명령 프롬프트를 열고을 입력하거나 붙여 넣은 다음를 taskmgr.exe누릅니다 Enter.

    taskmgr.exe
    

비고

  • Windows 8의 개발 단계에서 Release Preview까지 비슷한 방식으로 작동했습니다. Windows Vista 및 이전 운영 체제는 영향을받지 않습니다.

  • 실행 파일 은 명령 행 인수를 검색하고 구문 분석하는 데 사용되는 몇 가지 API 함수 (즉 GetCommandLineWCommandLineToArgvW)를 가져옵니다.

  • 위의 인수 중 하나를 사용하여 프로그램을 수동으로 시작해도 눈에 띄는 효과는 없습니다.

교육받은 추측을해야한다면 숫자 매개 변수는 내부 시작 표시기이며 디버깅 목적으로 사용 된 후 남겨 두어야한다고 말하고 싶습니다.


5
"taskmgr / 7 / startup"=> 시작 탭 앞에 시작하십시오! (Windows 8.1)- "taskmgr / startup / 7"이나 "taskmgr / startup"은 그렇지 않습니다! (추가 신용 :이 증거가 주어진 taskmgr.exe의 명령 행 구문 분석 알고리즘을 설명하십시오 ...)
davidbak

1
@davidbak 는 두 번째 인수로 taskmgr /anything /startup작동합니다 /startup.
Michel de Ruiter

@MicheldeRuiter-그렇습니다. 어떤 순서로든 논쟁을 허용하기 위해 그들을 죽였을까요? 품질 관리에서 추가 작업이 발생 했습니까? 배송일이 지연 되었습니까? 허 ????
davidbak

2

몇 가지 참고 사항 :

명령이 전송되었다고해서 프로그램이 이러한 인수 또는 다른 인수를 허용한다는 의미는 아닙니다.

예를 들면 다음과 같습니다.

나는 내 자신의 이상한 명령으로 taskmanager에 전화했고 행동은 바뀌지 않았습니다.

여기에 이미지 설명을 입력하십시오

기본 프로그래밍 관점에서, 모든 응용 프로그램에는 인수 전달할 있는 일종의 기본 방법이 있습니다 . 예를 들어 기본 Windows Form C # 응용 프로그램은 다음과 같습니다.

private void Form1_Load(object sender, EventArgs e)
        {

        }

재미있는 인수를 전달하면 응용 프로그램에서 아무 일도 일어나지 않지만 Process Explorer는이를 포착하여 표시합니다.

여기에 이미지 설명을 입력하십시오

그러나 명시 적으로 처리하기로 결정하면 명령에서 상호 작용을 얻습니다.

여기에 이미지 설명을 입력하십시오

그리고 내가해야 할 일은 양식의 진입 점을 약간 변경하는 것입니다.

private void Form1_Load(object sender, EventArgs e)
        {
            string arguments = Environment.GetCommandLineArgs()[1];

            this.Text = arguments;
        }

이제 왜 그것이 있는지에 대한 질문으로 돌아가십시오.

ctrl+ alt+ del메소드 에서 taskmgr.exe에 액세스 하면 명령 인수 "/ 3"이 표시됩니다. 또한 ctrl+ shift+ 를 사용하면 esc/ 2를 통과하고 작업 표시 줄을 마우스 오른쪽 단추로 클릭하고 "작업 관리자 시작"을 클릭하면 표시된 스위치는 / 4입니다.

이 모든 것이 Windows가 알아야 할 것이 있거나 아마도 우리가 알지 못하는 작업 관리자를 위해 거의 구현되었다고 가정하게합니다. 예를 들어, Windows의 보안 은 스크립트 나 사용자가 아닌 taskmgr.exe를 호출하는 데 ctrl+ alt+ del가 사용 되었는지 알고 싶어 할 수 있습니다 . 다시 말하지만, 순수한 추측이지만 이와 같은 스레드 는 적어도 생각했을 수도 있다고 생각합니다.


악명 높은 tl; dr

Windows가 이러한 명령을 전달하는 이유를 알려면 Microsoft 개발 팀원이나 소스 코드가 필요할 수 있습니다. 더 나은 답변이 없을 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.