프로그램 을 두 번 눌 렀 을 때 무슨 일이 일 어 났 습 니까?

우리 가 컴퓨터 를 접 하기 시작 한 단 계 를 돌 이 켜 보면 데스크 톱 에 있 는 아이콘 을 클릭 해도 열 리 지 않 습 니 다. 선생님 께 서 왼쪽 에서 두 번 눌 러 야 한다 고 말씀 하 셨 을 때 열 리 지 않 은 것 을 발 견 했 습 니 다. 그리고 당신 이 열 려 고 하 는 아이콘 의 이름 은 편집 가능 한 상태 가 되 었 습 니 다. 나중에 손 속도 가 부족 하 다 는 것 을 알 게 되 었 습 니 다. 그러면 컴퓨터 를 접 한 지 N 년 이 지난 후에...너 는 이 익숙 한 동작 을 더 블 클릭 해서 완성 한 후에 무슨 일이 일 어 났 는 지 알 고 있 니?
아이콘 에서 두 번 누 르 는 동작 은 탐색 기. exe, 즉 데스크 톱 프로그램 에서 알 수 있 습 니 다. 데스크 톱 프로그램 에 응답 을 기다 리 는 DLL 이 있 습 니 다. 셸 프로그램 이 라 고 합 니 다.그 중 에 Shell 32. dll 이라는 사람 이 있 습 니 다. 더 블 클릭 작업 을 받 겠 다 고 했 습 니 다. 먼저 우리 가 클릭 한 파일 이름과 위 치 를 가 져 온 다음 에 Shell ExecuteExW 를 통 해 프로그램 을 실행 하기 시 작 했 고 프로그래머 가 잘 아 는 Create ProcessW 를 호출 했 습 니 다.XP 를 예 로 들 면 절 차 는 다음 과 같다.
......
_InvokeContextMenu()
CDefFolderMenu::InvokeCommand()
HDXA_LetHandlerProcessCommandEx()
CShellExecMenu::InvokeCommand
CShellExecMenu::_InvokeOne()
_InvokePid()
ShellExecuteExW()
_ShellExecuteNormal()
ExecuteNormal()
_TryInvokeApplication()
_DoExecCommand()
_SHCreateProcess()
CreateProcessW()

CreateProcessW () 에서 작업 이 많 습 니 다. 먼저 필요 한 합 법 적 인 검 사 를 한 다음 에 이 파일 을 분석 하 는 것 이 실행 가능 한 프로그램 입 니까?다른 프로그램 이 필요 한 지 여 부 는. txt 파일 이지 만 열 리 는 것 은 메모 장 입 니 다. 더 자세 한 Windows 시스템 에서 프로 세 스 후반 부 를 만 드 는 내용 을 알 고 싶다 면 React OS 소스 코드 를 읽 는 것 이 좋 습 니 다.
더 블 클릭 추적 과정 에서 여러 가지 도 구 를 시도 한 후에 벨벳 검 이 나의 수 요 를 만족 시 킬 수 있다 는 것 을 발견 했다.
읽 어 주 셔 서 감사합니다. 안녕 히 주 무 세 요.2016 년 8 월 11 일 00: 41: 16

좋은 웹페이지 즐겨찾기