Articles of .net

为什么Windows 7不能加载PresentationFramework.Aero2程序集?

我最近完成了我使用Windows 8开发的第一个WPF应用程序。它在我的机器上运行良好。 我的一个朋友也在他的Windows 8机器上的视觉工作室中运行,而且工作。 我在我的机器上点击一次安装程序,安装正常并运行。 我在虚拟机上安装了Windows 7,并尝试使用点击一次来安装它。 它提取了.NET 4.5和SQL Server Compact,安装过程看起来完美无瑕。 当Windows 7试图运行该应用程序时,没有发生任何有用的事情。 我在virtualbox中安装了Visual Studio,并能够获得这个堆栈跟踪。 我在Google上查找了PresentationFramework.Aero2,遇到了3个SO问题和1个MSDN问题。 MSDN的问题给了我一个我认为可能的暗示。 如果我去C:\ Windows \ Microsoft.NET \ Framework \ 4.0 \ WPF没有PresentationFramework.Aero2.dll文件,而在Windows 8上有…所以我复制并粘贴到Windows 7的相当地方希望实现一些东西,但没有什么结果。 这里是堆栈跟踪: System.Windows.Markup.XamlParseException was unhandled HResult=-2146233087 Message='Add value to collection of type 'System.Collections.ObjectModel.ObservableCollection(System.Windows.Controls.DataGridColumn)' threw an exception.' Line number '35' and line position '71'. Source=PresentationFramework LineNumber=35 LinePosition=71 StackTrace: […]

在.NET中的任务栏中右键单击应用程序菜单

大多数应用程序只有“恢复,移动,大小,最小化,最大化和closures”,但MS SQL提供了“帮助,自定义视图”的额外选项。 沿着这些线,是否可以添加到任务栏中的应用程序的右键单击菜单? 注意:我不是指时钟旁边的通知区域中的图标。

当固定到开始菜单时,应用程序标题丢失

我有一个将我的C#应用​​程序固定到Windows 2008 R2的开始菜单的问题。 具有正确图标但应用程序名称的应用程序引脚缺失。 实际上我只是显示图标。 我的csproj有一个msbuild导入,指向一个自定义的目标文件来自动生成AssemblyInfo类。 我检查了生成的AssemblyInfo文件并validation了AssemblyTitle,AssemblyProduct和AssemblyCompany的属性设置正确。 当我右键单击.exe并查看属性\详细信息时,一切看起来都不错。 所有信息都按预期显示,而不是在应用程序被固定时显示。 有没有人有任何想法,为什么这可能是? 干杯, 本

特定networking接口IPv4可用性 – 无连接,本地,Internet

如何识别特定NetworkInterface连接状态? NetworkInterface[] nets = NetworkInterface.GetAllNetworkInterfaces(); foreach (var n in nets) { // TODO: determine connectivity status of each network interface // ( mainly interested in IPv4 connectivity ) } 这个问题不是关于一般的互联网连接 ,因此使用GetIsNetworkAvailable()不是一个解决scheme OperationalStatus.Up可以用来过滤一些不活动的networking接口,但不是全部 – OperationalStatus.Up在一些显示“无networking访问”的IPv4和IPv6接口 我也知道如何获得IPv4 UnicastAddresses ,但那么有用的是什么? 在WMI的这些部分我找不到任何相关的东西 即提取每个接口状态为互联网,本地,有限或无

C#从“高级安全设置”获取“应用于”信息的目录

我正在写一个应用程序,用于search文件夹的权限,并返回权限(例如完全控制,读取),访问控制types(如允许,拒绝)和应用信息(如本文件夹,子文件夹和文件) 。 我能够使用DirectoryInfo的GetAccessControl(DirectorySecurity)方法获取大部分这些信息。 但是,我无法准确获取目录的“应用到”信息。 经过大量的研究,我遇到了这个StackOverflow问题如何更改文件夹审计选项下的“适用于”字段以编程方式(.NET) ,这导致我这个全面的页面http://msmvps.com/blogs/p3net/pages/access- control-in-net.aspx,但是使用两者都指定的规则,我没有像在Windows资源pipe理器中那样获得相同的“应用到”权限。 (来自http://msmvps.com/blogs/p3net/pages/access-control-in-net.aspx的表格) 这是我用来尝试和转换InheritanceFlags和PropogationFlags的组合的代码: private ApplyToType GetApplyToType(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) { if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.None) return ApplyToType.ThisFolderOnly; if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.ContainerInherit) return ApplyToType.ThisFolderAndSubfolders; if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.ObjectInherit) return ApplyToType.ThisFolderAndFiles; if (propagationFlags == PropagationFlags.None && inheritanceFlags == (InheritanceFlags.ContainerInherit | […]

定义不同types的二维dynamic数组

我想创build两个不同types的数组,像我可以添加到该数组的两个值其中之一是控制名,第二个是布尔值。

检测Windows进程使用C#而不使用WMI启动和退出事件

使用WMI的ManagementEventWatcher / EventArrivedEventHandler将导致创build另一个线程,我试图避免。 WMI也知道它的延迟。 所以我的问题是:如何检测Windows进程创build/终止与C#没有WMI? 有没有办法从非托pipe代码做到这一点?

在WinForms中如何处理隐形控件?

我试图重写.NET Compact Framework中窗体的OnPaint事件。 到目前为止,我可以用渐变,圆angular矩形等来绘制控件,而这些控件通常不能用于常规控件。 但是,当我想要使控制无形时,我遇到了问题。 现在,我所做的是重新绘制除了那些看不见的控件之外的所有控件。 由于需要一点时间,所以会导致一些闪烁。 有谁知道Windows如何处理绘画“隐形”的控制? 或者你可以build议任何algorithm或方法如何实现这一点。

RWX内存页面的风险

得到负面评论这个答案后 – 我可以实现计数器在.text区域,而不使用寄存器? ,我进行了一些调查,试图了解RWX内存页面是否真的非常用和稀有的事情,或者每个stream行的程序都有一些。 ( 科学! ) 我通过WinDBG连接到MSVS,执行!address /f:Image,PAGE_EXECUTE_READWRITE , 我看到很多这样的线条: 7a534000 7a537000 3000 MEM_IMAGE MEM_COMMIT PAGE_EXECUTE_READWRITE Image "C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\System\6836a951700c2eb01a933212425cda4e\System.ni.dll" 我检查了它的部分,并且有“Execute Read Write”标志的.xdata部分。 这是否意味着每个加载了.NET库的应用程序都有RWX内存页面? 例如你的浏览器(如果你运行Windows)。 (幸运的是,既不是FF8,也不是IE8不使用.NET) 那么,为什么我们打扰RWX记忆?

如何使表格停留在另一个上面

在我的.NET应用程序中,如果某些任务需要一段时间才能告诉用户程序仍然有效,则会显示带有“请稍候”消息的表单。 这个表格必须在自己的线程中运行,因为主线程是工作的,因此很忙。 我读过,可以使用Form.Owner来完成这个任务 ,但是如果表单运行在不同的线程上,我不认为这是有效的。 问题是,等待表单可以隐藏在主窗体后面,在这种情况下,用户看不到它,因为它没有任务栏button(它没有一个) 。 我的问题是,如果可以让等待窗体保持在主窗体之上而不使其成为AlwaysOnTop窗体(它将停留在所有窗口之上)?