在64位windows下使用instsrv.exe和srvany.exe创建windows服务
2012-12-25 09:16
288 查看
在64位windows下使用instsrv.exe和srvany.exe创建windows服务
在32位的windows下,包括windows7,windows xp以及windows 2003,都可以使用instsrv.exe和srvany.exe来创建自定义的windows服务。比如,我们有一个bat文件,用于将指定的程序作为服务进行启动,使用一般的工具都不可以进行此类工作,而使用由windows 2003的资源工具包windows toolkit中所带的instsrv就可以。详细的用法这里就不再具体叙述,简单一点就是使用instsrv将相应的srvany注册成服务,然后在注册表中增加相应的Application和AppDirectory参数,用于srvany启动我们所相应的服务。如下列代码所示://将相应程序生成成服务
最终的原因在于,我们所使用的instsrv和srvany是32位的,而windows现在没有相对应的64位相对应工具发布。而程序本身是没有问题的,问题在于我们将instsrv和Srvany放到windows/system32正面,而在64位系统中,这里应该存放64位的程序,所以最终的解决问题很简单。我们只需要将这两个程序再copy至32位程序应该放置的地方,比如windows/sysWow64目录,这样就可以了。原先的相应步骤以及程序根本就不需要作任何改动。instsrv会自动地找到原先应该放在system32下的程序,而这个程序现在被放置在了SysWow64目录下。
简单一点的解决方法就是,将instsrv和srvany程序在windows/sysWow64目录下再copy一份,相当于在system32和sysWow64下都有程序,这样问题即解决。更底层的原因,也许只有微软能解释了,简而言之,在64位系统下,32位程序是看不到放置在system32下面的程序的,而它应该访问的system32目录被系统映射到了sysWow64目录下了,在运行时系统会自动地将相应的sysWow64目录映射为程序所认为的system32。
参考文档:http://en.wikipedia.org/wiki/WoW64
转载请标明出处:i flym
本文地址:http://www.iflym.com/index.php/computer-use/201205020001.html
相关文章推荐
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务[转]
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- 【转】在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- 使用instsrv.exe和srvany.exe创建windows服务
- 使用instsrv.exe+srvany.exe将应用程序安装为windows服务[转]
- 使用instsrv.exe+srvany.exe将应用程序安装为windows服务的方法
- 使用instsrv.exe和srvany.exe将应用程序安装成windows后台服务
- 使用instsrv.exe+srvany.exe将应用程序安装为windows服务
- Windows创建用户定义的服务(srvany.exe和instsrv.exe )
- Instsrv.exe和Srvany.exe的使用方法
- C#使用定时任务框架Windows.TaskSchedule.exe安装控制台应用程序创建的Windows服务
- Instsrv.exe和Srvany.exe的使用方法
- 利用instsrv.exe与srvany.exe将批处理文件注册成windows服务
- windows服务创建工具srvany.exe介绍
- instsrv.exe——来自Windows 2000 Resource Kits的一个小工具
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- instsrv.exe下载和使用方法(添加删除系统服务工具)
- instsrv.exe srvany.exe用法