草庐IT

windows - 用于检测不死进程的 NtQueryInformationProcess 替代方案?

我想检测何时有人在不通知调试器的情况下终止暂停的调试进程。(例如,到达控制台应用程序中的断点,并关闭应用程序的控制台窗口。)进程进入类似僵尸的状态,并且在调试器释放它之前无法进一步交互。当通过NtQueryInformationProcess收集有关进程的信息时,此状态似乎设置了PROCESS_EXTENDED_BASIC_INFORMATION::IsProcessDeleting标志,但标志、结构和函数在MSDN上实际上未记录并标记为“请勿使用”。测试这个标志可靠吗?我可以使用更好的“官方”API吗?(是的,我知道IsProcessDeleting也会在进程正常关闭(惊讶,惊喜)时

c++ - 检测正在插入的 USB 驱动器 - Windows 服务

我正在尝试检测插入到Windows服务中的USB磁盘驱动器,我已将其作为普通Windows应用程序完成。问题是以下代码不适用于卷。注册设备通知:DEV_BROADCAST_DEVICEINTERFACEnotificationFilter;HDEVNOTIFYhDeviceNotify=NULL;::ZeroMemory(¬ificationFilter,sizeof(notificationFilter));notificationFilter.dbcc_size=sizeof(DEV_BROADCAST_DEVICEINTERFACE);notificationFilter.

windows - 创建服务 (SERVICE_ACCEPT_SESSIONCHANGE)

我正在尝试按照以下链接中记录的示例创建服务:http://msdn.microsoft.com/en-us/library/bb540475(v=VS.85).aspx我感兴趣的是能够捕获用户“锁定”和“解锁”工作站事件。使用提供的示例中的代码,我修改了以下内容:第15行:原文:VOIDWINAPISvcCtrlHandler(DWORD);修改:DWORDWINAPISvcCtrlHandler(DWORD,DWORD,LPVOID,LPVOID);第141行:原文:gSvcStatusHandle=RegisterServiceCtrlHandler(SVCNAME,SvcCtrl

windows - 如何确定哪些任务栏应用程序/窗口正在请求用户注意

我想知道如何从Windows任务栏中获取需要用户关注的窗口列表。需要注意的窗口在Windows任务栏中显示为闪烁的橙色。未聚焦的MSNMessenger对话窗口就是这种行为的一个很好的例子:一旦远程用户发送实例消息,它们就会变成橙色。我的代码针对Windows7平台,但在较旧的Windows操作系统上工作也不错。 最佳答案 我相信HSHELL_FLASH您会通过调用RegisterShellHookWindow得到通知就是你所追求的。 关于windows-如何确定哪些任务栏应用程序/窗口

c++ - 如何获取卷 GUID

我在C++中使用win32api。我想知道如何使用“设备路径”获取卷GUID。我的设备是这样的:\\?\usb#vid_04f2&pid_0111#5&39fe81e&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}谢谢。 最佳答案 这将是具有设备实例IDusb\VID_04f2&PID_0111\5&39fe81e&0&2的设备。那可能是一个大容量存储设备,又名磁盘。现在,您遇到的问题是大容量存储设备实际上没有驱动器号;它是该磁盘上具有驱动器号的卷。如果有两个分区,则单个USB大容量存储设备可能

c++ - 与遗留 TCHAR 代码接口(interface)的正确样式

我正在修改广泛使用TCHAR的其他人的代码。在我的代码中只使用std::wstring是否更好?wstring应该等同于widechar平台上的TString,所以我看不出有什么问题。理由是,使用原始wstring比支持TCHAR更容易……例如,使用boost:wformat。下一个维护者会更清楚哪种风格?我自己浪费了几个小时试图理解字符串的复杂性,似乎只使用wstring就会减少你需要理解的一半内容。typedefstd::basic_stringTString;//onwinxp,TCHARresolvestowchar_ttypedefbasic_string,allocator

windows - 资源脚本 (.rc) 中的主窗口

我不确定您可以(或应该)对*.rc文件做什么。大多数Win32示例代码(包括VisualStudio模板)在WinMain中以编程方式创建主窗口。我可以在资源脚本中创建一个对话框,然后在WinMain中显示它,但我不确定这是否是最好的主意,因为对话框的处理方式与窗口不同。有没有一种方法可以通过资源脚本将控件放在主窗口中,或者我应该将其创建为对话框? 最佳答案 唯一将控件放置在窗口上的Win32API是CreateDialog[Indirect][Ex]函数族。创建对话框是应用程序的根窗口的做法自16位Windows以来一直很常见,甚

windows - 第三方 IPC 调用 Chromium 以捕获/过滤流量

我想为Chromium实现一个类似AdBlock/NoScript的网络级工具,但ChromiumExtensionAPI在控制原始请求数据方面无能为力。所以这里是想法:捕获所有HTTP查询,如果URL或MIME匹配则取消一个。手工制作数据包,例如将header插入HTTP查询。这可以通过运行第三方客户端来实现吗IPCcalls到Chrome?一小段示例代码会很棒!(注意:目前安全性不是问题,因为我只是出于个人兴趣尝试一下,而不是为了公开分发。所以它可能会破坏沙箱机制。) 最佳答案 不,它不能。Chromium网络堆栈不支持这种级别

c - 在 Visual Studio 中设置 FILE_ATTRIBUTE_DEVICE

我想知道是否可以在VisualC++中调用CreateFile函数来创建具有属性FILE_ATTRIBUTE_DEVICE(0x00000040十六进制,64十进制)的文件。根据MSDNAPI,FILE_ATTRIBUTE_DEVICE是保留的,因此我不能使用它,但我知道一定有某种方法可以创建具有此类属性的文件。我必须做什么才能做到这一点?是否有其他API调用,或者我是否需要创建一个新结构?谢谢 最佳答案 该标志的存在是为了识别代表设备而不是文件的句柄。例如,使用CreateFile打开\\.\C:返回驱动器device的句柄,而不

windows - 为什么讲述人不将自己报告为 Windows 的屏幕阅读器?

我正在尝试检测我的应用程序是否附加了屏幕阅读器,以便我可以改善盲人和弱视用户的体验。我正在使用此win32api(http://msdn.microsoft.com/en-us/library/ms724947%28VS.85%29.aspx),并将SPI_GETSCREENREADER指定为uiAction。调用看起来像这样:intiAction=70;//SPI_GETSCREENREADERconstant;intiParam=0;intiUpdate=0;boolresult=false;boolbReturn=SystemParametersInfo(iAction,iPar