求解,怎么样在winform中注册、启动、停止用c#写的windows服务

jimmy-yu 2008-07-05 11:05:00
我想在winform中实现修改windows服务的配置文件(比如我将时间及数据库链接的配置写在app.config中,在winform中动态加载这个config,然后修改其中的节点),修改完成后再注册这个服务程序,同时提供两个按钮作为启动或停止,以用来启动或停止这个服务,这个应该怎么实现啊,哪位高手能帮帮我啊!提前先谢谢了!
...全文
291 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
活靶子哥哥 2008-07-05
  • 打赏
  • 举报
回复
Install
注册服务和卸载服务可以用Process调用如下命令

%windir%\Microsoft.NET\Framework\v2.0.50727\installutil /i YourServiceExe.exe
net start "You Service Name"

UnInstall
%windir%\Microsoft.NET\Framework\v2.0.50727\installutil /u YourServiceExe.exe


see also http://msdn.microsoft.com/zh-cn/architecture/50614e95.aspx

System.ServiceProcess.ServiceController sc = new
System.ServiceProcess.ServiceController("Your Service Name");
sc.Start//启动
sc.Stop()//停止;
sc.Pause()//暂停
sc.Continue()//继续

see alse http://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicecontroller_methods.aspx
tianhuo_soft 2008-07-05
  • 打赏
  • 举报
回复
winform 里面不是有一个专门制作服务的功能嘛
用那个多好啊 ~!

wwshiwojiaguaiguai 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzyhuian06142 的回复:]
用Process类啊
设置他的StartInfo.Arguments
[/Quote]
jimmy-yu 2008-07-05
  • 打赏
  • 举报
回复
同时再请教下,怎么样把windows服务和winform一起打包成安装文件
xminsong 2008-07-05
  • 打赏
  • 举报
回复
资料来自网上,希望对你有用

static void Main(string[] args)
{
if (args.Length == 0)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new Service1() };
ServiceBase.Run(ServicesToRun);
}
else if (args[0].ToLower() == "-i")
{
InstallService();
}

//如参数为"-u",删除服务
else if (args[0].ToLower() == "-u")
{
UnInstallService();
}
}

//安培服务
string[] commandLine = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
AssemblyInstaller aAssemblyInstaller = new AssemblyInstaller(serviceFileName, commandLine);
TransactedInstaller aTransactedInstaller = new TransactedInstaller();
aTransactedInstaller.Installers.Add(aAssemblyInstaller);
aTransactedInstaller.Install(new System.Collections.Hashtable());

//删除服务
string[] commandLine = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
AssemblyInstaller aAssemblyInstaller = new AssemblyInstaller(serviceFileName, commandLine);
TransactedInstaller aTransactedInstaller = new TransactedInstaller();
aTransactedInstaller.Installers.Add(aAssemblyInstaller);
aTransactedInstaller.Uninstall(null);
jimmy-yu 2008-07-05
  • 打赏
  • 举报
回复
能给个具体的例子吗
或者稍微详细点的代码
谢谢
zzyhuian06142 2008-07-05
  • 打赏
  • 举报
回复
用Process类啊
设置他的StartInfo.Arguments
jimmy-yu 2008-07-05
  • 打赏
  • 举报
回复
在vs命令行注册我知道,但是不知道在winform怎么注册,比如说放一个按钮,然后在按钮里写一个事件就可以完成注册这样
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 在地理信息系统(GIS)领域中,数据往往以多种不同的格式存储,例如矢量数据(如shapefile、shp格式)和栅格数据(raster格式)。ArcMap是由Esri公司开发的桌面GIS软件,它被广泛用于处理和分析地理空间数据。在某些特定场景下,需要将矢量数据转化为栅格数据,比如在进行土地覆盖分类、执行缓冲区分析或进行制图工作时。本文将详细阐述如何借助ArcMap将shp文件转换为二值栅格图。 1. **从矢量到栅格的转换**: - 启动ArcMap,并导入需要转换的.shp文件。务必保证工作空间设置得当,最好是同一个项目中既包含.shp文件也包含最终所需的栅格文件。 - 在ArcToolbox中寻找到“转换工具”> “矢量到栅格”工具。在工具参数设置中,需要填入以下信息: - 输入要素:选择刚才导入的.shp文件。 - 字段:如果.shp文件具有特定的属性字段需要用作栅格值,可以在此处指定。若无特殊需求,通常选择FID(Feature ID)。 - 输出栅格:设定输出文件名,并以.tif作为后缀,这是常见的栅格文件格式。 - 输出像元大小:可以选择与源.shp文件保持相同的比例,或根据实际需求自定义分辨率。 2. **重分类并转化为二值栅格**: - 完成矢量到栅格的转换后,需要进一步处理得到的.tif文件,将其转化为二值栅格。在ArcToolbox中,寻找到“栅格处理”> “栅格函数”> “重分类”工具。 - 输入栅格:选择上一步生成的.tif文件。 - 创建新的重分类表:在此处需要定义分类规则。由于目标为二值栅格,因此只有一个类别,通常设置为1。在“旧值”列输入1,“新...

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧