public static SysServicesInstallCfg LoadSysServiceCfg(string filePath = "SysServicesInstallCfg.json") { var objStr = File.ReadAllText(filePath); SysServicesInstallCfg cfg = Newtonsoft.Json.JsonConvert.DeserializeObject <SysServicesInstallCfg>(objStr); return(cfg); }
public static bool UnInstall(SysServicesInstallCfg serviceCfg) { string unInstallStr = "delete " + serviceCfg.ServiceName + ""; Console.WriteLine(unInstallStr); Proxy scProxy = new Proxy("sc", unInstallStr, true); return(scProxy.Start()); }
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()); }
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()); }