安装程序在C:\Program Files下创建目录时对路径的访问被拒绝 我在写一个安装程序,其中有一步是在C:\Program Files下创建安装目录QMS,但是提示对C:\Program Files\QMS的访问被拒绝。我用的是C#,也知道这是关于权限的一个问题,如果我用右击生成的安装程序,选择以管理员权限运行,这一步没问题,但是工直接双击生成的安装程序,这一步就会报错。我想知道的是怎么在程序中去自动申请权限,而必免直接报错。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一楼加manifest是一个方法,我试过可以,不过,我想在程序中来处理,不知道有没有相关的资料或方法? 操作系统权限的问题,右键属性-安全-编辑,这时就可以添加用户和权限了,最简单的方法是添加EveryOne用户,权限设置为“完全控制”,但是这样会有安全风险,你可以根据你的需要来设置权限 http://www.cnblogs.com/rootkits/articles/1881101.htmlhttp://topic.csdn.net/u/20070730/21/38cc1c8b-3941-4aba-a65a-e20dfe47ebfd.htmlhttp://www.cnblogs.com/luluping/archive/2010/08/27/1809889.htmlhttp://hi.baidu.com/snyl/blog/item/d63780448286114e510ffee1.html参考不知道能不能帮上忙 DirectoryInfo info = new DirectoryInfo(@"C:\Program Files"); if (!info.Exists) { try { // 对路径的访问被拒绝 info.Create(); info.Delete(); } catch (Exception e) { string msg = e.Message; } }补充一下,看了上面各位达人的解答,可以是问题还没有解决,我的情况如上面的代码中描述的,在info.Create时访问被拒绝,但是如果以管理员启动应用程序就不会出现,我想找到用代码去解决这个问题,比如代码实现提示用户提升权限,就像右击以管理员启动时的提示一样,望解答? DirectoryInfo info = new DirectoryInfo(@"C:\Program Files\QMS"); if (!info.Exists) { try { // 对路径的访问被拒绝 info.Create(); info.Delete(); } catch (Exception e) { string msg = e.Message; } }上面丢了几个字符。补充一下,看了上面各位达人的解答,可是问题还没有解决,我的情况如上面的代码中描述的,在info.Create时访问被拒绝,但是如果以管理员启动应用程序就不会出现,我想找到用代码去解决这个问题,比如代码实现提示用户提升权限,就像右击以管理员启动时的提示一样,望解答? http://msdn.microsoft.com/zh-cn/library/z17ceyya(VS.90).aspx看这里 谢谢9楼,不过,恕我愚钝。我想在程序中实现在要求提升权限进行操作时,系统会提示用户提升权限。如果用manifest清单,则会在一打开程序时就会提示提升权限。 不要想在程序中处理了,你办不到的,实际的情况是程序没办法预料的到的,比如操作系统不同,处理方式不同,同时windows系统,winxp和win7的处理权限管理也不同,更别说不同的操作系统了,而且还可能有杀毒软件及防火墙的控制,如果你要改这些系统信息,改注册表,防火墙会阻止,你怎么处理?假如碰到不同的防火墙,你又怎么处理,换个思路,这不是程序要做的事情,懂不?程序应该关注的是完成业务逻辑,像这种情况就要靠实施人员去做了,像大型的erp项目,实施也占很大的工作量的,很大配置是不能通过程序去自动实现的。你要去给软件创造环境,去让它运行,而不是软件让软件自己去创造环境,何况很很多情况下这都是软件不能完成的任务。 AdjustTokenPrivilegesdllimport下,这种只能用API来实现了 更改Form窗体的默认字体如何实现? C#中windows窗体应用程序连接ACCESS 求解C#调用ORACLE(带有输入输出参数)过程中的错误 命名空间问题 求数组中元素的个数 c# 如何获取dvd章节及字幕信息? 一个模糊查询的问题 activex 下载后安装后不能正常使用,急! 请问如何获得驱动器的类型等信息(用C#) c# 字符串解析 成键值类 然后再操作 生成字符串 关于Winfrom中嵌入Adobe PDF Reader COM组件,显示PDF的问题 BeginInvoke异步时,不是创建了一个线程吗?为什么会卡住?
http://topic.csdn.net/u/20070730/21/38cc1c8b-3941-4aba-a65a-e20dfe47ebfd.html
http://www.cnblogs.com/luluping/archive/2010/08/27/1809889.html
http://hi.baidu.com/snyl/blog/item/d63780448286114e510ffee1.html
参考不知道能不能帮上忙
DirectoryInfo info = new DirectoryInfo(@"C:\Program Files"); if (!info.Exists)
{
try
{
// 对路径的访问被拒绝
info.Create();
info.Delete(); } catch (Exception e)
{
string msg = e.Message;
}
}补充一下,看了上面各位达人的解答,可以是问题还没有解决,我的情况如上面的代码中描述的,在info.Create时访问被拒绝,但是如果以管理员启动应用程序就不会出现,我想找到用代码去解决这个问题,比如代码实现提示用户提升权限,就像右击以管理员启动时的提示一样,望解答?
DirectoryInfo info = new DirectoryInfo(@"C:\Program Files\QMS"); if (!info.Exists)
{
try
{
// 对路径的访问被拒绝
info.Create();
info.Delete(); } catch (Exception e)
{
string msg = e.Message;
}
}上面丢了几个字符。
补充一下,看了上面各位达人的解答,可是问题还没有解决,我的情况如上面的代码中描述的,在info.Create时访问被拒绝,但是如果以管理员启动应用程序就不会出现,我想找到用代码去解决这个问题,比如代码实现提示用户提升权限,就像右击以管理员启动时的提示一样,望解答?
我想在程序中实现在要求提升权限进行操作时,系统会提示用户提升权限。如果用manifest清单,则会在一打开程序时就会提示提升权限。
dllimport下,这种只能用API来实现了