当你对着一个应用程序双击后发生了什么
来源:互联网 发布:消音软件哪个好 编辑:程序博客网 时间:2024/05/16 04:59
回顾一下我们开始接触计算机的阶段,你对着桌面上的图标点击却怎么也打不开,当老师告诉你要左击两下的时候,你发现还是没有打开,而你要打开的图标的名字却变成了可编辑状态,后来大致搞懂是手速不够,那么当你接触计算机N年后,你是否搞懂双击这个习以为常的动作完成后发生了什么?
你在图标上双击的操作被Explorer.exe也就是桌面程序获知,在桌面程序体内有一堆等着响应的DLL,它们被称为Shell程序。其中有一个叫Shell32.dll的家伙,它表示认领双击工作,首先它获取被我们点击的文件名字和位置,然后开始通过ShellExecuteExW来执行我们的程序,最终调用了程序员熟悉的CreateProcessW。
以XP为例,流程如下:
......_InvokeContextMenu()CDefFolderMenu::InvokeCommand()HDXA_LetHandlerProcessCommandEx()CShellExecMenu::InvokeCommandCShellExecMenu::_InvokeOne()_InvokePid()ShellExecuteExW()_ShellExecuteNormal()ExecuteNormal()_TryInvokeApplication()_DoExecCommand()_SHCreateProcess()CreateProcessW()
CreateProcessW()中的工作比较多,先做必要的合法检查,再分析此文件是可执行程序吗?是否需要其他程序打开,就想你双击的虽然是.txt文件但打开的往往是记事本.
如果你想了解更详细的Windows系统中创建进程后半部分的内容,阅读React OS源码是个不错的选择。
双击跟踪过程在尝试多种工具后发现火绒剑可以满足我的需要。
感谢你的阅读,晚安。
2016年8月11日 00:41:16
1 0
- 当你对着一个应用程序双击后发生了什么
- 当你在浏览器地址栏输入一个URL后回车,页面出现之前发生了什么?
- 当你输入一个网址后都发生什么
- 当你从浏览器地址栏中输入URL回车后发生了什么
- 当你在地址栏输入一个URL地址回车后,将会发生什么事情
- 当你输入一个网址后回车,实际会发生什么?
- 当你输入一个网址后回车,实际会发生什么?
- 当你输入一个网址后回车,实际会发生什么?
- 唯快不破:当你在地址栏输入一个URL地址回车后,将会发生什么事情
- 当在浏览器中输入一个url后回车,后台发生了什么?
- 当在浏览器中输入一个url后回车,后台发生了什么?
- 当在浏览器中输入一个url后回车,后台发生了什么?
- 当在浏览器地址栏输入一个URL后回车,实际发生了什么
- 当用户输入一个url地址后,到看到页面的过程,期间发生了什么?
- 当你输入一个网址的时候,究竟发生了什么?
- 当你输入一个网址的时候,究竟发生了什么?
- 当你打开一个网页时,都发生了什么事情?
- 当你打开一个网站的时候,都发生了什么
- 《代码整洁之道》第一章 总结
- Windows下的内存管理简单了解
- 数据库、用户、方案、表空间、表对象
- 最新 9个免费建站空间 网站均免备案
- CodeForces 589J -- J. Cleaner Robot (BFS)
- 当你对着一个应用程序双击后发生了什么
- 如何理解奇偶校验只能发现数据代码中奇数位出错的情况
- Win10系统精简
- CoordinatorLayout与滚动的处理
- HDU-5816-Hearthstone-DP+数学推导
- HDU 4422 采蘑菇的小女孩
- group by、having以及order by
- UVA 658 It's not a Bug, it's a Feature! (特殊图最短路)
- [Servlet]Servlet生命周期