Articles of .net

MSMQ:将客户端从WIndows XP移到Windows 7,在ping中执行

我们有一个问题,将.NET客户端应用程序从Windows XP移动到Windows 7,连接到WIndows 2003服务器。 客户端与服务器的连接松动,这似乎与底层ping系统的变化有关。 看来在Windows 2003上的服务器端MSMQ(3.X)期望不再由Windows 7客户端(MSMQ 4.X)提供的一个ping。欢迎任何帮助。

无法卸载MySql连接器。净6.9.3,在MySql.Web.v20.dll失败

Env:Windows 7和8.1,均为x64 我无法卸载MySql Connector.Net或安装更新。 我看着错误日志,并在这个时候发生故障。 Uninstalling assembly 'C:\Program Files (x86)\Development\Database\MySQL\MySQL Connector Net 6.9.3\Assemblies\v2.0\MySql.Web.v20.dll'. Affected parameters are: logtoconsole = logfile = C:\Program Files (x86)\Development\Database\MySQL\MySQL Connector Net 6.9.3\Assemblies\v2.0\MySql.Web.v20.InstallLog assemblypath = C:\Program Files (x86)\Development\Database\MySQL\MySQL Connector Net 6.9.3\Assemblies\v2.0\MySql.Web.v20.dll An exception occurred during the uninstallation of the MySql.Web.Security.CustomInstaller installer. System.NullReferenceException: Object reference not set to an instance of an object. […]

64位.Net应用程序中的内存限制?

在我的笔记本电脑上,运行64位Windows 7和2 GB可用内存(由任务pipe理器报告),我能够做到: var x = new Dictionary<Guid, decimal>( 30 * 1024 *1024 ); 没有更多的RAM在我手中的计算机,我想知道这是否会扩大,以便在具有4 GB可用内存的计算机上,我将能够分配60M项目而不是“只是”30M等等? 还是有其他的限制(.Net和/或Windows),我会碰到之前,我能够消耗所有可用的RAM? 更新:好的,所以我不能分配一个大于2GB的单个对象。 知道这一点很重要! 但是,我当然好奇地想知道,如果能够像这样分配2 Gb的块,我能够充分利用所有的内存: var x = new List<Dictionary<Guid, decimal>>(); for ( var i = 0 ; i < 10 ; i++ ) x.Add( new Dictionary<Guid, decimal>( 30 * 1024 *1024 ) ); 如果电脑具有> 20Gb的可用内存,这是否工作?

C#:如何得到像控制面板程序和function一样安装程序?

我读了很多获取计划的信息。 没有algorithm做我想要的。 我需要像控制面板中一样安装程序。 所以我用: WMI Win32_Product类。 它只显示msi安装的程序。 registry项。 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 。 同样,一些程序不显示在控制面板中,一些程序显示在控制面板中而不是在这个registry节点中。 那么,这个世界上有没有人知道哪个algorithm使用控制面板来显示已安装的程序? UPD1:是的,我使用64位,我知道有64位安装程序的另一个节点“HKLM \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载”,但下面的代码枚举的HKLM \ SOFTWARE \ Wow6432Node \微软\ CurrentVersion \ Uninstall部分,奇怪… var programs = new List(); string registry_key = @“SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall”; 使用(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key)) { foreach(key.GetSubKeyNames()中的stringsubkey_name) { 使用(RegistryKey subkey […]

如何创build(32位).NET应用程序以使用3 GB RAM?

我正在创build一个需要使用大量RAM的.NET应用程序(C#)。 我最近知道,在32位版本的Windows XP上,我只能使用2 GB,除非我使用/3Gb开关,并在可执行头文件中设置IMAGE_FILE_LARGE_ADDRESS_AWARE标志。 但是,因为我正在开发一个.NET应用程序,我想我不能直接修改可执行文件,可以吗? 那么,我该怎么做,让我的应用程序使用3 GB?

在安装期间检测并要求安装Windows QFE /补丁程序

我们的WiX安装程序将.NET 4.0 WinForms应用程序部署到Windows Vista和7个桌面。 该应用程序包括一个需要.NET补丁的可移植类库 (KB2468871)。 我们需要安装补丁作为先决条件。 修补程序有多种应用方式: 下载KB2468871补丁并安装它 安装便携式库工具 作为使用ClickOnce的先决条件(可能是#1的变体) 使用类似问题的build议,我创build了一个CustomAction来检查我发现的QFE(#1)是否返回true。 private static bool IsPatchAlreadyInstalled() { // If the patch is installed, we can find it using WMI var query = new SelectQuery("SELECT HotFixID FROM Win32_QuickFixEngineering WHERE HotFixID = 'Q2468871' OR HotFixID = 'KB2468871'"); var results = new ManagementObjectSearcher(query).Get(); return results.Count > 0; } […]

在.NET中自动缩放图像

我正在考虑一个个人学习项目。 使用.NET(最好是VB)我想build立一个简单的桌面应用程序,只是function是显示漫画,如CDisplay,但具有更高级的导航。 我希望能够通过点击图像的某些区域(例如单个面板)来放大,并使缩放区域自动alignment到面板并炸开。 图像通常是像.jpeg,.png等标准格式。 像这样的东西是我要去的: http : //iphonecomicbookreader.com/ 我什至不知道这是什么叫? 图像映射? 色调映射也许? 是否有可能在.NET中做到这一点,或者是否需要某种外部库? 代码示例会很好,但显然这是非常模糊的请求。 只要指出正确的方向将是非常有帮助的。 谢谢

授予在没有UAC提示的情况下启动时启动的应用程序的pipe理员权限?

背景 我已经写了一个小型的C#/。NET 4.0应用程序,可以将安装在Program Files中的游戏的各种设置同步到不同机器上同一游戏的其他副本(请考虑Chrome书签同步,但是这个游戏)。 同步本身是一个相对简单的事情,处理存储在游戏的Program Files文件夹内的文件。 在我的机器上,这工作正常,无需通过UAC提升我的应用程序。 Windows 7使游戏使用程序文件虚拟化,我的应用程序正常工作。 但是,在很多testing人员的机器上,我得到的报告是,应用程序无法使用这些文件,在来的情况下甚至无法看到游戏的文件夹! 让用户右键单击并以“pipe理员身份运行”即可解决所有情况下的问题。 所以,我们只是设置应用程序的清单要求pipe理员权限,对吧? 当用户手动调用应用程序或同步过程时,这很好(虽然不理想),因为它们将与应用程序交互并准备好接受UAC请求。 然而,我的应用程序的function之一是“自动同步”选项,它允许用户“设置和忘记”的应用程序。 使用此设置,应用程序将自己放入HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Runregistry中,以便在启动时运行,并根据需要坐在系统托盘中同步后台中的设置。 显然,我需要在这里变得更聪明。 一旦用户login到他们的帐户或之后的随机间隔,提出UAC提示不是前进的方向。 所以,我的问题! 在需要pipe理员权限的启动时运行应用程序的情况下,处理这种情况的最佳方法是什么? 有没有办法让用户授权安装,导致系统在启动/login时没有提示而自动运行具有正确权限的应用程序? 更新要明确,这必须在代码中实现。

发送一个鼠标点击任务栏中的一个button使用C#

在我目前正在开发的应用程序中,需要将外部应用程序的窗口放在前台。 使Win32 API调用(如BringWindowToTop和SetForeground窗口)不会一直工作。 这是由于Windows XP中的一些限制。 我想要做的是发送模拟鼠标点击任务栏上的窗口button,我希望将窗口的前面。 有谁知道这是可能的?

如何调用在C#中的Windows屏幕保护程序?

我想在Windows环境中调用用户的屏幕保护程序(如果已定义)。 我知道这可以使用纯C ++代码(然后在C#中的包装非常简单),如这里所build议的。 不过,为了好奇,我想知道这样的任务是否可以通过纯粹的托pipe代码使用点networking框架(版本2.0及以上),没有p / invoke和没有访问C + +端(反过来,可以很容易使用Windows API)。