草庐IT

make-vista-launch-uac-restricted-

全部标签

c# - 在 C# 中为 Windows Vista/7 显示身份验证对话框

我想从用户那里获取网络登录凭据。我正在使用.NET3.5和C#。到目前为止,我使用的是CredUIPromptForCredentials调用(可以找到关于如何使用它的非常有用的链接here)我的问题是CredUIPromptForCredentialsAPI调用显示旧的windows2000/XP凭据对话框而不是新的Vista/7。我在msdn上读到我应该使用CredUIPromptForWindowsCredentials功能。有人可以发布一个如何在C#中使用它的示例吗?我还需要能够获取输入的凭据。 最佳答案 我设法实现了一个适

c# - HttpWebRequest.GetRequestStream() 在 Windows 7/Vista 下因 SSL 连接超时而中断

我有一个C#Windows应用程序(.Net3.0Framework),它使用HttpWebRequest调用PHPWeb服务。在Win7&Vista中,如果调用是通过非SSL(即http://)进行的,则代码可以正常工作。当调用更改为调用链接的SSL(https:)版本时,它会在HttpWebRequest.GetRequestStream()处超时。每次都会发生这种情况。当同一应用程序在WindowsXP机器上运行时,它可以很好地处理所使用的HTTP或HTTPSurl。该代码中确实包含接受所有服务器证书的代码。另外,我添加了System.Netlogging.它会写出日志,但是因为

c# - 在 Windows 7 和 Vista 中存储应用程序数据的位置

我的应用程序需要像大多数应用程序一样存储数据。该应用程序以前仅在XP上使用,它会将数据存储在ProgramFiles中。现在我们的客户正在迁移到Windows7,我必须对其进行升级,以便将数据存储在一个新文件夹中。我选择了ApplicationData文件夹,因为我认为我根本不需要UAC就可以访问。现在在一些Windows7机器上这很好,但在其他机器上访问文件夹失败,可能是因为权限,但当以管理员权限运行时程序运行正常。我使用了错误的文件夹还是这些情况异常?无论哪种情况,这种事情的最佳做法是什么?我正在使用以下C#SpecialFolder获取AppData文件夹位置。System.En

c# - 为应用程序提供提升的 UAC

我有一个需要UAC提升的应用程序。我有允许我提供的代码,但应用程序打开了两次,这是一个问题。这是Form1的代码:publicForm1(){InitializeComponent();WindowsPrincipalpricipal=newWindowsPrincipal(WindowsIdentity.GetCurrent());boolhasAdministrativeRight=pricipal.IsInRole(WindowsBuiltInRole.Administrator);if(!hasAdministrativeRight){ProcessStartInfostart

用make_shared防止复制构建

我有一个经理类,允许客户端通过两种方法添加组件:一个没有参数,即默认构造组件,而另一个则采用了rvalue(应允许客户端使用组件的自定义构造函数)。这是我想到的代码:templatestd::shared_ptrAddComponent(){returnAddComponent(TComponent{this});}templatestd::shared_ptrAddComponent(constTComponent&&obj){autoptr=std::make_shared(obj);vec.push_back(ptr);returnptr;}我的问题是std::make_shared始终

c# - Debugger.Launch 不工作

我目前正在尝试为在外部(而不是从visualstudio中)启动的进程启动调试器。我似乎无法真正启动调试器,因为它似乎什么也没发生。在此过程中,我添加了这段代码:Debug.Assert(Debugger.IsAttached==false,"Shouldbenodebugger");if(!Debugger.IsAttached){Debug.Assert(Debugger.Launch(),"Debuggernotlaunched");}Debugger.Break();Debug.Assert(Debugger.IsAttached==true,"Debuggershouldbe

c# - 当 UAC 被拒绝时,Process.Start 永远不会返回

我有一个更新程序exe,用于关闭主exe,用更新的exe替换它,然后启动更新的exe。当更新程序尝试启动更新的exe时,如果UAC权限对话框被用户拒绝,更新程序将挂起。这是因为Process.Start()函数永远不会返回。顺便说一下,我的CPU周期表显示几乎没有使用。我希望我所有的用户都对UAC说"is",但既然我在这里,我想至少用某种错误消息来处理这种情况。假设我的用户至少拥有Windows7。exe本身是32位Winforms应用程序。目标.NetFramework是4.0。使用VisualStudio2010Ultimate。关于如何检测我的用户何时拒绝UAC对话框的任何想法?

c# - 如何摆脱 "API restriction UnitTestFramework.dll already loaded"错误?

不时弹出以下错误:C:\ProgramFiles\MSBuild\Microsoft\VisualStudio\v9.0\TeamTest\Microsoft.TeamTest.targets(14,5):错误:API限制:程序集'file:///C:\ProgramFiles\MicrosoftVisualStudio9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll'已从其他位置加载。它不能从同一应用程序域内的新位置加载。我该如何摆脱它?

c# - 协变/逆变 : how to make the following code compile

更新:以下代码仅在C#4.0(VisualStudio2010)中有意义看来我对协变/逆变有一些误解。谁能告诉我为什么以下代码无法编译?publicclassTestOne{publicIEnumerableMethod(IEnumerablevalues)whereTDerived:TBase{returnvalues;}}编译时:(!!!)publicinterfaceIBase{}publicinterfaceIDerived:IBase{}publicclassTestTwo{publicIEnumerableMethod(IEnumerablevalues){returnva

c# - Visual Studio 中的 "Add existing item": is it possible to make "Add as link" default?

正如this中指出的那样因此,VisualStudio中的Add>Existingitem对话框默认显示Add按钮(意味着所选项目将被物理复制到新位置),而理想的操作通常(总是?)添加为链接。是否可以配置VisualStudio,以便在打开添加>现有项目对话框时默认选择添加为链接?我已经彻底搜索了VisualStudio中的Options对话框并检查了MSDN文档以找到对此的答案,但到目前为止无济于事。ProjectLinker当两个新项目要共享同一代码库时,自动链接是一个不错的选择。但是,当将大量文件从现有项目链接到新项目时,似乎仅限于Add>Existingitem方法,而且这项工