相关疑难解决方法(0)

在Windows窗体应用程序中保存应用程序设置的最佳实践

我想要实现的非常简单:我有一个Windows窗体(.NET 3.5)应用程序,它使用一个路径来读取信息.用户可以使用我提供的选项表单修改此路径.

现在,我想将路径值保存到文件中供以后使用.这将是保存到此文件的众多设置之一.该文件将直接位于应用程序文件夹中.

我理解有三种选择:

  • ConfigurationSettings文件(appname.exe.config)
  • 注册处
  • 自定义XML文件

我读到.NET配置文件没有预见到将值保存回来.至于注册表,我想尽可能远离它.

这是否意味着我应该使用自定义XML文件来保存配置设置?如果是这样,我希望看到代码示例(C#).

我已经看过关于这个问题的其他讨论,但我仍然不清楚.

c# xml configuration-files application-settings winforms

561
推荐指数
11
解决办法
43万
查看次数

LINQPad [扩展]方法

有没有人有完整的LINQPad扩展方法和方法列表,例如

.Dump()

SubmitChanges()
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework linqpad linq-to-sql

133
推荐指数
3
解决办法
4万
查看次数

Registry.GetValue始终返回null

我的注册表中有以下密钥:

在:HKEY_LOCAL_MACHINE\SOFTWARE\RSA我有值对象调用 - WebExControlManagerPath它的值是c:\

我想这样做:

var r = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\RSA", "WebExControlManagerPth",null);

if(r!=null)
    ProcessAsUser.Launch(ToString());
Run Code Online (Sandbox Code Playgroud)

r价值总是空的.

在此输入图像描述

有任何想法吗?

c# registry

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

如果需要"命名实例"参数,如何连接到SQL Server的默认实例?

我正在安装一些软件,我需要告诉它使用SQL Server的默认实例,但是Installshield GUI坚持要输入命名实例的信息.

目标SQL Server是版本2008R2

我希望有一个干净的黑客,我可以使用,如"." 或"默认",但我还没有猜到.我也尝试过MSSQLSERVER,但这也没用.

sql-server-express sql-server-2008

12
推荐指数
2
解决办法
4万
查看次数

检查应用程序是否安装在注册表中

现在我使用它来列出注册表中列出的32bit和64的所有应用程序.我已经看到了如何检查应用程序是否安装没有任何运气的其他示例.

string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey);
if (key != null)
{
    foreach (String a in key.GetSubKeyNames())
    {
        RegistryKey subkey = key.OpenSubKey(a);
        Console.WriteLine(subkey.GetValue("DisplayName"));
    }
}

registryKey = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall";
key = Registry.LocalMachine.OpenSubKey(registryKey);
if (key != null)
{
    foreach (String a in key.GetSubKeyNames())
    {
        RegistryKey subkey = key.OpenSubKey(a);
        Console.WriteLine(subkey.GetValue("DisplayName"));
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,这个片段在控制台窗口中列出了所有内容,我想要做的就是从显示名称列表中找到一个程序标题,看它是否已安装.

我尝试的最后一件事是

if (subkey.Name.Contains("OpenSSL"))
    Console.Writeline("OpenSSL Found");
else
    Console.Writeline("OpenSSL Not Found");
Run Code Online (Sandbox Code Playgroud)

我试过的任何东西都是假的或假的.有没有人可以告诉我如何从列表中获取一个标题?

请不要发布众所周知的私有静态void IsApplicationInstalled(p_name)函数.它对我来说根本不起作用.

c c# windows registry

12
推荐指数
3
解决办法
2万
查看次数

无法在HKEY_LOCAL_MACHINE\Software下写入注册表

我正在编写一个应用程序,需要创建一个隐藏在登录屏幕和控制面板用户小程序中的特殊用户帐户.通过DWORD使用用户名将值0 写入下面的注册表项,我可以实现此目标:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList

问题是在Windows 7上使用UAC,无论我尝试什么,我都无法以编程方式将值写入上面的键.

我的理解是,除非您使用管理权限运行,否则在启用UAC的Windows 7上不允许写入某些键.我添加了一个应用程序清单requestedExecutionLevel level="requireAdministrator" uiAccess="false",我在程序运行时接受UAC提示,我的帐户是管理员的成员,但我仍然无法写入上述注册表项.

我还需要做什么?在任何应用程序配置中,如何在键下写入键和值HKEY_LOCAL_MACHINE\SOFTWARE

更多信息......当我的程序运行时,不会抛出任何错误,它似乎写入值.我的猜测是Windows正在虚拟化我正在编写的位置.如果我要隐藏这个特殊用户帐户,我需要写入实际位置,而不是虚拟位置.

c# registry winapi uac

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