找传奇、传世资源到传世资源站!

c#创建开机自启服调用外部交互式exe文件

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

在c#创建的开机自启动服务里,调用外部可执行文件有以下问题:
1、带窗口的交互式的exe文件调用后,实际并没有被执行;
2、服务是随windows启动的,服务启动后可能windows桌面还没出来,会报错误,导致程序无法执行;
3、安装服务需管理员权限
等问题。
本例针对上面的一些问题进行解决:
1、调用带窗口的交互式的exe文件,参见Interop.cs文件,
在服务调用问文件WindowsService.cs里面这样引用
Interop.CreateProcess(@"d:\getp.exe", @"C:\Windows\System32\"); //执行
这里的exe可以是任意的。
2、在服务里建了个线程,延时执行exe文件,避免了第2个问题,同时循环执行,很多软件的服务不断弹出新闻广告就这这样子。
3、管理员权限问题:
在项目上点右键选“属性”,选择“安全性”,勾选复选框“启用ClickOnce”
c#创建开机自启服调用外部交互式exe文件 Windows系统编程-第1张
在Properties里面就会出现“app.manifest”文件,对其进行修改
改成
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

c#创建开机自启服调用外部交互式exe文件 Windows系统编程-第2张
最后返回“安全性”,将复选框“启用ClickOnce”去掉。
这样就可以管理员权限安装了。编译执行后:c#创建开机自启服调用外部交互式exe文件 Windows系统编程-第3张

本例安装进程名为“我的数据服务”,每隔200秒执行getp.exe文件。
运行时可选择“1”进行安装,“3”进行卸载,安装完毕后在服务里可以看到“我的数据服务”项目。

上一篇https://www.5t6t.com/example/view_10836.html服务只是一般的建立服务,调用外部exe是不可用的。这里做个专门例子进行说明。

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复