Tag: winapi

使用C#排列桌面图标

好吧,伙计们,所以这就是我想要实现的目标: 我希望所有无序的桌面图标在点击按钮时排列在桌面的左上角。 这是我正在使用的代码: [DllImport(“user32.dll”)] private static extern IntPtr GetDesktopWindow(); [DllImport(“user32.dll”, CharSet = CharSet.Auto)] public static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, int lParam); private void button1_Click(object sender, EventArgs e) { IntPtr hwnd = GetDesktopWindow(); //hwnd for desktop SendMessage(hwnd, LVM_ARRANGE, LVA_ALIGNLEFT, 0); } 我相信有与LVM_ARRANGE和LVA_ALIGNLEFT相关联的未分配整数,任何人都可以指导我们它们是什么。 我不熟悉使用dll,所以请原谅我,如果我问一个愚蠢的问题。 谢谢! 帮助我们,我使用以下代码,它仍然无法正常工作: private void button1_Click(object sender, EventArgs e) { […]

如何在不使用剪贴板的情况下复制图像?

问题:我有以下代码从网络摄像头捕获图像。 我的问题是这部分: SendMessage(hCaptureWnd, WM_CAP_COPY, 0, 0); // copy it to the clipboard 它的作用是将图像从窗口复制到剪贴板,然后从中创建一个字节数组。 它可以工作 – 只要你在程序运行时不使用剪贴板。 问题是,这对我自己来说甚至都不起作用,因为我有时会在Visual Studio需要很长时间来复制某些内容来开始调试Web应用程序,然后崩溃。 所以我的问题在这里: 如何在不使用剪贴板的情况下获取图像? 或者更具体地说,如何将hCaptureWnd转换为System.Drawing.Image? – 编辑: 我错过了说“没有创建文件,我想要一个字节数组”。 它是一个Web应用程序,因此运行应用程序的用户不应具有对文件系统的写访问权限(仅写入文件进行临时测试)… – 结束编辑: /// /// Captures a frame from the webcam and returns the byte array associated /// with the captured image /// /// number of milliseconds to wait between connect […]

检查Windows电源管理是否关闭了显示屏

如果“Windows电源管理”关闭了显示器,我如何以编程方式检入Windows 7和XP? (如果我能收到一个活动,那会更好。)

用户C和C#的内核方法列表

是否有一个很好的列表,我们可以从user32.dll和kernel.dll导入并在C#中使用? 我是Windows API的新手,我想了解更多有关这两个库的信息。

C#套接字与管道

目前我正在开发Windows上的多进程桌面应用程序。 此应用程序将是一个收缩包装的应用程序,它将部署在世界各地的客户端计算机上。 虽然我们可以对机器有广泛的规格 – 例如带有.Net 4.0 CF的Windows XP SP3,但我们无法控制它们,我们无法对其配置过于具体 – 例如我们无法指定机器必须具有cuda 1.4图形处理器等等 其中一些进程是托管的(.Net 4.0),其他进程是非托管的(C ++ Win32)。 这些流程需要共享数据。 我迄今评估的选项是 Tcp套接字 命名管道 管道看起来好一点,但是对于我们的需求 – 两者的性能都是可以接受的。 套接字为我们提供了跨越机器(和操作系统 – 我们最终支持非Microsoft操作系统)边界的灵活性,因此我们倾向于使用套接字。 但是 – 我主要担心的是 – 如果我们使用Tcp套接字 – 我们是否可能遇到防火墙问题? 是否有其他人部署了使用TCP进行IPC和经历过问题的桌面应用程序/程序? 如果是这样 – 什么样的? 我知道这是一个相当开放的问题,我很乐意改写。 但我真的想知道我们可能会遇到什么样的潜在问题。 编辑:为了更轻松 – 我们只运送一些POD,整数,浮点数和字符串。 我们构建了一个抽象层,提供了两种范例 – 请求/响应和订阅。 传输层已被抽象出来,目前我们有两个实现 – 基于管道和基于TCP。

在Windows中处理系统文件夹事件

我正在编写一些C#代码,我需要检测应用程序运行时是否已打开Windows文件系统上的特定文件夹。 有什么办法吗? WinAPI可能吗?

如何获取窗口客户区的坐标

我可以使用GetClientRect和GetWindowRect Win32调用获取windows整个区域的坐标,以及客户区的坐标。 我的问题是GetClientRect总是返回左上角的0,0。 如何确定实际客户区域相对于窗口rect的含义?

C#如何判断DVD驱动器托盘是否打开?

我在C#中有DVD阅读和刻录应用程序。 我希望能够检测空驱动器(无磁盘)和打开驱动器之间的区别。 编辑:经过一些更多的谷歌搜索,我认为更好的问题描述是“ 我想访问驱动器托盘状态 – 打开或关闭 ” 我可以用 ManagementObjectSearcher(“SELECT * FROM Win32_LogicalDisk WHERE DriveType= 5”) 找到系统中的所有DVD驱动器,属性告诉我驱动器中是否有磁盘。 Access属性告诉我是否有空白磁盘。 但是当驱动器打开时,以及当驱动器关闭并且为空时, Access为空。 当驱动器打开或关闭时,我看不到任何其他属性发生变化。 任何人都知道区分开放式驱动器与封闭式空驱动器的方法吗? 我使用的是Win7,但理想情况下该解决方案也适用于XP和Vista。

访问未通过MSAA / UIAutomation公开的控件的替代方法

我正在为一个用VB6编写的应用程序编写CodedUI测试,需要在许多不同的标签上进行断言。 VB6中的标签不实现MSAAA,因此它们不会出现在Spy ++或Inspector中。 更改自动化测试的应用程序代码将是一场艰苦的战斗。 这些测试最初是用Rational编写的,而Rational的对象检查器能够获得标签及其大部分属性。 所以我知道有可能得到我正在寻找的信息。 我假设Rational使用winapi中的某些东西来访问标签的属性,我假设必须在屏幕上绘制标签。 还有其他人遇到这个问题吗? 我对任何不涉及更改我正在测试的应用程序的源代码的想法持开放态度。

在c#中获取键盘钩子的键码的位置

我使用以下代码禁用键盘组合挂钩。 我上网的时候得到了这个代码。 我想知道键盘键的键码列表。 [lParam.vkCode == ???]请给我链接,谢谢.. namespace BlockShortcuts { public class DisableKeys { private delegate int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); [DllImport(“user32.dll”, EntryPoint = “SetWindowsHookExA”, CharSet = CharSet.Ansi)] private static extern int SetWindowsHookEx(int idHook, LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId); [DllImport(“user32.dll”)] private static extern int UnhookWindowsHookEx(int hHook); [DllImport(“user32.dll”, EntryPoint = “CallNextHookEx”, CharSet = […]