我想枚举给定进程的子窗口以检查对话窗口。由于我不会在这里详述的原因,如果它找到任何东西,我想随后终止该应用程序。运行独立应用程序来执行此操作没有任何问题。该应用程序可以(通过一些P/Invoke调用)访问进程的窗口,我随后可以终止该应用程序。但是,运行与服务相同的代码并不能按预期工作。似乎运行该服务的用户无法与桌面交互(这是我只能看到本地系统帐户的设置)。有人知道解决这个问题的方法吗?我可以从Windows服务枚举进程的窗口吗?仅供引用——我正在使用的代码(至少是改编版)可在此处获得:https://stackoverflow.com/a/1405088/2115261
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我想为我们的Web测试服务器编写一个实用程序,它会终止所有具有“始终在最前面”窗口的进程。我猜它是窗口样式WS_EX_TOPMOST,但是,我不是100%确定。C#有没有办法:枚举所有“总在最前面”的窗口并检索相应的进程?
我正在研究通过lpt端口控制一些设备的项目。我正在使用inpout32.dll获取对端口的原始访问权限,现在尝试枚举所有可用的LPT端口并获取它们的I/O范围。我现在可以检查设备管理器了,但是有没有更自动化的方法?现在我正在尝试使用WMI一些示例代码,这些代码应该可以工作但没有SetwmiService=GetObject("winmgmts:\\.\root\cimv2")Setparallelports=wmiService.ExecQuery("SELECT*FROMWin32_ParallelPort")ForEachportInparallelportsq="SELECT*F
publicenumeVisualType{None=0,Torch=1,Rune01,Rune02,Rune03,FireRed01,LaserBlackWhiteLeft,LaserBlackWhiteRight,LaserBlueRedLeft,LaserBlueRedRight,Wheel01,Wheel01a,Wheel02,BlinkingStar,MovingPillar}publicclassEnumTypeConverter:TypeConverter{publicoverrideboolGetStandardValuesSupported(ITypeDescript
是否有Win32API方法来获取所有打开窗口的枚举?似乎一定是不确定从哪里开始寻找。 最佳答案 EnumWindows()是为了那个。您调用它并提供回调。它为每个找到的窗口调用回调并将句柄传递给该窗口。然后您可以使用该句柄查询窗口参数并决定您是否对它感兴趣或对其执行一些操作。 关于c-枚举桌面上的所有窗口句柄,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1032933/
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我对C#有疑问。如何在C#中用计算机找到的那些无线网络填充列表框?
如何找到可用CD/DVD驱动器的盘符?我在Windows上使用Python2.5.4。 最佳答案 使用win32api你可以获得驱动器列表并使用GetDriveType你可以检查它是什么类型的驱动器,你可以通过'PythonforWindowsExtensions'访问win32api或ctypes模块这是一个使用ctypes的例子:importstringfromctypesimportwindlldriveTypes=['DRIVE_UNKNOWN','DRIVE_NO_ROOT_DIR','DRIVE_REMOVABLE','
我正在尝试根据该想法实现枚举列表这个答案。我的目标是能够在我的域内使用枚举,并在保存和从数据库中检索它时将其转换为类实例。使用它的代码(下面的来源),我得到了一个DbUpdateException带有消息:违反主要密钥约束“pk_dbo.faculty”。无法在对象“dbo.faculty”中插入重复键。重复的键值为(0)。该语句已终止。这是可以预期的,因为我正在新的教师实例。为了解决它,我尝试了很少问题上这个,没有成功。他们建议将实体附加或设置其状态保持不变。所以我尝试了覆盖SaveChanges()并使用:ChangeTracker.Entries().ToList().ForEach(x
我是Powershell脚本的新手。有人可以建议在powershell中引用C++头文件中定义的枚举/常量的简单方法吗?提前致谢。 最佳答案 没有像使用.NET枚举那样直接的方法。您要么必须:自己解析头文件,找到值。合成一个C++/CLIcpp文件,该文件执行头文件的#include并公开通过.NET类型的枚举/常量。首先,您可以使用Get-Content逐行读取头文件,并使用-match和/或Select-String进行正则表达式搜索。对于第二个(我会走的路线),您将需要使用带有/clr开关的cl.exe来生成一个DLL,然后可
这里有一个简单的问题让我抓狂。我有一个用C#编写的Windows服务,它应该可以在XP、Vista和7上运行,并且能够枚举当前用户桌面(如果有)的窗口以进行监视。到目前为止:我使用EnumDesktopWindows将IntPtr.Zero作为hdesktop参数传递,因为我没有用户桌面的句柄,这只会导致在枚举分配给服务(Session0\Winsta0)的特殊桌面中存在的少数窗口我试过EnumWindows,结果和上面一样!我尝试使用GetThreadDesktopAPI获取已知进程的桌面,传递explorer.exe线程之一的ID但它返回0,所以我无法获取它的桌面或任何其他线程。我