请教一个非常邪门的问题System.Diagnostics.Process.Start 我用System.Diagnostics.Process.Start 开启一个程序,这个程序是读写注册表的。用C++写的。问题是当我通过这种方式并且看见其执行完成,但注册表内容没变,也没返回错误,而我单独去运行C++这个程序,也显示执行完成,但其注册表确实改变了。我想请问哪块出问题了。已经调用,并已经执行了,为什么注册表没有改变呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么系统。如果是win7是要有管理员权限的。 XP SP3, 问题是我直接运行c++的程序可以改,但用c#这个方法去调用,虽然c++程序正常运行,但注册表没有改。 你的System.Diagnostics.Process.Start是怎么调用的?asp.net?运行程序的账户有读写注册表权限吗 应该有权限,在admin下运行的。我的程序是VS2008的安装与部署,做的安装包,里边调用到这个小程序。并且是直接 process.start("file")的 新建appmanifest文件提升权限吧 不会是奇葩的64位xp吧?如果真的奇葩了,那得去一个wow...什么的下面去找。 因为有可能你的程序是32位执行的。 vs2008安装与部署 --生成的安装包,安装后执行了这句代码 System.Diagnostics.Process regProgram = System.Diagnostics.Process.Start("RegProgram.exe");regProgram.WaitForExit();regProgram.Close();在安装程序里就调用 了这个代码, 而这个程序也启动并执行成功了,但是就是没写进注册表。要是单独执行就成写进这会有没有人帮我。。 Process p = new Process();p.StartInfo = new ProcessStartInfo() { FileName = fileName, Arguments = arguments, UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = false, WindowStyle = ProcessWindowStyle.Normal };p.Start();output = p.StandardOutput.ReadToEnd();error = p.StandardError.ReadToEnd(); //打印出来看看p.WaitForExit(); 显示写注册表成功,这是那个小程序打印的字串,error打印出来 为空 我看了一下,我程序写的是 hkey_current_user、,但它确写进了 hkey_users\.default 下边去了,有没有人知道怎么回事 基础问题:winform的模式窗口 有个封装字段的小问题求助下 一个关于协同工作密码如何存储的问题 数据连接池超时现象,请大家帮帮忙 小菜鸟的问题[谢谢每一位回答的朋友] gridview中checkbox选中后显示为灰色,刷新后又消失。 急!!c#安装制作问题(应用程序快捷方式) C#如何操作MYSQL Windows 服务 大家快来帮帮我呢 编辑器保存出现的问题 windows 2008 r2 负载平衡问题---------------------------------socket 文件怎么样直接读取指定几行到几行的内容
并且是直接 process.start("file")的
如果真的奇葩了,那得去一个wow...什么的下面去找。 因为有可能你的程序是32位执行的。
在安装程序里就调用 了这个代码, 而这个程序也启动并执行成功了,但是就是没写进注册表。要是单独执行就成写进
这会有没有人帮我。。
p.StartInfo = new ProcessStartInfo()
{
FileName = fileName,
Arguments = arguments,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Normal
};
p.Start();
output = p.StandardOutput.ReadToEnd();
error = p.StandardError.ReadToEnd(); //打印出来看看
p.WaitForExit();