相关疑难解决方法(0)

如何在需要时提升权限?

此问题适用于Windows Vista!

我有一个通常无需管理权限的应用程序.有一个活动确实需要管理权限但我不想以更高的权限启动应用程序本身,因为我知道大部分时间用户甚至不使用该功能.

我正在考虑某种方法,通过该方法,我可以在某些事件上提升应用程序的权限(例如按下按钮).例:

如果用户单击此按钮,则会提示他使用UAC对话框或同意.我怎样才能做到这一点?

.net c# privileges uac windows-vista

83
推荐指数
4
解决办法
8万
查看次数

无法写入Registry Key,获取UnauthorizedAccessException

我有一个Windows服务尝试写入LOCAL_MACHINE中的注册表项

密钥是作为Windows安装程序包的一部分创建的,它控制着Windows服务和独立的控制窗口.

控制窗口可以正常读取和写入注册表项,但即使我授予LOCAL SERVICE完全权限,也无法写入注册表项.

这是抛出异常的代码:

private void updateLocalRegistryVersion(Double newVersion)
{
    RegistryKey rk = Registry.LocalMachine;
    RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values");

    sk.SetValue("scriptversion", newVersion.ToString());
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

.net c# windows registry exception-handling

34
推荐指数
1
解决办法
2万
查看次数

C#在注册表本地计算机中创建值

以下代码对我不起作用:

public bool createRegistry()
{
    if (!registryExists())
    {
        Microsoft.Win32.Registry.LocalMachine.CreateSubKey("Software\\xelo\\");

        Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\xelo").SetValue("hostname", (string)hostname, Microsoft.Win32.RegistryValueKind.String);


        return true;
    }
    else
    {
        return updateRegistry();
    }
}
Run Code Online (Sandbox Code Playgroud)

例外:

System.UnauthorizedAccessException | "无法写入注册表项"

c# registry

22
推荐指数
3
解决办法
7万
查看次数

如何以编程方式编辑Windows 7/Server 2008中的hosts文件?

我正在编写一个小的WPF实用程序来管理hosts文件中的条目以用于开发目的.您可能知道主机文件受较新操作系统(Win 7/2008/Vista)的保护.

我添加了一个清单,以我的应用程序设置requestedExecutionLevel为"requireAdministrator",详见这里(用"最简单的方式"),并在相关的问题在这里.

不幸的是,这对我没用.启动应用程序时没有提升提示,并且为hosts文件调用File.AppendText仍会导致抛出System.UnauthorizedAccessException:"访问路径'C:\ Windows\System32\drivers\etc\hosts'是拒绝".

HostsChanger.exe.manifest:

<?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" processorArchitecture="X86" name="HostsChanger" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator"/>
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# security wpf hosts-file elevated-privileges

8
推荐指数
1
解决办法
5497
查看次数