[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
15# ▄︻┻═┳一


用任务管理器关闭与taskkill有区别吗?

TOP

16# zm900612


任务管理器 结束进程有两种方式,一种是应用程序 选项框里结束,一种是进程选项框里结束。

应用程序选项框里结束 是安全结束,不同于taskkill 强杀进程 那样结束。

TOP

17# ▄︻┻═┳一


上面说反了,进程选项框里结束 是安全结束

TOP

1# qzwqzw


1# qzwqzw

因为explorer.exe是Windows默认的外壳
大多数程序都是它的子进程
也自然继承了它的环境空间
所以我们无论从开始》运行中启动cmd
还是直接点击运行cmd.exe或者批处理
都将会成为explorer.exe的子进程
也同时继承它的环境空间


对这些我不甚了解,但我怀疑你的信息来源,

cmd.exe 不同于一般的应用程序,windows的shell 是系统最后一个启动的一个进程。

f8-- 带命令行的安全模式 就证明了 cmd.exe 是独立于 explorer.exe

TOP

17# ▄︻┻═┳一


原来如此,学习了

TOP

本帖最后由 hanyeguxing 于 2011-4-28 18:29 编辑

19# ▄︻┻═┳一


对这些我不甚了解,但我怀疑你的信息来源,
cmd.exe 不同于一般的应用程序,windows的shell 是系统最后一个启动的一个进程。
f8-- 带命令行的安全模式 就证明了 cmd.exe 是独立于 explorer.exe

1,恰恰相反,cmd.exe 和一般应用程序没什么不同,都是一个32位GUI程序
2,至于:
因为explorer.exe是Windows默认的外壳
大多数程序都是它的子进程
也自然继承了它的环境空间
所以我们无论从开始》运行中启动cmd
还是直接点击运行cmd.exe或者批处理
都将会成为explorer.exe的子进程
也同时继承它的环境空间

这里说的是 cmd.exe 的一般启动方式,这和其他一般应用程序也一样。但不代表说程序就必须从外壳 explorer 上作为子进程启动, cmd 是这样,其他程序也是这样。
3,“f8-- 带命令行的安全模式 就证明了 cmd.exe 是独立于 explorer.exe”
任何程序,只要愿意,都可以独立于外壳而单独装载运行。打个比方,把外壳关闭了qq程序就进程结束了吗?把外壳关了在任务管理器中就不能启动其他应用程序了吗?

系统经过 Pre-Boot 阶段最后加载 NTLDR 文件,切换实模为保护、ntdetect.com 收集信息、加载内核 ntokrnl.exe 、加载 HAL ;然后 system 初始化内核、创建会话管理子系统;smss.exe 创建用户模式并初始最原始的环境、加载 Win32k.sys 、启动 Csrss.exe 与 Winlogon.exe 进程;Winlogon.exe 启动 Services.exe 进程、Lsass.exe 进程、Userinit.exe 进程;Userinit.exe 进行用户初始化后,然后启动 Explorer.exe ,也是 Userinit.exe 启动的带命令行的安全模式中的 cmd.exe ,最后 Userinit.exe 退出。
看明白环境这一过程中环境的继承了吗?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

21# hanyeguxing
以上是gogel的吗?
***共同提高***

TOP

本帖最后由 hanyeguxing 于 2011-4-28 19:52 编辑

22# batman


是说启动部分,还是?http://blog.sina.com.cn/s/blog_51a4af870100ds9h.html
很早以前写的。。。当时是大部分抄微软官方网站的
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

23# hanyeguxing
只是觉得术语用得实在太专业,很像官方发布。。。
***共同提高***

TOP

因为当时 ntldr 总出问题,所以就在 xp 启动上用了点时间
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

注册表把SHELL是explorer删除。。。重启看看,或者直接把explorer改名,重启。
启动后打开任务管理器(ctrl+shift+esc),运行新建任务,cmd。

看看环境变量如何。。。。

用procexp可以看到进程树状结构。

刚才直接看了下,任务管理器是属于SYSTEM下面的winlogon,所以在这里运行cmd,不是属于explorer的子空间。

TOP

右键任务栏打开的任务管理器是explorer所启动的。。。

TOP

环境变量用API
SetEnviromentVaraible。。。随便打的,是环境和变量的英文。。。MSDN有。。。
自己可以想办法跟进去看。。。应该不是explorer去刷新。

TOP

4-30修订

本帖最后由 qzwqzw 于 2011-4-30 22:28 编辑


  • 增加Windows的环境变量排序、动态变量、和setlocal/endlocal
  • 增加msdos的set命令、autoexec.bat、setx.exe工具的说明
  • 修改windows下环境空间和变量读写的说明
天的白色影子

TOP

在“系统属性”中更改全局变量和用户变量后
不仅仅了修改了注册表中的相对应的键值
也同时修改了explorer.exe的环境变量
所以如果我们仅仅修改注册表中的环境变量键值
那么需要重新启动explorer.exe才能读取到环境空间中



注册表添加环境变量,然后用任务管理器结束掉explorer进程,再重启explorer的方式,

cmd中不能读取新添加的环境变量。


需要注销系统(logoff)或者重启系统才可以在cmd中读取环境变量。

以上在xp系统中测试。

TOP

返回列表