Articles of winapi

如何获得在Windows上的QT的供应商ID和USB设备的PID?

我在Windows上使用qt。 我的程序需要知道插入的USB闪存驱动器的供应商ID和产品ID。 我试图从这个主题来实现示例,但是WinUsb_Initialize函数中出现分段错误。 这是我的代码: HANDLE hDevice = CreateFileA("\\\\.\\PhysicalDrive1", GENERIC_WRITE | GENERIC_READ , FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if(hDevice == INVALID_HANDLE_VALUE) { qDebug() << "hDevice – INVALID_HANDLE_VALUE"; } else { qDebug() << "hDevice handle ok"; PWINUSB_INTERFACE_HANDLE phWinUSBHandle; BOOL result = false; result = WinUsb_Initialize(hDevice, phWinUSBHandle); //seg } 我需要phWinUSBHandle来使用WinUsb_GetDescriptor函数。 我会很感激任何帮助。 也许有人知道一些替代方法来获取在Windows中的供应商ID和产品ID?

我想在EN_KILLFOCUS之后找出焦点所在的位置?

现在我已经构build了我的应用程序:它运行在Internet浏览器(IE,FireFox,Chrome等)的容器中。 在我的程序中有一个无模式对话框,对话框包含一个CEdit控件。 这是我的问题:当用户激活编辑控件键入的东西,编辑控件获得焦点。 当编辑控件失去焦点时,我必须检查input是否有效。 如果不是,我将显示一个模型对话框 AfxMessageBox的 。 但是现在我不能确定我的编辑控件是否在我自己的应用程序中失败。 由于编辑控件可能会失去很多重点,例如用户closures浏览器时,用户打开文本程序。 在这些情况下,我只是跳过无效检查。 任何人都可以告诉我如何find我的编辑控件失去焦点的方式。

ShellExecute获取打开文件夹的权限

我正在使用ShellExecute(NULL, L"open", szSomeDirectory, 0, 0, SW_SHOWDEFAULT)在资源pipe理器中打开一个目录。 我试图打开一个目录,我通常会提示You currently do not have permission to access this folder. 并会给我select获得访问并显示UAC提示。 当我执行ShellExecute时,资源pipe理器给我一个错误消息说Access Denied 。 我的程序以pipe理员权限运行,但这似乎并不重要。 我如何获得打开这个文件夹?

我的SendMessage / PostMessage部分代码有什么问题?

我已经创build了简单的脚本,尝试通过在这里input链接描述计算权益: import time import win32api import win32con from pywinauto import application def getEquity(ps_pid, hand1, hand2): def set_hand(handle, hand, kf=0): win32api.SendMessage(handle, win32con.WM_SETFOCUS, 0, 0) # f: losefocus #win32api.SendMessage(handle, win32con.WM_GETDLGCODE, 0, 0) time.sleep(0.05) len = win32api.SendMessage(handle, win32con.WM_GETTEXTLENGTH, 0, 0) time.sleep(0.05) win32api.SendMessage(handle, win32con.EM_SETSEL, 0, len) time.sleep(0.05) for c in hand: win32api.PostMessage(handle, win32con.WM_CHAR, ord(c), 0) #win32api.SendMessage(handle, win32con.WM_GETDLGCODE, 0, 0) […]

在Windows上获取有线networking名称和安全级别

而通过这个问题,我的意思是用户分配的名称窗口让你input像:“我的家庭networking”“地下室”“车库”不ssid(虽然我也想读一个无线连接) 我特别想看看可以select的networking安全级别:家庭/办公室/公共 当连接到各种networking时,我想要使用这些信息自动切换程序的开启和closures。 更新:感谢@Damien_The_Unbeliever的回答,我能够解决我的问题,并find以下信息,我希望它也会帮助其他人: networking意识在Windows 7和Vista(MSDN,非托pipe) Windows API代码包(Microsoft,NetworkListManager的pipe理包装等) 如何使用Windows NLM API获取新的networking连接通知(Codeproject,Managed)

Wininet – 如何下载和validationSSL证书

我想像IE浏览器一样下载和validation证书,我试图监视IE API调用,看看它是如何做到的。 首先,我没有看到哪个wininet函数下载SSL证书,其次有很多调用crypt32.dll函数。 有人可以告诉我哪些function请求证书或validation证书所需的证书数据。 我想了解的方法,并在我的应用程序中执行完全相同的行为。

WebControl和Win32 / MFC之间的双向通信

我正在做一个win32 / MFC应用程序; 在这个应用程序中,我在对话框中embedded了WebControl。 当应用程序启动后,它将加载网页,在该用户将进入一些领域,然后按提交button。 一旦用户按下提交,服务器将处理该数据并向用户显示一些唯一的ID。 现在我们的要求是,我们不希望在网页上显示这个唯一的ID,那个网页需要把这些数据发送到我们的客户端应用程序(Win32 / MFC)。 为此我find了一个解决scheme: 从Web浏览器控件中运行JavaScript脚本调用C ++函数 这是做到这一点的正确方法,还是有任何其他的解决scheme在那里。 请帮我解决这个问题

使用与C ++ D'tor重叠的I / O冲突

我正在写一个单一的客户端(现在)的服务器,有一个主循环interpert客户端请求,并调度一个合适的处理程序。 对于一些taks,我想使用MS重叠I / O(仅适用于Windows)。 在其中之一,我想从一个文件中读取并将内容写入套接字。 因为我有类动作,它分配一个缓冲区,文件的大小,然后调用ReadFile(带有一个实际的文件系统文件),然后是一个WriteFile(这次是一个套接字句柄)两个beeing重叠。 问题是:因为它是asynchronous的,所以类是自动调用的,文件的缓冲区被释放,在作业完成之前, 显然,这是我的一个破碎的devise,我真的很想听听你的build议, 谢谢!

Windows设备使用C ++进行卸载

我需要以编程方式卸载所有的COM端口设备。 问题是这些Com端口设备不存在,因此完全隐藏。 也就是说,即使您想使用设备pipe理器来卸载它们,首先必须将devmgr_show_nonpresent_devices = 1添加到您的环境variables中,然后在设备pipe理器中显示隐藏的设备。 然后,您可以右键单击每个设备并卸载。 我不想卸载关联的驱动程序。 我在高级系统设置下添加这个variables,创build和保存一个新的用户variables。 我试图用devcon来做到这一点。 他们可以find与devcon findall但我不能删除他们,因为删除它们的命令失败,说明没有设备已被卸载。 此外,没有标志让它寻找非现在的设备。 如果我做一个标准devcon find , devcon find任何设备(感兴趣的)。 所以,我回到被迫弄清楚如何使用我自己的代码做到这一点,这里是我卡住的地方。 这是我到目前为止: // Get all of the devices PCTSTR enumType = "PORTS"; HDEVINFO devs = NULL; devs = SetupDiGetClassDevs(NULL,enumType,0,DIGCF_PRESENT | DIGCF_ALLCLASSES); // Loop through the devices DWORD devCount = 0; SP_DEVINFO_DATA devInfo; int enumeratingDevices = 1; devInfo.cbSize = […]

我可以在Windows RT / 8中使用弱引用作为实例variables吗?

我在我的一个项目中实现了一棵树。 每个节点都包含一个有零个或多个子节点的向量。 每个节点还包含对其父项的引用(根的父引用为nullptr)。 这是一个类定义的例子: ref class TreeNode { … TreeNode^ _parentNode; Platform::Collections::Vector<TreeNode^>^ _childNodes; } 首先,这会造成内存泄漏吗? 我假设这两个方向都是强有力的参考,因此对象的参考数将保持在零以上。 我已经看到Platform :: WeakReference的例子,但从来没有作为实例variables。 这可能吗? 语法是什么样子?