Articles of .net

使用C#获取连接到命名pipe道服务器的客户端的进程ID

我不确定我是否没有看到它,或者是什么? 我需要知道从NamedPipeServerStream实例通过命名pipe道连接到我的服务器的客户端的进程ID。 这样可能吗? 同时我想出了这个function: [DllImport("kernel32.dll", SetLastError = true)] internal static extern bool GetNamedPipeClientProcessId(IntPtr Pipe, out UInt32 ClientProcessId); public static UInt32 getNamedPipeClientProcID(NamedPipeServerStream pipeServer) { //RETURN: // = Client process ID that connected via the named pipe to this server, or // = 0 if error UInt32 nProcID = 0; try { IntPtr hPipe = pipeServer.SafePipeHandle.DangerousGetHandle(); GetNamedPipeClientProcessId(hPipe, […]

检查Windows窗体滚动条是否一直向下滚动?

我有一个丰富的文本框作为日志。 当一条新消息被追加时,日志会自动向下滚动,这很好。 唯一的问题是当用户想要查看日志中的某些内容时, 如果添加新消息,则该框会自动向下滚动并阻止用户看到任何内容。 我想能够检查富文本框是否滚动一直下来,如果它不是向下滚动。 目前我可以在虚拟文本空间中获取滚动位置(使用EM_GETSCROLLPOS的SendMessage)。 我也可以通过GetScrollBarInfo来获取滚动条信息。 但是,我怎么知道虚拟文本空间的底部是什么? 谢谢!

捕获VPN使用情况统计信息

我们使用.NET 2.0中的NetworkInterface.GetIPv4Statistics()来监视networking接口的使用情况统计信息。 这不报告正在隧道VPN通信的连接正确的统计信息。 相反 – 在Cisco VPN客户端的情况下 – 这种使用仅仅归因于一个新的networking接口,就像一个以太网连接。 Windows本身(Vista,至less)将VPN统计信息正确地添加到实际的物理接口,因此查看原始连接的“状态”对话框会显示正确的字节数。 但是,.NET调用的结果不会将stream量合并在一起。 有没有办法将VPN连接关联到它所通过的networking连接? 如果没有,那么是否有人知道状态对话框正在使用哪个API来检索正确的统计信息? 目前,我们不得不手动检测连接,看起来像是VPN,并将其用途添加到任何其他连接处于活动状态,这似乎不是一个可靠的解决scheme。

在Windows应用程序跟踪屏幕录像机

我正在从事一个networking项目,内容安全是客户的首要任务。 我需要创build一个Windows应用程序,该应用程序将追踪用户访问网站时是否正在运行任何屏幕录像机。 如果他是,我需要把他注销。 我有关于c#,vb.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. […]

如何以编程方式禁用系统设备?

我正在寻找的方式来禁用系统设备(无论是USB或内部)在C#.NET给定的PID和VID或设备名称。 search后,我发现CodeProject上的C#硬件助手库 。 但是我需要能够在XP,Vista和Windows 7(包括x86和x64操作系统)上工作的东西… 我链接的项目只能在XP和Vista x86下运行…即使以pipe理员权限运行应用程序。 有谁知道可以在所有操作系统上工作的解决scheme吗?

有更快的替代GDI GetPixel()?

我在.NET应用程序中使用gdi32.dll中的GetPixel()来对屏幕上任意位置的像素进行采样。 它工作正常,但它是我的主要性能瓶颈。 有没有更快的方法呢?

从C#应用程序获取WindowsExplorer中的当前select?

是否有可能从我的C#应用​​程序获取当前在Windows资源pipe理器中select的文件的列表? 我已经做了很多关于从C#这样的托pipe语言与Windows资源pipe理器交互的不同方法的研究。 最初,我正在研究shell扩展的实现( 在这里和这里例如),但显然这是从托pipe代码中的一个坏主意,可能无论如何对我的情况可能矫枉过正。 接下来,我看着PInvoke / COM解决scheme,并find这篇文章 ,这导致我这样的代码: SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows(); string filename; ArrayList windows = new ArrayList(); foreach(SHDocVw.InternetExplorer ie in shellWindows) { filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower(); if(filename.Equals("explorer")) { Console.WriteLine("Hard Drive: {0}", ie.LocationURL); windows.Add(ie); var shell = new Shell32.Shell(); foreach (SHDocVw.InternetExplorerMedium sw in shell.Windows()) { Console.WriteLine(sw.LocationURL); } } } …但个别的InternetExplorer对象没有获得当前文件select的方法,虽然它们可以用来获取有关窗口的信息。 然后我发现这篇文章正是我所需要的,但在C ++中。 以此为出发点,我试图通过在我的项目中添加shell32.dll作为参考进行一些翻译。 我结束了以下几点: […]

如何以编程方式格式化FAT16的SD卡?

我想用FAT16文件系统初始化SD卡。 假设我在驱动器G上有我的SD读卡器,我怎样才能轻松地将它格式化为FAT16? 更新:为了澄清,我想在.net平台上使用C#做到这一点,我可以检测到错误,这将在Windows XP和以上的工作。