Articles of .net

以编程方式中断活动屏幕保护程序?

原因:我正在开发一个需要在桌面上显示信息的紧急警报应用程序。 当客户端收到警报时,会popup一个窗口。 如果屏幕保护程序处于活动状态,或者显示器处于待机状态,则警报将不可见。 我想知道是否有可能通过某种程序化的鼠标移动或系统调用唤醒计算机,以便警报可见。 我认为鼠标移动或按键唤醒的原因是因为硬件中断,所以它可能是不可能的。 目前,该项目正在C#中实施。 我很想听听有关Windows,MAC和Linux的解决scheme。 这是客户的要求。 我已经考虑了以下几点: 在大多数电脑闲置后,用户必须login。 那些电脑不会得到警报 如果屏幕保护程序处于活动状态,那么很可能无论如何都没有人在电脑上。 我不是试图: 防止屏幕保护程序或节能模式一起启动。

什么时候我的进程被杀死了?

在Windows Server 2003上运行本机和托pipe代码的混合进程。 当我在进程资源pipe理器中杀死进程时,它会进入100%cpu状态,并在离开之前保持一段时间(有时甚至是10分钟)。 在这段时间里,我不能“杀”它或做任何事情。 当我通过进程pipe理器杀死进程来杀死进程时会发生什么样的情况? 我相信这不会调用任何析构函数,那么可能会导致这样的CPU使用? 谢谢,丹

如何使方法运行在“后台”(线程?)

我目前有一些代码循环通过文本文件寻找一个特定的短语。 但是,当这个方法运行时,整个应用程序将被locking。 我假设,因为它循环,这是我想要的。 我希望这发生在后台,所以正常的方法和用户与应用程序的交互仍然可以完成。 这怎么做/改进? private void CheckLog() { while (true) { // lets get a break Thread.Sleep(5000); if (!File.Exists("Command.bat")) { continue; } using (StreamReader sr = File.OpenText("Command.bat")) { string s = ""; while ((s = sr.ReadLine()) != null) { if (s.Contains("mp4:production/")) { // output it MessageBox.Show(s); } } } } }

如何从dns域名获得简短的“域名”?

原谅我,如果我对这个主题的理解有一些缺点,我只知道我所知道的关于域名和活动目录,因为我从与他们合作。 有两个不同的“版本”的域名。 首先是我称之为company.int (对于用户max@company.int)的DNS域名,其次是像prefixname (对于用户前缀名称\ max),并且它们都指的是相同的事情。 我的问题是,给“company.int”,如何将其转换为“prefixname”? 编辑:或者给定一个System.DirectoryServices.ActiveDirectory.Domain对象,如何获得前缀名? 编辑2:另外,是否有一个除此之外的“prefixname”的名称? 我永远不知道该怎么称呼它。 编辑3:我试图得到的价值是相同的值显示在“login到”(它列出的域和您的计算机)的Windowslogin屏幕上。 编辑4:我已经想通了以下几点可以得到的价值: SecurityIdentifier sid = GetCurrentUserSID(); string prefixName = sid.Translate(typeof(NTAccount)).Value.Split('\\')[0]; 有谁知道更好的方法来获得这个名字?

为性能计数器安装一个Total实例

VS 2005,C#2.0,.NET 2.0 / 3.0,Win2003 我正在尝试为MultiInstance安装一组性能计数器。 我注意到,即使没有其他实例,一些系统性能计数器类别也能保持“ 总计 ”状态。 ASP.NET应用程序2.0.50727是一个例子。 所以我一直在试图复制这个。 我在Installer类中创build了以下例程,然后将其添加到安装项目中的自定义操作中。 public override void Install(System.Collections.IDictionary stateSaver) { //Debugger.Break(); CounterCreationData data = new CounterCreationData("ZCounter", "ZCtrHelp", PerformanceCounterType.NumberOfItems32); PerformanceCounterCategory.Create("ZCategory", "ZCatHelp", PerformanceCounterCategoryType.MultiInstance, new CounterCreationDataCollection(new CounterCreationData[] { data })); PerformanceCounter counter = new PerformanceCounter(); counter.CategoryName = "ZCategory"; counter.CounterName = "ZCounter"; counter.InstanceName = "ZTotal"; counter.InstanceLifetime = PerformanceCounterInstanceLifetime.Global; counter.ReadOnly = false; […]

.Net 3.5 Windows窗体应用程序:64位Vista上的x86与x64加载时间

我们正在开发Winforms应用程序,并正在优化启动时间。 该应用程序运行在64位Vista机器上。 在我们的testing中,我们发现什么似乎是一个直观的结果。 其他所有的情况相同,只有一半的时间针对32位和64位的负载。 任何人都可以谈到为什么? 谢谢。 [编辑]我们通过ClickOnce部署应用程序,从我们的研究开始在一个独特的沙箱应用程序。 所以它总是冷冷的开始,所以看起来提高性能在这里是徒劳的。 我们的主要问题是项目中存在32位dll。 一旦我们在x86上定位项目(即使它在x64上运行),加载时间减半。 [/编辑]

添加应用程序清单以确保在Windows XP,Vista和7上提升权限的可靠程度如何?

这种方法有多稳定,以确保我的pipe理应用程序在启动时请求pipe理员权限: <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> 这在Windows 7上运行良好,但我没有访问XP和Vista,所以不能告诉。

填充Windows XP安全事件日志

我需要填写Windows安全事件日志到接近完整状态。 由于不能写访问这个日志,任何人都可以build议一个可以编程执行的操作,这会添加一个条目到这个日志? 只要它给出一个条目就不需要有任何意义(一个开销最小的将是需要的,因为它需要被执行几千次)。 这纯粹是为了testing平台上的testing目的而需要的,任何肮脏的解决scheme都可以做到。 唯一的要求是它是.NET 2.0(C#)。

活动目录属性“badPwdCount”

问题:我们已经将AD服务器从2003年升级到2008年,由于某些“错误代码”,开发人员以这种方式进行编码,他直接将“badPwdCount”属性值转换为INT,并由于NULL值转换 – NULL引用exception – NULL不能转换为INT。 更大的问题:现在我们无法进行部署,因为有超过100个独立的应用程序依赖于此更改,而我们现在正在寻找最less的处理方法。 背景:现在,这个“badPwdCount”属性的工作方式是,当用户login到域时,它将被设置为零,否则它是NULL。 问题是,这些用户都不会交互式地login,因为他们是外部的,我们通过API对他们进行身份validation,他们也不能使用API​​login。 问题:有人知道这个值是在registry还是在某个地方,我可以find并设置为零? 也想通过脚本启动每个用户的login,但也想收集其他想法… badPwdCount的MSDN页面: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms675244 (v=vs.85) .aspx

确定是否在.NET中共享文件夹

有没有办法通过.NET框架来确定文件夹是否共享? Diretory,DirectoryInfo或FileAttributes都没有任何相应的字段。 我忘记提到的一件事是,我想要检查networking共享。 但我会调查WMI的东西。