草庐IT

设备id

全部标签

c++ - 当程序可见或最小化时进程 ID 发生变化

这个问题在这里已经有了答案:NameofprocessforactivewindowinWindows8/10(4个答案)关闭5年前。我正在尝试获取程序的进程ID(PID),但由于某些奇怪的原因,PID发生了变化。当目标程序(Alarms&Clock)可见时,它给了我错误的PID,而将程序最小化给了我正确的PID。我猜测最小化目标程序暂停它的进程,从而允许读取它。但是,即使进程正在运行,简单地读取PID也不应成为限制。有人知道我做错了什么吗?目前尝试过的方法:以管理模式运行为64位编译为32位编译这是描述问题的一段有效的、简洁的代码:#include#include#includein

windows - 在 Windows 中不使用盘符访问 USB 设备

是否可以在不使用Windows分配的驱动器盘符的情况下访问USB驱动器或闪存卡?我以为我在某处读到可以使用VolumeGUID或其他东西,但是一旦我识别它,是否允许我在资源管理器中打开它?这对我来说很重要,因为可能没有足够的驱动器号来处理驱动器的数量,所以我希望仍然能够访问它们。 最佳答案 如果您使用的是NTFS,您可以在Windows中创建“卷安装点”。(类似于*NIX,如果您使用过的话)。挂载点使文件系统(比如C盘)上的文件夹指向另一个卷,因此“C:\usb1”实际上可能包含USB驱动器的内容。Microsoft站点上有几篇文章

windows - 设备驱动程序 IRQL 和线程/上下文切换

我是Windows设备驱动程序编程的新手。我知道某些操作只能在IRQLPASSIVE_LEVEL执行。例如,Microsoft有关于如何从内核驱动程序写入文件的示例代码:if(KeGetCurrentIrql()!=PASSIVE_LEVEL)returnSTATUS_INVALID_DEVICE_STATE;Status=ZwCreateFile(...);我的问题是:是什么阻止了在上面的KeGetCurrentIrql()检查之后引发IRQL?假设发生上下文或线程切换,当它返回到我的驱动程序时,IRQL会不会突然变为DISPATCH_LEVEL,然后导致系统崩溃?如果这不可能,那么

c# - 获取音频设备列表并使用 C# 选择一个

您好,我正在使用C#在Windows中创建一个基于桌面的应用程序。我必须在2个不同的组合框中显示所有可用音频和视频设备的列表。从组合框中选择任何设备都会将该特定设备设置为默认设备我正在使用WMI。获取可用音频设备列表的代码:ManagementObjectSearchermo=newManagementObjectSearcher("select*fromWin32_SoundDevice");foreach(ManagementObjectsoundDeviceinmo.Get()){StringdeviceId=soundDevice.GetPropertyValue("Devic

C++ 从线程 ID 列表中查找 GUI 线程

我正在用C++构建一个应用程序,它使用WindowsHook来控制第三方程序。我正在制作的程序是一个教程程序,用于展示如何使用这些第三方程序。我可以找到我想要挂接的第三方程序的进程ID,然后我可以查询这个进程ID以找到一个线程ID列表,用作WindowsAPI函数SetWindowsHookEx的参数。但是,我担心从正在运行的进程的线程ID列表中,我会挂接到一个可能随时结束的线程。理想情况下,我想连接到运行主gui的线程,这很可能是最长生命的线程之一(即使它不是最长生命的线程,教程程序也被设计为与GUI一起工作所以它仍然是理想的)。如果第三方应用程序有多个图形用户界面,那么我想找到主图

c++ - TerminateProcess 不适用于已验证的进程 ID

我正在开发应该终止具有给定名称的进程的应用程序。我使用的操作系统是Windows7。问题是,对于任务管理器中列出的所有具有非空白用户名字段的进程,它工作正常。但是,当一个进程的用户名为空时,即使任务管理器也无法将其终止。谁能告诉我为什么有些进程没有用户名。在我的例子中,它是csrss.exewinlogon.exe,不幸的是我想杀死一个旧应用程序。我检查的所有其他进程都有正确的用户名。有什么方法可以将用户名添加到现有流程吗?任何人都可以推荐我更好的解决方案来杀死应用程序而不是终止进程()? 最佳答案 无法终止这些进程,因为您没有这样

c++ - 什么会导致 Windows 发送两次 ID_HELP 命令

在我的应用程序中,我覆盖了CFrameWnd::OnHelp以打开一个word文档而不是我们的旧.hlp文件。但是,当我按F1时,我注意到该函数被执行了两次。我检查了堆栈,发现AfxWndProcBase正在接收命令0x1E146,然后CWnd::OnCommand将其截断为0xE146调用CFrameWnd::OnCmdMsg时,0xE146是ID_HELP命令。紧接着,AfxWndProcBase正在接收命令0xE146,并再次运行帮助命令。经过一些实验后,我发现在处理第一条消息时,正在接收和处理第二条消息在对AfxMessageBox的调用中。处理程序在这里:voidCMainF

.net - 如何在 Windows CE 设备上安装 .Net Compact Framework

我有一台在WindowsCE上运行的掌上电脑/扫描仪。我在上面放了一个C#程序,但是当我尝试运行它时,出现一个错误,提示我需要安装.NETCompactFrameworkv4.0。我已经尝试下载我在网上找到的文件并在袖珍PC上运行它,但似乎没有任何效果。任何帮助将非常感激。谢谢! 最佳答案 .NETCF的最新版本是3.9版,仅适用于运行WindowsEmbeddedCompact2013的设备。在旧版本上,您可以安装.NETCF3.5或2.0(CE4.2支持3.5,4.0IRRC支持2.0),方法是从MS网站下载文件或仅从您的开发P

windows - 如何根据子线程的线程 ID 查找进程的 pid?

给定一个线程的线程ID,我需要找到拥有它的进程的pid。我想通过toolhelp库枚举所有线程并使用THREADENTRY32的“th32OwnerProcessID”成员,但我正在寻找更简单(更短)的方法。我找不到直接的API来执行此操作,也无法在StackOverflow中找到答案。提前致谢。 最佳答案 您需要两个WinAPI函数。使用OpenThread获取线程的句柄|,它以线程ID作为参数。使用GetProcessIdOfThread获取进程ID,它将句柄作为参数。在尝试使用它们之前,您需要阅读有关其使用限制的链接文档。

python - 使用 Windows 在 python 中获取友好的设备名称

我想使用设备GUID获取网络接口(interface)名称。我有一个使用"ipconfig/all"解析接口(interface)名称的答案但是"ipconfig/all"非常复杂...所以我想成为Gettingfriendlydevicenamesinpython但这只显示usb驱动程序..我可以找到GUID(实际上我不知道)后面的代码:importnetifacesasnix=ni.interfaces()printx这个节目是这样的['{CDC97813-CC28-4260-BA1E-F0CE3081DEC7}']我想转换友好的设备名称,如“本地连接”