如何给系统注册一新的可执行程序后缀名,有难度

就是just4 2009-10-16 08:11:04
请教一个问题,有难度:
我们都知道,Windows操作系统只认.exe/.com/.bat/.cmd。。。等可自动执行程序文件
如把该PE程序的后缀改为其它的条件下,如何实现该程序的自动运行?

比如,原win32的PE程序test.exe,现改为test.ex
如何给系统注册.ex的后缀,且要求该后缀程序能自动执行,至少鼠标双击能直接运行该程序,而不是弹出打开方式

请大家认真看待这个问题,这与普通文档的关联不是一个概念

我的做法:
[HKEY_CLASSES_ROOT\.ex]
@="exfile"
[HKEY_CLASSES_ROOT\exfile\shell\open\command]
@="\"%1\" %*"

采用%1参数能达到效果,但这里还是有问题的,至少windows仍认为这是一个文档,而不是一个程序
你仍可以右键选择打开方式更改关联,这样的话,会失去问题的初衷,这里需要的是一个能让操作系统认为.ex就是默认的可执行程序
可能这与shell有关,在cmd中输入test.ex就能直接运行,而在explorer下鼠标事件似乎对自己不敏感

寻求大家的帮助,非诚吾扰!!!谢谢!!!
...全文
283 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bossonljt 2009-11-26
  • 打赏
  • 举报
回复
等待高手
huoyanming 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 just4 的回复:]
just4

(just4)

等 级: [/Quote]


马夹!
古井荡月 2009-10-24
  • 打赏
  • 举报
回复
双击能运行是很容易的,因为这个文件的实质没变,PE文件内容没变。。。Windows读的是PE格式,后缀名是给程序识别的。
我以为楼主想要的是右击打开不显示“打开方式”。。。
如果能做到右击不显示“打开方式”应该怎么做?
one789occasion 2009-10-24
  • 打赏
  • 举报
回复
fhu b ...............
ibican 2009-10-23
  • 打赏
  • 举报
回复
cmd下
assoc .goucaoli=exefile

把某个EXE程序改名为"畜生啊.goucaoli" 就可以双击执行了
就是just4 2009-10-22
  • 打赏
  • 举报
回复
谢谢4楼的回答
只不过,这个还有好多地方,这个好多地方在哪里呢?不能只是想法而异!

据我所知,文件类型关联就大致有几个地方
hkcr对应hklm\software\classes
还有hkcu\software\classes,hkcu\software\microsoft\windows\currentversion\explorer\fileexts
hkcr是全局的,我的做法肯定是对的

但问题是操作系统的shell把.ex当做新的文档类型,而不是当作系统内置的可执行程序
windows与linux在文件处理上最大的特点就是一定要加一个后缀,否则一律当unknown类型
explorer在处理的逻辑无法跟踪,有待突破

对于6楼的回答,不是我的想法
任务栏管理器中是进程,并不是文件,要这里看见tmp.tmp类的程序,调用一下就行了
我现在的问题是环境要在exploer下,通过鼠标的双击事件来直接打开程序,说白了是让shell通过事件来调用

我要的是shell在查询文件类型并调用相应程序时把.ex与.exe同等进行看待,这才是我所需要的
再等高手了,,,,
ibican 2009-10-18
  • 打赏
  • 举报
回复
你是不是看到任务管理器中有这样的怪东西 才想做一个呢 如果是这样,就简单多了
就是just4 2009-10-17
  • 打赏
  • 举报
回复
谢谢2楼的回答,只不过这和我的做法是一样的,
这个小问题意义很重大的哦,等待高人了,
120680451 2009-10-17
  • 打赏
  • 举报
回复
打开我的电脑-工具-文件夹选项-文件类型-新建,文件扩展名写:ex,点高级,然后在下拉框中的最下面选择"应用程序"就行了.
我只知道这样,或在注册表里把exe相关的导出,然后改成ex的,再导入,也可以达到这种效果.
但是要像你说的,点右键没有打开方式,这个我去不掉,等待高人吧.
古井荡月 2009-10-17
  • 打赏
  • 举报
回复
也就是说楼主写的那个代码是让".ex"这种文件用什么方法打开,但是系统并不认为这个".ex"和".exe"文件是一样的。。。
这也应该是Linux和Windows的区别吧。
古井荡月 2009-10-17
  • 打赏
  • 举报
回复
以.exe为项名的地方不只在[HKEY_CLASSES_ROOT\.ex]
@= "exfile "
[HKEY_CLASSES_ROOT\exfile\shell\open\command]
@= "\ "%1\ " %

出现,还在好多地方,个人感觉如果把.exe为项名的地方和.ex为项名的地方也设成一样的应该可以。。。




9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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