Articles of winapi

GetLastInputInfo不正确的工作?

我使用GetLastInputInfo检查鼠标和键盘的最后input信息。 在我的电脑上的系统工作正常,但是当我在我的笔记本电脑上运行我的程序不起作用。 我看到LASTINPUTINFO每10-15秒更换一次。 现在,我正在编写示例程序,用于检查来自鼠标和键盘的所有input,并保存来自此设备的最后一次input时间,但是如果我闲置,这次不会改变。 我怎样才能检查谁生成活动(设备/程序),并更改结构LASTINPUTINFO?

使用相同的套接字从服务器获取响应?

我正在写一个客户端和服务器的小应用程序 – 客户端发送一个问题,服务器的答案。 我设法做了第一部分 – 服务器从客户端得到的问题,做一些工作,并发回一个答案。 我只是不知道如何告诉客户端等待来自服务器的响应。 这是我的客户代码: char* ipAddress = (char*)malloc(15); wcstombs(ipAddress, (TCHAR*)argv[1], 15); DWORD port = wcstod(argv[2], _T('\0')); DWORD numOfThreads = wcstod(argv[3], _T('\0;')); DWORD method = wcstod(argv[4], _T('\0;')); //initialize windows sockets service WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2,2), &wsaData); assert(iResult==NO_ERROR); //prepare server address sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr(ipAddress); server_addr.sin_port = […]

什么是相当于在Win32 API中的Posix popen()?

是否有相当于Win32 API中的Linux / Unix stdio.h popen()函数? 如果是的话,我在哪里可以find它? 编辑:我需要知道这个补丁D标准库中的遗漏。 任何答案只能使用标准的Win32 API,不能使用MSVC特定的函数。 另外,如果它存在的话,我更喜欢一些不太可怕的东西。

有没有Java库来访问本机Windows API?

有没有Java库来访问本机Windows API? 无论是与COM或JNI。

检查一个Win32线程是否正在运行或处于挂起状态

如何检查Win32线程是否正在运行或处于挂起状态? 我找不到任何给出线程状态的Win32 API。 那么如何获得线程状态呢?

Win32代码在Windows XP / 7中获取EDID

我发现这个网页,并无法得到任何有用的信息(它searchregistry的东西,但从来没有find它,并进入一个无限循环)。 由于这个关于获取显示器串行UID(“EDID信息”)的问题,我想从Win32 C代码(或C / C ++ DDK代码,或其他)而不是Linux的angular度来看相同的信息。

我需要做些什么来使我的WH_SHELL或WH_CBT挂钩程序从其他进程接收事件?

我试图使用SetWindowsHookEx来build立一个WH_SHELL挂钩来获得系统范围的HSHELL_WINDOWCREATED和HSHELL_WINDOWDESTROYED事件的通知。 我把0传递给最后一个dwThreadId参数,根据文档 , 这个参数应该“将钩子过程与调用线程在同一桌面上运行的所有现有线程相关联”。 我也传递了我的DLL( HInstance在Delphi中)的句柄hMod参数,我所看到的所有例子。 然而,我只能得到我自己的应用程序创build的窗口的通知,而且往往会导致桌面进程一旦closures我的应用程序就会熄灭。 在你问之前,我打电话给UnhookWindowsHookEx 。 我也总是从我的处理程序中调用CallNextHookEx 。 我从一个有限的用户帐户运行我的testing应用程序,但到目前为止,我还没有发现任何暗示,这将发挥作用…(虽然这实际上令我惊讶) AFAICT,我做了所有的书(显然我没有,但到目前为止,我不知道在哪里)。 我正在使用delphi(2007年),但这应该不是真的,我想。 编辑:也许我应该提到这之前:我下载并尝试了几个例子(虽然不幸的是没有那么多的delphi – 特别是没有WH_SHELL或WH_CBT )。 虽然他们不会像我的testing应用程序那样崩溃系统,但是他们仍然不会捕获来自其他进程的事件(尽pipe我可以使用ProcessExplorervalidation它们是否可以加载到其中)。 所以看起来我的系统configuration有问题,或者这个例子错了,或者根本无法从其他进程捕获事件。 任何人都可以启发我吗? 编辑2:好的,这是我的testing项目的来源。 包含挂钩过程的DLL: library HookHelper; uses Windows; {$R *.res} type THookCallback = procedure(ACode, AWParam, ALParam: Integer); stdcall; var WndHookCallback: THookCallback; Hook: HHook; function HookProc(ACode, AWParam, ALParam: Integer): Integer; stdcall; begin Result := CallNextHookEx(Hook, ACode, AWParam, […]

从subprocess获取父进程ID

我使用CreateProcess API创build一个subprocess。 从subprocess中,我需要获取父进程ID。 如果我的进程树有一个孩子和一个大孩子。 我也需要从大孩子那里获取最顶级父母的进程ID。

在Windows中检测文件“COPY”操作

假设我希望在我的系统上启动文件副本时获得通知,并获取文件名,复制或移动的目的地以及复制时间。 这可能吗? 你将如何去呢? 你应该钩CopyFile API函数? 有没有什么软件已经完成了这个?