草庐IT

windows - 如何列出 Windows 域中的所有用户和组?

如何通过win32API列出windows域的所有用户和组?目前我使用net.exe命令,但这对特殊字符(如变音符号)的编码有问题。我希望一个windowsAPI可以处理unicode字符。 最佳答案 两者都可以使用IDirectorySearch接口(interface)MSDN在以下链接中向您展示了如何操作:枚举用户:http://msdn.microsoft.com/en-us/library/ms676307(v=vs.85).aspx枚举组:http://msdn.microsoft.com/en-us/library/m

windows - 如何使用winapi获取列表框中项目的矩形

我使用的是VC6.0。当我右键单击列表框的项目时,我正在尝试编程以显示上下文菜单。但是现在弹出菜单可以显示在ListBox的rect中的任何位置,因为我只能获取ListBox的rect,而我不知道如何获取item的rect。我知道有一个宏ListView_GetSubItemRect似乎可以获取ListView项目的矩形。ListBox是否有类似的方法,或者有没有办法获取ListBox项目的宽度和高度,以便我可以计算矩形?我没有在msdn和google上找到一些有用的信息?谁能给我一些想法?谢谢。我当前的代码:voidMy_OnContextMenu(HWNDhwnd,HWNDhwnd

windows - 使用GDI显示图像的红色 channel

我有24位RGB图像。我只想使用GDI在显示器上显示红色channel。我应该为此使用调色板吗?使用什么策略?请适本地指导我。 最佳答案 最快的方法是使用BitBlt。创建另一个与RGB图像大小相同的24位位图。用纯红色填充它。然后使用BitBlt和SRCAND。如documentation中所述这个CombinesthecolorsofthesourceanddestinationrectanglesbyusingtheBooleanANDoperator. 关于windows-使用G

windows - 我怎么知道下一个 SHGetFileInfo (SHGFI_ICON) 调用是否会很慢(对于 exe 文件等)?

我正在写一个文件管理器。当它打开时,用户界面会卡住一段时间。我分析了它,发现慢函数是SHGetFileInfo。SHFILEINFOshinfo;SHGetFileInfo(FullPath.c_str(),NULL,&shinfo,sizeof(shinfo),SHGFI_ICON|SHGFI_LARGEICON))此外,即使有数百个文件夹,该程序运行速度也足够快,但当至少有一个可执行文件时,它会变得非常慢。我认为从这些文件加载​​图标是一项繁重的任务,因为必须加载资源。我看到当Windows资源管理器加载文件夹时,除可执行文件外的所有图标都是正确的,并且可执行文件具有其默认图标(命

Windows 权限,在不是管理员时获取 .dll 的句柄,不确定

好的,我正在学习WindowsAPI以及如何创建线程/进程和获得调试权限等。非常新,如果这是一个愚蠢的问题,我深表歉意。无论如何,我正在创建一个.dll注入(inject)器来玩,并且已经成功地能够注入(inject)32位和64位进程,包括通过注入(inject)我的.dll文件的explorer.exe。但是,我试图在标准用户模式下对此进行测试,但在弄清楚如何进行时遇到了问题。现在我正在为.dll和injector.exe编译为x64。我正在尝试注入(inject)x64进程,主要是explorer.exe(适用于管理员)。使用VisualStudio2012,进行了一些优化,没有

使用 Windows API 比较线程 ID

我正在使用WindowsAPI线程,我想比较线程ID。首先,我用CreateThread()创建了一个线程并存储我从函数中获取的句柄(HANDLE)和ID(LPDWORD)。然后我使用GetCurrentThread()从创建的线程中获取句柄和ID和GetThreadId().对于两个句柄和两个ID,我总是得到不同的值。有没有办法以类似于pthread的方式比较线程?我这样做是为了作为确认正确执行的调试选项。我总是从其他库(pthread.h、threads.h)但不是从Windowsapi得到正确的结果。这不是一个关键问题,但我想学习winapi中的程序

c++ - #ifdef Q_OS_WIN32,但 windows 函数未在此范围内声明

我有以下代码:#ifdefQ_OS_WIN32Sleep(25);#endif为Windows上的Qt编写。我知道这段代码以前编译过,但现在由于某种原因它说Sleep没有在此范围内声明。必须有一些方法可以解决这个问题而不必添加#include"windows.h"任何与此有关的经验/建议都会很棒!! 最佳答案 Theremustbesomewayaroundthiswithouthavingtoadd官方MSDNdocumentationsays你需要包含它,所以请不要避免它。最好始终对您的依赖项明确说明,以避免隐藏的依赖项问题,当

c - 获取内核对象窗口列表

嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)

c++ - 通过 Winapi 以编程方式编辑 Windows 审核策略时出现权限错误

简短版本:我正在尝试编写一个C++程序,以在Windows8上启用进程创建日志记录。我知道这可以使用auditpol.exe来完成,但我想以编程方式进行。我的研究表明,唯一的方法是通过WindowsAPI命令AuditSetSystemPolicy,所以我写了一个调用这个函数的C++程序(见下文)。但是,该程序因权限问题而失败(错误代码1314)。我以管理员身份运行VisualStudio,我尝试在以管理员身份运行的命令提示符下执行该程序,但我仍然遇到错误。长版:以下程序采用GUIDstringdescribingtheProcessCreationSubcategory我想开始审核并

c++ - 在 CreateProcess 之后调用 GetModuleFileNameEx 时出现 ERROR_INVALID_HANDLE

成功调用CreateProcess后,我尝试使用GetModuleFileNameEx获取创建的进程的路径(lpApplicationName和lpCommandLine参数可以变化或为空,因此在这种情况下它们不可靠)。问题是GetModuleFileNameEx失败并出现错误6(ERROR_INVALID_HANDLE),从而使其缓冲区中包含无效数据。我无法理解原因,因为CreateProcess成功并且进程句柄应该已正确保存在pi.hProcess中。希望您能有所启发,在此先感谢您!编辑:更新:我注意到删除CREATE_SUSPENDED也可以解决此问题,但我需要设置该标志。我该怎