草庐IT

c++ - 使用 C++ 删除 WMI 实例

我找到了一些使用C#和VBS删除WMI实例的示例,但是我需要用C++实现它。我的示例代码:CoInitialize(NULL);HRESULThRes;//ObtaintheinitiallocatortoWMICComPtrpLoc=NULL;hRes=CoCreateInstance(CLSID_WbemLocator,NULL,CLSCTX_INPROC_SERVER,IID_IWbemLocator,(LPVOID*)&pLoc);if(FAILED(hRes))return1;//ConnecttoWMIthroughtheIWbemLocator::ConnectServe

c++ - `NumberOfConcurrentThreads`中参数 `CreateIoCompletionPort`如何使用

查看MSDNdocumentation对于CreateIoCompletionPort我们读到:NumberOfConcurrentThreads[in]ThemaximumnumberofthreadsthattheoperatingsystemcanallowtoconcurrentlyprocessI/OcompletionpacketsfortheI/Ocompletionport.ThisparameterisignorediftheExistingCompletionPortparameterisnotNULL.Ifthisparameteriszero,thesystem

python - win32gui.FindWindow 找不到窗口

我正在尝试使用Pywin32将击键发送到不活动的TeraTerm窗口。This回答让我写了这段代码:importwin32guiimportwin32conimportwin32apihwndMain=win32gui.FindWindow("TeraTermVT",None)printhwndMainhwndChild=win32gui.GetWindow(hwndMain,win32con.GW_CHILD)win32api.PostMessage(hwndChild,win32con.WM_CHAR,0x5b,0)但是:hwndMain=win32gui.FindWindow("

c - GetOverlappedResult(bWait=TRUE) 与 WaitForSingleObject() 对于重叠 I/O

当我在Win32api上以OVERLAPPED方式打开和读取文件时,我有几种方法来完成IO请求,包括使用等待文件句柄(或重叠结构中的事件)WaitForSingleObjectGetOverlappedResult和bWait=TRUE这两个函数似乎具有相同的效果:线程停止直到句柄或事件发出信号,这意味着数据被放置在提供给ReadFile的缓冲区中。那么,有什么区别呢?为什么我需要GetOverlappedResult? 最佳答案 我完全同意RemusRusanuanswer.也改为创建自己的IOCP和线程池,它们将在此IOCP上监

c++ - 从 Win32 Api C++ 获取操作系统构建版本

我正在尝试查找WindowsServer2016机器的构建版本,例如RS1或RS3。有一个API可以执行此操作-GetVersionEx()-但现在已弃用。MSDN说使用VersionHelperFunctions相反。我想要构建版本,例如:RS1的1607。是否有API来获取此信息? 最佳答案 选项0:(根据RbMm)使用驱动程序开发工具包中的[RtlGetVersion]。选项1:[已更新]获取系统DLL(如kernel32.dll)的版本号。MSDN曾经赞扬这种方法,说:Toobtainthefullversionnumber

c++ - 查明系统中是否存在 DLL 的最佳方法

我目前正在使用LoadLibrary和FreeLibrary函数来检查运行我的应用程序的系统中是否存在dll(mfplat.dll)。我的要求只是检查系统中是否存在dll,我不需要调用dll中的任何函数。有没有更快的方法来检查相同的? 最佳答案 您可以使用LoadLibraryEx()并为dwFlags参数设置LOAD_LIBRARY_AS_DATAFILE位。来自MSDN:Ifthisvalueisused,thesystemmapsthefileintothecallingprocess'svirtualaddressspace

windows - 线程等待原因

我一直在使用在以下帖子中找到的代码:Howtogetthreadstate(e.g.suspended),memory+CPUusage,starttime,priority,etc我正在检查线程状态,下面的枚举描述了线程“等待”状态的原因-enumKWAIT_REASON{Executive,FreePage,PageIn,PoolAllocation,DelayExecution,Suspended,UserRequest,WrExecutive,WrFreePage,WrPageIn,WrPoolAllocation,WrDelayExecution,WrSuspended,Wr

c++ - 通过从 C/C++ 调用 Windows API 函数生成独立的汇编子例程

我做了一些shellcode执行的实验,我在其中编写了自己的shellcode,将其写入我希望它执行的目标程序的内存中,然后使用新线程或线程劫持来执行它。这很好用,但是手动编写shellcode相当耗时,因此我正在寻找一种能够用C或C++编写函数的方法,该函数在编译后将完全独立。这意味着任何编译后的函数都应该可以独立执行。这样我就可以直接将它写入我的目标程序中,例如使用WriteProcessMemory准备执行。因此,推送shellcode将使用如下代码完成:#include#includeusingnamespacestd;BOOLMakeABeep(){returnBeep(0x

windows - 如何以编程方式在 Windows 10 的特定监视器上启动应用程序?

我想编写一个程序,有时需要在Windows10版本1803(2018年4月更新)上启动另一个应用程序(主要是SumatraPDF)的进程。这些应用程序应该在特定的监视器上启动。我还希望能够在需要时关闭进程。首选语言是C#和Java,但我们将不胜感激。编辑我尝试使用ShellExecuteExW函数suggestedbyIInspectable直接在C++代码中,但它不起作用,因为应用程序出现在主监视器上。我肯定犯了一个错误,因为我对WinAPI完全陌生并且对C++知之甚少。#includeHMONITORmonitors[2];//Asit'sonlyatestandIhavecurr

windows - TaskDialog 显示中文文本而不是 en-us

我们最近更新了一个内部工具,以使用供应商的在线工具代替我们以前的自制功能。此更新中的一项任务是在用户单击用于执行操作的按钮时将他们重定向到网站。我想直接在消息框上嵌入一个超链接,因为输入URL是非常1994年的;但是MsgBox不能那样做。有人告诉我TaskDialog可以,但它显示的是一堆中文字符,而不是我输入的文本。我不会说中文,而且我不知道我安装了中文。不管怎样,这个对话框需要显示我输入的英文文本。请帮忙。这是我的预期(大致):下面是我得到的:这是我用来生成上述内容的代码:PublicClassForm1'[DllImport("comctl32.dll",CharSet=Cha