【问题标题】:C# WinForms running only in administration user仅在管理用户中运行的 C# WinForms
【发布时间】:2014-03-05 09:33:55
【问题描述】:

我正在使用VS2008 创建winforms。我制作的每个程序似乎都只为管理员用户运行。 如果用户不是管理员程序无法启动。 我敢打赌这是Visual Studio 中的一个发布选项,但还没有找到。

        string r, w;
        List<string> tags = new List<string>();
        private ContextMenuStrip contextMenuStrip1;
        StreamWriter sr=new StreamWriter(@"C:\\System\\out.txt",true);        
        private System.ComponentModel.BackgroundWorker backgroundWorker1 = new BackgroundWorker();           

        System.Threading.Timer ClipboardUnload;
        public Form1()
        {            
            InitializeComponent();                             
            backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
            ClipboardUnload = new System.Threading.Timer(new TimerCallback(ClipboardUnload_Tick), null, 0, Properties.Settings.Default.Persist);
        }

清单:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

【问题讨论】:

  • 需要更多信息,例如程序的功能和调用的类型等?
  • 没有这样的发布选项。您可能已将某些内容复制到清单文件中,使应用程序需要提升权限,但您必须为每个项目单独执行此操作。此外,您还没有说明“似乎正在运行”的含义 - 它是显示 UAC 提示还是只是为了执行您想要的操作并由于缺少权限而产生异常?
  • 您尝试运行的用户是否有权访问C:\System 文件夹?再说一遍:程序是否无法写入任何内容或是否显示 UAC 提示符?
  • UAC 已禁用。该程序只是失败..
  • 那有什么例外呢?用户是否拥有C:\System 的写入权限?实际引发错误的代码是什么?

标签: c# winforms visual-studio-2008


【解决方案1】:

如果程序正在 C:\system 目录中写入内容,则运行该程序的用户将需要对该文件夹的写入权限。

【讨论】:

  • 您可能想要更改您的答案,以便它反映问题的最新编辑和问题的 cmets,因为我建议 OP 接受它。
  • @ThorstenDittmar 完成。我怀疑是这种情况。当我们从每个人都拥有管理员权限的 XP 迁移时,我们在使用旧软件时经常遇到这个问题。
  • 然而,这并不是我的意思 :-) C:\System 似乎是海报制作的文件夹,所以你不能假设需要管理员权限。您应该写道,尝试写入 C:\System 的用户帐户将需要相应的写入权限。
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 2020-05-05
相关资源
最近更新 更多