草庐IT

windows - 如何枚举 Windows LPT 端口及其 I/O 范围?

我正在研究通过lpt端口控制一些设备的项目。我正在使用inpout32.dll获取对端口的原始访问权限,现在尝试枚举所有可用的LPT端口并获取它们的I/O范围。我现在可以检查设备管理器了,但是有没有更自动化的方法?现在我正在尝试使用WMI一些示例代码,这些代码应该可以工作但没有SetwmiService=GetObject("winmgmts:\\.\root\cimv2")Setparallelports=wmiService.ExecQuery("SELECT*FROMWin32_ParallelPort")ForEachportInparallelportsq="SELECT*F

javascript - NodeJS、Windows、wmic 标准输入

我在NodeJS中遇到Windows程序WMIC.exe(用于查询WindowsManagementInstrumentation)的问题。我可以生成一个wmic.exe进程,但它不会输出任何内容或接受任何输入。但是,如果我将stdin设置为null,它将正确运行并且我将收到输出。varspawn=require('child_process').spawn;varwmic=spawn('wmic',[],{stdio:['ignore']});wmic.stdout.on('data',function(data){console.log('Datareceived:'+data);

windows - WQL 中的 IN 运算符

我需要编写一个WMI查询,我需要在其中检查某个值是否等于列表中的值之一,但我没有发现WQL像SQL一样支持IN运算符。例如:SELECT*FROMDeviceWHERE__CLASSIN("Device1","Device20").这个查询的写法有哪些?谢谢。 最佳答案 WMI使用WQL语言,它只是SQL语言的一个子集,不包括IN运算符。所以你可以使用OR运算符重写句子,就像这样SELECT*FROMWin32_LogicalDiskWhere(DriveType=3)or(DriveType=5)或使用您的WQL语句。SELECT

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

windows - 在 Windows XP/7 中获取 EDID 的 Win32 代码

我找到了this页面并且无法从中获取任何有用的信息(它在注册表中搜索某些内容但从未找到它并进入无限循环)。作为thisquestionregardinggettingthemonitorserialUID("EDIDinformation")问我想要相同的信息,但从Win32C代码(或C/C++DDK代码,或其他)而不是Linux的角度来看。 最佳答案 WMI不支持WindowsXP中的监视器类。记录在案的获取EDID的方法过去是——现在仍然是——使用SetupAPI。更长的调查和VC++代码示例areavailablehere.

c++ - 在 Windows 7/8/10 Win32 C++ 中检测/识别显示器连接的端口(HDMI、其他)

我能够检测到连接到我系统的所有显示器。我能够使用以下WindowsAPI调用获得很多关于它们的相关信息:EnumDisplayMonitorsGetMonitorInfoEnumDisplayDevices我正在开发的系统是一个带有2个显示器的AIO(一体机)。它有一个我可以连接的外部HDMI输出和外部显示器。然后,通过端口复制器,我可以连接第四台显示器。所有显示器都在扩展我的桌面,而且它们都工作正常。我的任务是检测通过HDMI端口连接的显示器。我能够使用上述API提取的显示器信息没有提供任何具体信息,我可以通过这些信息检测端口类型(例如HDMI或USB)。有人知道要使用什么API吗?

c# - 桌面添加新窗口时是否有触发事件

我想知道当桌面上出现/出现新窗口时是否触发了任何事件。我愿意使用COM、WMI、WinApis、UIAutomation或任何其他方法,但选择的语言是C#。实际需求:一个进程有1个主窗口和许多其他窗口。例如,其中一个窗口的类名是X(我使用pinvoke获得了此信息)。现在,只要进程中有通知,这个窗口就会弹出几次。我不想显示此窗口。我没有对该进程的代码访问权限,因此我可以禁用该窗口。那么有什么方法可以让我获得一个事件或任何其他机制来跟踪桌面,并且每当类名X的窗口出现/即将出现时它就会隐藏它。如果我对这个问题不清楚,请告诉我。谢谢编辑:Simon的回答非常好。我试过了,并且能够获得除通知/

c++ - 使用 C++ 在 Windows 上设置风扇速度

我从Example:CallingaProviderMethod复制了这段代码,它现在修改它应该改变CPU风扇速度:#define_WIN32_DCOM#includeusingnamespacestd;#include#include#pragmacomment(lib,"wbemuuid.lib")intmain(intiArgCnt,char**argv){if(IsDebuggerPresent())coutConnectServer(_bstr_t(L"ROOT\\CIMV2"),NULL,NULL,0,NULL,0,0,&pSvc);if(FAILED(hres)){cou

windows - 使用 WMI 查询扩展文件属性

是否有WMI命名空间和类可用于获取文件的扩展属性,如Owner、Author、Title、Subject、Category、Comments?请提出建议。 最佳答案 据我所知,WMI不提供对扩展文件属性的访问。要获得它们,您可以使用Folder.GetDetailsOf方法(使用脚本语言,如PowerShell或VBScript)或IShellDetails.GetDetailsOf方法(在C++等编译语言中)。看看thismyanswer举个例子。*不确定我在区分语言时使用了正确的术语,所以请耐心等待并随时更正。

windows - 使用名称通配符配置 Windows 服务

需要帮助,我需要使用一个带通配符的命令来更改Windows服务的“启动类型”状态。我需要一个命令来更改名称为Citrix*的所有服务的启动类型。我已经在使用以下命令来停止服务:wmic服务,其中“displaynamelike'Citrix%'”调用StopService但我找不到任何使用通配符从命令行配置服务的内容。 最佳答案 wmicserviceset/?表示可写属性不适用于此别名或类。要设置Windows服务的启动模式属性,请调用ChangeStartModemethodoftheWin32_Serviceclass.Sta