C# 要使用Win7修改程序文件下的文件吗

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

我有一个小的C程序来修改位于
程序文件
下的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(这一点不推荐),否则您不能以管理员权限运行。

您应该在程序启动时请求管理员权限。看

我真的不知道你在问什么。未经用户许可,应用程序或批处理文件都不能将其权限提升到管理员。你已经知道这就是问题所在。如果您试图修复代码中阻止您使用“以管理员身份运行”的错误,即不使用特定的开始位置,您会不会更好?