C# 要使用Win7修改程序文件下的文件吗
我有一个小的C程序来修改位于C# 要使用Win7修改程序文件下的文件吗,c#,.net,scripting,windows-7,batch-file,C#,.net,Scripting,Windows 7,Batch File,我有一个小的C程序来修改位于程序文件下的xml文件。这台机器是一台windows7机器。这个小程序是由一个批处理文件(称为a.bat)启动的,因为我想向它传递一个参数 我有一个主批处理文件(名为M.bat),它是起点。M.bat将启动安装程序并等待安装完成。然后M.bat将启动A.bat,它将启动带有参数的小程序 现在我得到了以下例外情况: System.UnauthorizedAccessException: Access to the path 'C:\Program Files\MyTes
程序文件
下的xml文件。这台机器是一台windows7
机器。这个小程序是由一个批处理文件(称为a.bat
)启动的,因为我想向它传递一个参数
我有一个主批处理文件(名为M.bat
),它是起点。M.bat
将启动安装程序并等待安装完成。然后M.bat
将启动A.bat
,它将启动带有参数的小程序
现在我得到了以下例外情况:
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\MyTest\Test.config' is denied.
我知道这是由于Win7中更严格的安全性造成的。它在XP下运行良好
我不能使用“以管理员身份运行”来启动M.bat
或手动使用“以管理员身份运行”来启动A.bat
,因为两者都将报告找不到目标可执行文件(因为启动位置实际上不是“当前”位置)
有没有办法在批处理文件中以管理员身份启动可执行文件?或者在C#程序中我可以给自己管理员权限
或者…您需要通过UAC提示提升您的权限。将清单添加到您的程序中,如中所述。不是以用户看不见/隐藏的方式。。。我建议找到一种方法使它在以管理员身份运行时工作。或者您可以设置应用程序清单(请参见:)以管理员身份运行您的应用程序,这样也可以
总之,除非您以管理员身份运行,或者除非您的用户关闭UAC(这一点不推荐),否则您不能以管理员权限运行。您应该在程序启动时请求管理员权限。看我真的不知道你在问什么。未经用户许可,应用程序或批处理文件都不能将其权限提升到管理员。你已经知道这就是问题所在。如果您试图修复代码中阻止您使用“以管理员身份运行”的错误,即不使用特定的开始位置,您会不会更好?