コード例 #1
0
        public static SysServicesInstallCfg LoadSysServiceCfg(string filePath = "SysServicesInstallCfg.json")
        {
            var objStr = File.ReadAllText(filePath);
            SysServicesInstallCfg cfg = Newtonsoft.Json.JsonConvert.DeserializeObject <SysServicesInstallCfg>(objStr);

            return(cfg);
        }
コード例 #2
0
        public static bool UnInstall(SysServicesInstallCfg serviceCfg)
        {
            string unInstallStr = "delete " + serviceCfg.ServiceName + "";

            Console.WriteLine(unInstallStr);
            Proxy scProxy = new Proxy("sc", unInstallStr, true);

            return(scProxy.Start());
        }
コード例 #3
0
        public static bool InstallConsoleService(SysServicesInstallCfg serviceCfg)
        {
            var exePath         = Path.Combine(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), serviceCfg.ExeFileName);
            var serviceProxyCfg = serviceCfg.Clone();

            serviceProxyCfg.ExeFileName = "serviceProxy.exe";
            var installProxyServiceStatus = Install(serviceProxyCfg);
            //            reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v Application /t REG_SZ /d "这里填入你要作为服务运行的程序地址比如c:\xxx.exe" /f
            //reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v AppParameters /t REG_SZ /d "如果程序需要参数则填在这里,如果不需要,清空这段文字或者整行" /f
            //reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v Application /t REG_SZ /d "这里填入程序运行时所在文件夹(作为环境变量),如果不填,则清除这段内容或者直接删除本行" /f
            var reg1 = string.Format(@" add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{0}\Parameters /v Application /t REG_SZ /d {1} /f", serviceCfg.ServiceName, "\"" + exePath + "\"");

            File.AppendAllText("Dynamic.Windows.SySServices.log", reg1);
            Proxy regProxy = new Proxy("reg", reg1, true);

            return(installProxyServiceStatus && regProxy.Start());
        }
コード例 #4
0
        public static bool Install(SysServicesInstallCfg serviceCfg)
        {
            var path = Path.Combine(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), serviceCfg.ExeFileName);

            if (!File.Exists(path))
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("{0}路径无法识别,按任意键结束!", path);
                Console.ReadLine();
                return(false);
            }
            //path = path + " s";
            string installStr   = string.Format("create {0} binpath= \"{1}\" DisplayName= \"{2}\" start= auto", serviceCfg.ServiceName, path, serviceCfg.DisplayName);
            string updateDesStr = string.Format("description {0} \"{1}\" ", serviceCfg.ServiceName, serviceCfg.Description);

            File.AppendAllText("Dynamic.Windows.SySServices.log", installStr);
            Proxy scProxy       = new Proxy("sc", installStr, true);
            Proxy scProxyUpdate = new Proxy("sc", updateDesStr, true);

            return(scProxy.Start() & scProxyUpdate.Start());
        }