Articles of .net

我可以通过.Net获得与安装的打印机相关的图标吗?

我知道如何获得所有已安装的打印机在.Net机器上的列表: foreach (String printer in PrinterSettings.InstalledPrinters) { Console.WriteLine(printer.ToString()); } Console.ReadLine(); InstalledPrinters只是一个string列表。 有没有办法让安装的打印机对象同时包含我通常在Windows资源pipe理器中的“设备和打印机”下看到的名称和图标图像?

.NET Charting图例标记大小

我正在.NET Windows窗体项目上使用DataVisualizations Charting控件。 我遇到的问题是,当我打印图表时,图例并没有显示系列标记(实际上它是一种显示,但它看起来像线上较暗的像素)。 当在表单上查看图表时,标记是可见的,尽pipe它们不是很大,并且与系列的MarkerSize值相比似乎没有改变。 但是当图表打印时(在纸上或PDF上),标记不在那里。 此图显示了在表单上查看图表的视图。 正如你所看到的,图例标记是可见的,但仍然没有接近实际系列标记的位置。 该图显示了同一图表的PDF版本。 如果你眯起眼睛,你可以在图例中心看到较暗的像素。 如何修复图例标记,以便在印刷时实际显示并使其变大?

ManagedThreadID和操作系统ThreadID之间的关系

我正在研究一个multithreading的C#Windows应用程序,这个应用程序会频繁调用本地dll。 这些阻止有时可能持续相当长时间的电话。 在某些情况下,我想从主线程中取消一些工作线程的阻塞调用。我使用的本地API提供了一个用于此目的的函数: HRESULT CancelBlockingCall(DWORD ThreadID) 虽然CancelBlockingCall()的文档不是很清楚,但我相信我需要传递阻塞在调用上的OS级线程的ThreadID。 根据我从CancelBlockingCall()得到的返回码,我意识到Thread.ManagedThreadID不是我所需要的。 我在msdn上find了以下内容(请参阅注释) : 操作系统ThreadId与托pipe线程没有固定关系,因为非托pipe主机可以控制托pipe线程和非托pipe线程之间的关系。 具体而言,复杂的主机可以使用CLR Hosting API来针对相同的操作系统线程调度多个托pipe线程,或者在不同的操作系统线程之间移动托pipe线程。 这是否意味着我没有办法正确调用一个托pipe线程的CancelBlockingCall()? 是否无法确定托pipe线程当前正在执行的操作系统级线程的线程ID?

鼠标hover事件上的Hightlight Listbox项目

我试图改变一个listview项目的背景颜色时,鼠标hover在它 我有一个鼠标hover事件,但是如何在鼠标hover在项目上时添加“突出显示”效果? private void pinnedAppsListBox_MouseHover(object sender, EventArgs e) { }

用多个视图构buildC#.NET窗口应用程序

我正在重写一个旧的应用程序,并将其作为尝试C#和.NET开发的好机会(我通常在C中做了很多插件)。 应用程序基本上是一个收集数据的计时器 它有一个开始视图和一个button来开始测量。 在测量过程中,根据用户想要查看的信息,该应用程序有五个不同的视图。 切换视图的最佳做法是什么? 从开始运行? 在运行视图之间? 思路: 使用一个表单并隐藏并显示控件 使用一个开始窗体,然后使用TabControl的窗体 使用六个单独的表格

计算Windows进程的CPU使用率?

给定一个进程ID,我怎样才能从这个进程的C#加载CPU的负载? 我已经尝试使用PerformanceCounter在c#中所述计算特定应用程序的CPU使用率 我还尝试在一个时间范围内手动取得进程的总CPU时间的两个值,并将delta-cpu-time与delta-total-time分开。 这两种方法似乎一开始工作正常,但如果我把我的应用程序旁边的Windows任务pipe理器我的应用程序总是显示约两倍的任务pipe理器。 我试图用10ms到10sec的各种时间步长进行更新,并一直得到相同的结果。 嗯,当我写这个时,意识到这可能是某种双核问题。

修整string并将其转换为小写字符的最快方法

我已经写了一个类来处理string,我有以下问题:传入的string可以在string的开始和结尾处带有空格。 我需要修剪string的空格,并将其转换为小写字母。 我的代码到目前为止: var searchStr = wordToSearchReplacemntsFor.ToLower(); searchStr = searchStr.Trim(); 我找不到任何function来帮助我在StringBuilder 。 问题是这个类应该尽可能快地处理大量的string。 所以我不想为每个类处理的string创build2个新的string。 如果这是不可能的,我会深入处理algorithm。

.net安装项目强制重新安装新的文件replace

我有一个安装项目,安装了几个项目和几个外部文件(其中之一是一个SQLite数据库) – 一切正常,直到我最近修改安装项目中包含的基础数据库文件。 现在,每次我尝试重新安装项目新的数据库文件不会取代以前安装的一个…我可以强迫它以某种方式在VS或使安装实现这是一个新的版本,所以文件被取代? 最好的祝福, 卡洛斯·欧鲁

机器在.NET中的域名?

有一个简单的方法来做到这一点,我不能相信没有。 我已经通过networking扫描,发现像20个不同的方法来find当前用户在哪个域,但没有获得当前机器的域(或工作组)。 在非托pipe的c + +这是通过检索: WKSTA_INFO_100 *buf; NetWkstaGetInfo(NULL, 100, (LPBYTE*)buf); domain_name = pBuf->wki100_langroup; 有人可以帮助我,如果有一种方式获得相同的信息托pipeC#本地? 编辑1: 伙计们,请阅读这个问题。 我不是在寻找用户的域名。

如何检测Windows 8操作系统使用C#4.0?

我必须在我的C#Windows应用程序中检测Windows 8操作系统并执行一些设置。 我知道我们可以使用Environment.OSVersion检测Windows 7,但是如何检测Windows 8? 提前致谢。