如何将应用程序exe注册成服务,直接从后台运行

如何将应用程序exe注册成服务,直接从后台运行,第1张

方法一:使用windows自带的命令sc\x0d\x0a使用sccreate方法创建。\x0d\x0a如:sccreateCaptureScreenbinpath=F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmap.exetype=ownstart=autodisplayname=Screen_Capture\x0d\x0a其中CaptureScreen为服务名,可以在系统服务中找到,(通过在命令行运行services.msc打开系统服务)。binpath为你的应用程序所在的路径。displayname为服务显示的名称,这毁改个在注册表中可以找到,(通过在命令行中输入regedit打开注册表,在HKEY_LOCAL_MACHINE--SYSTEM--CurrentControlSet下找到你的服务显示名)\x0d\x0a注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切森段记。另外要以管理员的身份打开命令行。\x0d\x0a这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。下面我们讨论第二种方法\x0d\x0a方法二:在第一种方法失败的情况下,我们可以使用instsrv.exe和srvany.exe两个小工具为我们分忧解难\x0d\x0a我们可以在官网下载instsrv.exe和srvany.exe然后放到自己的文件夹中,可以将文件夹放入C盘。下面我们开始注册服务。\x0d\x0a已管理员的身份运行命令行,首先进纤春判入工具所在的文件夹,如:c:\tools。\x0d\x0a执行c:\toolsinstsrv.exeServerNamesrvany.exe\x0d\x0a这样我们就创建了一个名为ServerName的srvany的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表\x0d\x0a找到ServiceName这个服务,然后右键新建项,名称为Parameters。单击该项,然后在右边新建两个字符串值。第一个名为Application,值为:应用程序路径,如:c:\myApp.exe。第二个名为AppDirectory,值为:应用程序所在目录,如:c:\。\x0d\x0a接下来我们进入系统服务,找到ServiceName这个服务,双击进入它的属性。设置允许与桌面交互。然后启动服务。\x0d\x0a至此我们完成了将exe注册为服务的过程。\x0d\x0a下面我们分析一下:\x0d\x0ainstsrv.exe可以创建和删除服务,然而如果没有srvany.exe的参与,创建的服务可能无法启动。那么srvany.exe做了些什么呢,启动服务后我们可以在任务管理器中找到我们的服务,然后右击服务,选择转到进程,(如果进程中没有任何项被选中,则点击下面的显示所有用户进程,然后重新选择转至进程),我们看到的是srvany.exe,而不是我们自己的exe。原来我们的exe成为了它的一个子项,由srvany.exe帮助启动。

解决办法:需要使用Windows提供的两个工具instsrv.exe和srvany.exe。(Windows 2003资源工具包带有)instsrv:把win32程序变成系统服务。

srvany:将一个应用程序注册为一个服务。即注册一个系统服务,来启动要运行的应用程序。

基本用法:

instsrv [服务名] [应用程序绝对路径] (增加服务)

instsrv [服务名] REMOVE (删除服务)

instsrv [服务名] [srvany的绝对路径]

一、应用程序具有服务功能(能响应服务控制台的查哗猛询请求)

使用instsrv.exe,指令格式:instsrv [服务名] [应用程序路径]

执行完成后,在注册表项“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\模绝”中自乱码桥动增加项[服务名],并在其下成功添加各个键值:

要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe。

Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。这两个软件都包含在Windows NT Resource Kit里。

把这两个程序保存在一个方便的位置,例如C盘根目录下。

我们举例来说明,把OE作为一个服务添加进Windows XP Professional *** 作系统中,并把这个服务命名为“Mail”。

在运行中输入“CMD”,回车,打开命令行窗口,在提示符后面直接输入:“c:\instsrv.exe Mail c:\srvany.exe”然后回车,其中的“c:\instsrv.exe”和“c:\srvany.exe”表示这两个程序保存的位置,而Mail则是你想添加的服务名称。

运行Regedit打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下,找到刚才添加的Mail,点击右键,新建一个键,命名为“Parameters”,点击新建的Parameters,并再次新建一个名称为“Application”的子键,数据类型为“REG_SZ”,数值为希望作为服务运行的程序的所在位置,如果你的Windows系统安装在C盘下,那么OE的程序位置就是C:\Program Files\Outlook Express\msimn.exe ,把这个路径添入数值中。

到现在,这个服务已经成功的添加并且设置好了。察御顷如果你希望做的更加专业,可以在Mail服务下建拆知立一个名为Description的子键,数据类型同样为REG_SZ,数值可以写一些你对这个服务的描述,这个我们在后面可以看到。

接下来需要对服务做一些额外的设置,在运行中输入“Services.msc”并回车,在列表中找到我们刚添加的Mail服务,双击打开,来做详细的设置。

在“General”选项卡上,我们需要设置这个服务的运行方式,可以看见,作为一个服务,有“自动(Automatic)”,“手动(Manual)”和“禁止(Disabled)”三种启动类型,按照需要,我们一般设置成自动就可以了。而在“Logon”选项卡下可以设置以什么身份运行这个服务,一败陆般可以不用理会,按照默认的设置。“Recovery”选项卡下则是进行恢复设置的,你可以指定,在服务第一次,第二次和第三次出错之后分别采取什么措施。“Dependencies”则显示了服务之间的依存关系,可以让你察看这个服务的运行依赖哪些其它服务,以及还有什么服务依赖于这个服务。这后面几个对我们一般用户没有什么意义。经过这些设置,你的服务已经完全可以正常工作了。

注销一下看看。为了让你看清除,我们先打开OE,这时在任务管理器里,有两个msimn进程,用户名为“.com.cn”的是我们打开的OE,而用户名为“SYSTEM”的就是我们添加的服务。

如果你玩够了,不想再运行这个服务,可以直接禁止它在启动的时候运行,或者使用Instsrv.exe程序删除。方法是在命令行下输入“c:\instsrv.exe Mail remove”,然后回车就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12484277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存