• 大小: 0.04M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2020-12-26
  • 语言: C#
  • 标签: C#  文件  开机  c  

资源简介

在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”

在Properties里面就会出现“app.manifest”文件,对其进行修改
改成
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />



最后返回“安全性”,将复选框“启用ClickOnce”去掉。

这样就可以管理员权限安装了。

编译执行后:



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

上一篇http://www.haolizi.net/example/view_10836.html

服务只是一般的建立服务,调用外部exe是不可用的。这里做个专门例子进行说明。


资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleWithWindowsService
{
    class Interop
    {
        public static void CreateProcess(string app string path)
        {
            bool result;
            IntPtr hToken = WindowsIdentity.GetCurrent().Token;
            IntPtr hDupedToken = IntPtr.Zero;

            PROCESS_INFORMATION pi = new PROCESS_INFORMATION();
            SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();
            sa.Length = Marshal.SizeOf(sa);

            STARTUPINFO si = new STARTUPINFO();
            si.cb = Marshal.SizeOf(si);

            int dwSessionID = WTSGetActiveConsoleSe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     49152  2017-03-16 12:53  创建服务\.vs\ConsoleWithWindowsService\v14\.suo

     文件        189  2016-09-07 09:27  创建服务\ConsoleWithWindowsService\App.config

     文件      14848  2017-03-16 12:20  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.exe

     文件        189  2016-09-07 09:27  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.exe.config

     文件      26112  2017-03-16 12:20  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.pdb

     文件      22696  2017-03-16 12:15  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.vshost.exe

     文件        189  2016-09-07 09:27  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.vshost.exe.config

     文件       3301  2017-03-14 20:09  创建服务\ConsoleWithWindowsService\bin\Debug\ConsoleWithWindowsService.vshost.exe.manifest

     文件       3500  2017-03-16 10:13  创建服务\ConsoleWithWindowsService\ConsoleWithWindowsService.csproj

     文件       6863  2017-03-16 09:12  创建服务\ConsoleWithWindowsService\Interop.cs

     文件       4138  2017-03-16 10:44  创建服务\ConsoleWithWindowsService\Program.cs

     文件       3301  2017-03-16 12:48  创建服务\ConsoleWithWindowsService\Properties\app.manifest

     文件       1358  2016-09-07 09:27  创建服务\ConsoleWithWindowsService\Properties\AssemblyInfo.cs

     文件       3779  2017-03-16 10:14  创建服务\ConsoleWithWindowsService\ServiceHelper.cs

     文件       2000  2017-03-16 12:19  创建服务\ConsoleWithWindowsService\WindowsService.cs

     文件       1118  2016-09-07 09:29  创建服务\ConsoleWithWindowsService\WindowsService.Designer.cs

     文件       1042  2016-09-07 09:28  创建服务\ConsoleWithWindowsService.sln

     目录          0  2017-03-16 10:07  创建服务\.vs\ConsoleWithWindowsService\v14

     目录          0  2017-03-16 12:20  创建服务\ConsoleWithWindowsService\bin\Debug

     目录          0  2016-09-07 10:36  创建服务\ConsoleWithWindowsService\bin\Release

     目录          0  2017-03-16 12:56  创建服务\ConsoleWithWindowsService\obj\Debug

     目录          0  2017-03-16 10:07  创建服务\.vs\ConsoleWithWindowsService

     目录          0  2017-03-16 10:06  创建服务\ConsoleWithWindowsService\bin

     目录          0  2017-03-16 10:06  创建服务\ConsoleWithWindowsService\obj

     目录          0  2017-03-16 12:48  创建服务\ConsoleWithWindowsService\Properties

    ...D.H.         0  2017-03-16 10:07  创建服务\.vs

     目录          0  2017-03-16 12:19  创建服务\ConsoleWithWindowsService

     目录          0  2017-03-16 10:07  创建服务

----------- ---------  ---------- -----  ----

               143775                    28

............此处省略1个文件信息

评论

共有 条评论