为Windows重写外壳程序

「已注销」 2008-08-07 08:21:21
我想用VC为Windows重新编写一个外壳程序,实现诸如资源管理器,桌面等功能,未必要和现在的一个风格。Linux不是有GNOME和KDE等好几种图形界面么。。。
不知各位意下如何?
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DarknessTM 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vcPlayer 的回复:]
蕃茄花园
[/Quote]

主题和重写explorer.exe 是2个概念……
vcPlayer 2008-08-08
  • 打赏
  • 举报
回复
蕃茄花园
「已注销」 2008-08-08
  • 打赏
  • 举报
回复
如果有人有兴趣,可以去SF.NET创建一个项目。不过貌似早就有了。。。
greatws 2008-08-07
  • 打赏
  • 举报
回复
理论上可以,实际上速度可能会变慢
DarknessTM 2008-08-07
  • 打赏
  • 举报
回复
在NT系列上是可以的,不过要做很多很多事……

Linux是因为UI不是核心的一部分,而Windows是核心的一部分
变速齿轮0.45 变速齿轮是一个神奇的改变游戏速度的程序。他是世界上第一个,也是目前最好的改变Windows游戏速度的程序。他几乎能改变任何Windows游戏的速度。我还没有发现任何其他程序能改变,而变速齿轮不能改变的游戏。并且在效果上,例如变速后画面的平滑性(这同时会影响游戏的操作性)、能使游戏达到的最快或最慢速度、使用的方便性、运行的稳定性等都是最好的。 除了游戏,变速齿轮事实上也能改变任何时间相关的程序的速度,例如视频播放、Flash、网页等。总之他是一个用途广泛而且相当有趣的程序。 可以从我的主页(http://www.wangrong1002.com/)上下载本程序的最新版本。 新增功能与改进 1、因为不小心丢了源代码,只好又重写了变速齿轮。虽然界面看起来和原来一样,但实际是完全重写的。 2、9x版的变速齿轮中使用了和NT版中相同的技术,因此几乎能和NT版一样稳定。 3、用Ctrl+加速或减速键可以在每次0.1或0.5次方倍之间切换。 4、自动判断操作系统,只安装9x或NT版。 5、最小化时缩小到系统托盘。 6、NT版可以从“速度改变的进程”列表中删除进程。 7、减小了安装程序。 8、支持更多的热键。 支持的操作系统 这一版本的变速齿轮可以在Windows 98、Windows 98SE、Windows ME、Windows 2000、Windows XP、Windows Server 2003下运行。在Windows 98、Windows 98SE、Windows ME下使用9x版的变速齿轮,在Windows 2000、Windows XP、Windows Server 2003下使用NT版的变速齿轮。由于变速齿轮的9x和NT版在使用上有很大不同(实际上他们是两个不同的程序),所以我将分别地介绍他们。目前变速齿轮不能在Windows NT 3.x和Windows NT 4.x下运行。其实要让变速齿轮能在这两个操作系统下运行是很容易的,方法也很多,不过连M$自己都不支持他们了,所以我也偷个懒吧。我也没有在Windows 95下做过测试,同样也是因为M$不再支持他们了。 变速齿轮的使用 9x版变速齿轮的使用很简单,你要做的唯一事情是移动滑杆设定你想要的速度。设定的速度对系统中所有进程(也就是正在运行的程序)都有效。注意,有些游戏不能在运行中改变速度,这时只要先设定好想要的速度再运行游戏就可以了。 NT版的变速齿轮使用比9x版略微复杂。他只对那些你指定的进程变速,对其他进程则没有影响,这样就大大提高了变速齿轮的稳定性。有几种方法可以指定需要变速的进程: 1。在“速度未改变的进程”列表框中是变速齿轮没有对他变速的进程。在这个列表框中选择一个进程,点加入按钮,可以把他加入到“速度改变的进程”列表中。 2。点浏览按钮(标题是三个点的那个按钮),将打开文件对话框。用他选择一个可执行文件(*.exe)。所选择的文件名将自动填入下拉列表框,并且自动运行。 3。在下拉列表框中填入带完全路径的可执行文件名,按运行按钮运行他。下拉列表框中保存着以前运行过的可执行文件名。你也可以方便地从中选择一个。 4。被变速齿轮变速的进程启动的进程也将自动被变速。由于几乎所有的进程都是由NT的外壳进程(就是在变速齿轮中显示为“Program Manager”的那个进程。桌面和资源管理器也都属于这个进程)启动的,所以如果把“Program Manager”加入到“速度改变的进程”列表中,将是一个方便的使用变速齿轮的方法。 如果进程列表没有正确反映当前的进程状态,可以点刷新按钮刷新列表。对于一些不能在运行中改变速度,或者在运行中改变速度会发生异常的游戏,请先设定好想要的速度,然后用除了第一种方法之外的方法启动游戏。 变速齿轮可以使用热键方便地改变速度。在不能切换到变速齿轮的使用界面,例如游戏正在运行时,热键甚至是唯一改变速度的方法。 点热键按钮可以弹出设置热键对话框。固定速度热键用于把变速齿轮设定到一个固定的速度,加快减慢热键用于加快或者减慢速度。如果核选“加快减慢热键使用精细调节”核选框,每次加快减慢2的0.1次方倍,否则每次加快减慢2的0.5次方倍。另外,使用Ctrl+加快减慢热键也可以在每次2的0.1次方倍和2的0.5次方倍之间切换。“启用热键”核选框用于设置所有热键是否有效。 注意如果用鼠标拖动滑杆将只停在整数倍位置,但是使用左右键可以进行更精细的调节。也可以使用Page Up、Page Down、Home、End键移动滑杆。 常见问题解答 *变速齿轮真的能让我的电脑运行加快256倍吗? 当然不能,否则Intel和AMD岂不是得改行卖软件。事实上他不会改变电脑的运行速度。 *使用变速齿轮会烧坏CPU、显卡和硬盘吗? 不会。如果在用变速齿轮时CPU、显卡或硬盘坏了,即使不用变速齿轮它们一样会坏。 *我在用Windows媒体播放器(Windows Media Player)看电影时想用变速齿轮快进和慢放,但我发现他只是使画面变得跳动,实际速度并没有变化。 在电脑中有声卡时媒体播放器会根据播放声音的速度播放视频。因此需要停用所有声卡。9x下是进入控制面板\系统\设备管理器,右键点击声卡设备,点属性,选在此硬件配置文件中禁用。NT下是进入控制面版\系统\硬件\设备管理器,右键点击声卡设备,点停用。 *加速器真的很好,特别是玩《石器时代》的时候,但是,突然有一天,我发现我的连接上的时间也跟着一起加速,连接时间过的飞快,我可是一个穷玩家啊,禁受不起打击的,希望给我答案!!!是不是加速的时候,电话费和网费也一起加速啊? 放心吧!使用变速齿轮是不会影响到电话费和网费的记费的,你看到的只是使用变速齿轮后的假象,电信局有自己的计费时钟。 *变速齿轮只能改变Windows95及以上版本游戏的速度吗? 是的,他不能改变DOS和Windows3.1游戏的速度。 *我怎么改变不了电脑移植版真侍魂的游戏速度? 由于计时方法的不同,一些游戏不能在运行中改变速度,或者在运行中改变速度会发生异常。只要先设定好速度再运行游戏就可以了。 *我在NeoRage模拟器中把速度降低8倍后为什么按键速度快了就做不出相应的动作,声音也完全变成了噪音? NeoRage并不是连续检测键盘,假设他每秒检测30次,降低8倍后每秒仅检测4次,在这4次检测之间的键盘状态是被忽略的。所以把动作放慢一点吧。变成噪音是由于模拟器的特殊性。据我的测试,在其他游戏中声音都是正常的。 *我把速度降低16倍后为什么看到很多游戏画面是一帧一帧变化的? 二维游戏画面每秒最多30帧,降低16倍后每秒仅有两帧,所以你能清楚地看到画面一帧一帧地变化。三维游戏的帧速率也经常会有上限
Product Name : NT Locale Emulator Advance (NT全域通) short for NTLEA Component Description: ntlea.exe - NTLEA GUI shell and shortcut launcher ntleac.exe - NTLEA core launcher ntleah.dll - NTLEA remote injection DLL ntleap.dll - NTLEA helper library neko.dll - NTLEA GUI runtime library Version & Update History : NTLEA Core 0.86 Beta 07.6.13 by LOVEHINA-AVC 增加对GetSystemDefaultUILanguage及GetUserDefaultUILanguage函数的挂钩 改善了Computer-based Training钩子的挂钩方式 修正了其他一些细小的BUG NTLEA Core 0.85 Beta 07.6.9 by LOVEHINA-AVC 增加让NTLEA加载的应用程序不受系统SDB补丁机制影响的功能 修正了其他一些细小的BUG NTLEA Core 0.83 Beta 07.6.8 by LOVEHINA-AVC 修正了之前的版本不能让含有特殊字符路径的应用程序正常工作的问题 修正了其他一些细小的BUG NTLEA GUI Launcher 1.0 Final 07.6.7 by 七夜真神 增加多语系界面支持与对应的区码(目前支持简体中文、繁体中文及英文) NTLEA Core 0.82 Beta 07.6.7 by LOVEHINA-AVC 修正了在一部分程序下执行会发生初始化失败的问题 完善了跨进程跟踪注入的功能 增加直接打开任意扩展名文件的功能(注:若系统中启用了Microsoft Applocale,msi安装程序将无法被NTLEA正确加载) 0.80 beta 07.6.4 中文名称更改为“NT全域通” 修正了对话框处理函数不能被正确挂钩的问题 修正了因错误地址传递导致应用程序启动失败的问题 修正了一部分程序不能使用IME标准输入法的问题 修正了0.72~0.75版不能在Windows 2000及Windows XP SP0 SP1下运行的问题 增加WM_CHAR及WM_IME_CHAR消息的处理模块,修正了输入框文字不能被正确显示及文字不能被正确输入的问题 消除了数个读零地址非法操作的诱发因素 改进了消息钩子的处理方式 增加应用程序参数指定的支持(详见命令行选项说明) 增加重新指定字体大小的功能(详见命令行选项说明) 修正了Core Launcher(NTLEAC)不能引导一部分程序的问题 修正了多个细小的BUG 0.75 beta 07.1.10 修正了0.73版不能支持某些Unicode/ANSI混合型应用程序的问题 ntleac命令行模式“F”选项实装(注:若要强制指定应用程序所使用的字体,则至少需追加“P4”选项) 增加LB_GETTEXTLEN消息的处理模块(感谢Yoxola提供兼容性问题报告) 0.73 beta 06.12.16 修正了一部分程序在通过系统模版创建窗口时无法被正确挂钩的问题 0.72 beta 06.12.4 修正了在Visual C++ MFC框架程序中会产生乱码的兼容性问题 修正了在调用对话框模版函数后程序运行不正常的问题 增加对kernel32!CreateProcessW函数的挂勾 0.70 beta 06.11.30 增加以下针对窗口及消息处理函数的挂钩: user32!SetWindowTextA user32!GetWindowTextA user32!SendMessageA user32!SendMessageTimeoutA user32!SendMessageCallbackA user32!SendNotifyMessageA user32!PostMessageA user32!GetWindowLongA user32!SetWindowLongA user32!DefDlgProcA user32!DefFrameProcA user32!DefMDIChildProcA user32!DialogBoxParamA user32!DialogBoxIndirectParamA user32!CreateDialogParamA user32!CreateDialogIndirectParamA 增加其它的一些函数的挂钩: user32!GetMenuStringA user32!GetMenuItemInfoA user32!SetMenuItemInfoA kernel32!CharPrevA kernel32!CharNextA kernel32!IsDBCSLeadByte gdi32!EnumFontFamiliesExA gdi32!CreateFontIndirectA 增加自定义右键启动菜单的功能 增加指定预设字体的功能 0.52 beta 06.10.14 增加对user32!CreateWindowExA函数的挂钩 增加对user32!DefWindowProcA函数的挂钩 修正了VerQueryValueA挂钩函数在Windows XP SP0及SP1下会导致无效内存访问异常的问题 0.50 beta 06.10.12 增加对kernel32!GetCommandLineA函数的挂钩 修正了ntdll!RtlUnicodeToMultibyteN挂钩函数中一个重大的BUG,解决了大部分程序的兼容性问题 0.20 beta 06.10.9 增加针对特定应用程序的支持选项 重写部分函数,提高了挂勾程序的兼容性 修正数个小BUG 0.17 beta 06.9.30 再次(?)完善了kernel32!CreateProcessA挂钩函数的功能 0.16 beta 06.9.28 修正在目标程序调用version!VerQueryValueA时可能构成死循环的BUG 0.15 beta 06.9.27 增加对kernel32!GetTimeZoneInformation函数的挂钩,新增时区修正参数 增加对version!VerQueryValueA函数的挂勾 增加对Windows XP SP0操作系统的支持 新增一个兼容性选项 去除了不必要的语言ID参数 完善了kernel32!CreateProcessA挂钩函数的功能 0.11 beta 06.9.25 启动程序ntleac.exe与挂钩程序ntleah.dll由ANSI版本转变为Unicode版 注:如果在使用NTLEA外壳时发现程序无法启动,可尝试直接运行ntleac.exe 附:ntleac参数说明(第一个参数必须包含双引号): 1. "x:\xxxxx\xxx.exe" 说明:目标程序路径。该参数必须位于第一项。 2. "Px" 说明:指定兼容性选项。x为描述兼容性开关的数值,每一个位域指定一个选项(注)。例如,当x为1时,第1个兼容性选项将被开启;当x为8时,第4个兼容性选将被开启;当x为7时,前3个兼容性选项均被开启(1 | 2 | 4 = 7)。 注:这里所说的位域是指二进制数的数位,一个整数最多拥有32个位域,第x位域的值等于2的x次方。 3. "Cx" 说明:指定页码。x为页码ID。 4. "Lx" 说明:指定语言。x为语言区域ID。 5. "Tx" 说明:指定时区修正。x为UTC时区修正数值,单位是分钟。 6. "Fxxx" 说明:指定预设字体,xxx为字体名称。 7. "Axxx" 说明:指定将要传给目标应用程序的参数,xxx为参数内容。 8. "Sx" 说明:指定字体的收放比率,x为比值,单位是百分率。 示例: ntleac.exe "d:\test\game.exe" "A-G 123 -B 456" "P0" "C932" "L1041" "T-540" "FMS Gothic" "S200" 执行结果为启动“d:\test\game.exe -G 123 -B 456”,并设置页码为932(日文Shift-JIS),语言区域为日本,字体为“MS Gothic”,以两倍的大小显示,时区为东9区(GMT + 9:00或UTC - 9:00)。 (注:如果参数中包含双引号,则可用单引号来代替。如上例的"A-G 123 -B 456",追加双引号后可书写为"A'-G 123' '-B 456'") 0.10 beta 06.9.25 正式更名为NT Locale Emulator Advance 增加具有图形界面的外壳程序 增加跨进程跟踪功能 0.05 beta 06.9.24 修正了0.04 beta无法在Windows 2000及XP SP1下运行的问题 0.04 beta 06.9.24 增加对kernel32!CompareStringA函数的挂钩 增加对ntdll!RtlUnicodeToMultibyteN函数的挂钩 0.03 beta 06.9.24 增加对kernel32!CreateFileA函数的本地化支持 修正了前一个版本在多处理器系统中可能出现的兼容性问题 0.02 beta 06.9.23 修正了无法在Windows XP SP1下运行的问题 0.01 beta 06.9.22 最初的版本 FAQs Q:这个工具能够做什么? A:区域模拟,以及内码转换。一些应用程序可能无法在其它的区域模拟软件下正常运行,因此我编写了这个工具,以避免手工转换系统语言区域所带来的麻烦。 Q:它的兼容性如何? A:该程序能够在Windows 2000 SP4/XP及2003 SP1下正常工作,但它很可能不支持Windows 2000 SP3及更低的版本。(注意,当前的版本不支持Windows 20003 Gold、即SP0) 目前已测试可以支持的操作系统详细列表: Windows 2000 SP4 Windows XP Windows XP SP1 Windows XP SP2 Windows Server 2003 SP1 Windows XP x64 Edition Windows Vista Q:使用这个工具时需要安装额外的软件吗? A:不需要。同时这个程序也是绿色软件。 Q:我看到了两个可执行文件,应该怎样使用它们? A:直接运行ntleac.exe,或者为它建立一个快捷方式,并在命令行的末尾填上目标程序的全路径名。关于参数的详细说明请参考附录,在新的版本中您还可以使用名为NTLEAGUI的外壳程序。 Q:我可以与他人分享这个软件吗? A:是的,您可以自由转载这个程序,但请务必保持其完整,且不要修改任何内容。

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧