Articles of winapi

在Windows中重置打开文件对话框位置

我使用GetOpenFileName函数打开一个打开的文件对话框。 我正在做一个处理函数,将对话窗口居中在所有者窗口。 我将CDN_INITDONE通知中的对话框CDN_INITDONE 。 目前,Windows似乎记得桌面应用程序的最后一个对话框位置,并覆盖了我的对话框坐标。 如何重置最后记住的位置,以便我可以检查居中将为我的用户工作? 我想使用不同的用户或虚拟机运行testing,但这不是很方便。 不幸的是,在registry中searchmyexecutable.exe不会返回任何内容。 我正在运行Windows 8。

检索Win64例外表中的所有条目

从Win64exception堆栈走的一些更清楚的了解, 不会显示条目 ,我想能够从Win64exception表中检索所有条目 – 包括通过API调用RtlAddFunctionTable和RtlInstallFunctionTableCallback任何运行时添加。 这是可能从delphi?

GetPrivateProfileString的目的是什么?

我在C ++程序中遇到了GetPrivateProfileString这个词。 任何人都可以给我一个使用这个函数的简单解释吗? 我的页面上的代码是: GetPrivateProfileString("files", "directory", "/mediadb/files/", directory, os.path.getsize(directory), "apache")

如何使用C ++ win32 API中的pwdlastset值和maxpwdage值来获取pwdexpirydate?

我使用ADSI获得了maxpwdage值和pwdlastset值。 现在我想检查密码到期date… hr = pDomain->get_MaxPasswordAge(&ret); maxpwdage给432000 … hr = pUser->get_PasswordLastChanged(&expirationDate); pwdlastset给41176.470196759263 … 如何使用此值来实现密码失效date?

我可以使用CreateFile,但强制句柄到一个std :: ofstream?

有没有办法利用Win32 API中的文件创build标志,如FILE_FLAG_DELETE_ON_CLOSE或FILE_FLAG_WRITE_THROUGH ,如http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx所述 ,但是然后强制该句柄成std :: ofstream? 与stream媒体的接口显然是平台独立的; 我想强制一些依赖于平台的设置在“引擎盖下”。

好或坏 – SetParent()win32 API在不同的进程之间

SetParent函数需要一个子窗口和新的父窗口句柄。 当子窗口处于不同的Windows进程中时,这也似乎工作。 我曾看过一篇声称这不是官方支持的post ,但目前的文档没有提到这一点。 这是目前文件中的缺陷,还是这种行为改变? HWND WINAPI SetParent( __in HWND hWndChild, __in_opt HWND hWndNewParent );

窗口 – 如何枚举所有连接的USB设备的设备path?

我正在尝试使用SetupDi函数来枚举所有连接的USB设备的设备path。 设备path是CreateFile()中使用的path,所以我可以与设备进行通信。 但是, SetupDiGetDeviceInterface需要一个接口GUID,但我并不特别寻找特定的接口(除了所有连接的USB)。 这部分已被评论为/ * ??? * /在下面的源代码中。 尝试解决scheme: 我尝试提供GUID_DEVCLASS_UNKNOWN = {0x4d36e97e,0xe325,0x11ce,{0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18}}; 但是这抛出了一个“没有更多的接口”的错误。 我也尝试提供deviceInfoData.ClassGuid到SetupDiGetDeviceInterface,但我得到了同样的错误,如上所述,“没有更多的接口”。 问题: 是否有覆盖所有USB设备的通用接口类? (HID,通用等) 还是有一个替代function,将给我的设备的path? (由SetupDiGetDeviceInterfaceDetail返回的SP_DEVICE_INTERFACE_DETAIL_DATA结构的Instread)。 资源: HDEVINFO deviceInfoList SP_DEVINFO_DATA deviceInfoData; deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); SP_DEVICE_INTERFACE_DATA deviceInterfaceData; PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL; DWORD requiredLength = 0; char *hardwareID = 0; // Retrieve a list of all present devices deviceInfoList = SetupDiGetClassDevs(NULL, NULL, NULL, […]

我怎样才能模拟在x,y坐标,使用SendInput的双击鼠标(我khow句柄)上的双击鼠标?

我怎样才能模拟双击鼠标点击窗口(我知道这个窗口的句柄)在x,y坐标,使用SendInput?

如何“安全”删除文件夹到回收站

我正在寻找一种方法将文件夹(与子文件夹)放入一个回收站与这些条件: 它必须默默地完成 – 没有任何 Windows用户界面。 该文件夹不能永久删除。 如果它不能被放入回收站,我希望API失败。 获取像CopyFileEx这样的过程的callback例程。 到目前为止,我能够想出这个: SHFILEOPSTRUCT sfo = {0}; sfo.wFunc = FO_DELETE; sfo.pFrom = L"K:\\test del from USB\0"; //Folder on a USB stick sfo.fFlags = FOF_ALLOWUNDO | FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR | FOF_WANTNUKEWARNING; int res = SHFileOperation(&sfo); BOOL bFullSuccess = res == 0 && !sfo.fAnyOperationsAborted; 在USB闪存驱动器上的文件夹可怕地失败,即,即使FOF_ALLOWUNDO标志被永久删除。 所以不pipe我是不是做对了,或者SHFileOperation API是错误的! […]

插入字节到文件的中间(在Windows文件系统中)而不读取整个文件(使用文件分配表)?

我需要一种方法将一些文件簇插入到文件的中间以插入一些数据。 通常情况下,我只是读取整个文件并将其重新写回,但这些文件的大小是几千兆字节,只需要30分钟即可读取文件并将其重新写回。 簇的大小不会打扰我; 我基本上可以写出零到我的插入群集的结尾,它仍然会以这种文件格式工作。 如何使用Windows File API(或其他一些机制)修改文件的文件分配表,在文件中间的指定位置插入一个或多个未使用的集群?