草庐IT

c++ - 如何获取具有可见窗口的任何进程的名称 - WinAPI?

我正在尝试获取具有可见窗口的进程的名称。例如,如果我打开了Chrome,我想获取字符串“chrome.exe”,但我只能使用下面的代码获取初始值“unknown”。我读到它可能是一个访问权限问题,你能建议我如何更改它们以获得进程名称吗?DWORDidProc=0;//pointertotheprocesswhichcreatedthewindowDWORDidThread=GetWindowThreadProcessId(Wnd->get_handle(),&idProc);Wnd->set_pid(idThread);//Wndisanobjectofaclassicreated,t

windows - 如何知道平板电脑是 'Laptop'还是 'Tablet'模式

我正在为DELLTX2编写一个支持触摸的应用程序,对于文本输入,我需要知道TablePC是处于“笔记本电脑”还是“平板电脑”模式,然后更改文本输入模式。在'Latop'模式下,不要调用虚拟键盘,反之亦然。但我没有从MS网站和谷歌找到任何有用的信息。有没有WindowsAPI?提前致谢。 最佳答案 您没有指定语言,因此这是我最近写的一个单元的链接http://www.delphigeist.com/2011/02/laptop-specific-functions.html检查盖子是否存在,这是笔记本电脑特有的,据我所知平板电脑没有盖

windows - CFileDialog - 选定的过滤器和 "Hint"显示所有文件

我有CFileDialog并为其设置了过滤器(文本文件*.txt)。当它打开时,我只看到TXT文件,没错。但!当我在文件名中输入文本时,提示(在文件名字段下)显示所有文件(具有任何扩展名的文件)。某些标志可以改变这种行为吗?我希望强制提示仅显示TXT文件。...CFileDialogf(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_NOCHANGEDIR,_T("Textfiles(*.txt)|*.txt|Allfiles(*.*)|*.*||"));if(f.DoModal()!=IDOK)return;... 最佳答案

windows - 如何在 win32 进程中显示 'memory used' 的百分比?

我知道内存使用在Windows上是一个非常复杂的问题。我正在尝试为一个大型应用程序编写一个UI控件,该控件显示“已用内存百分比”数字,以便向用户表明可能是时候清理一些内存了,或者更有可能重新启动应用。一个实现使用MEMORYSTATUSEX的ullAvailVirtual作为基础,然后使用HeapWalk()遍历进程堆以寻找额外的空闲内存。HeapWalk()步骤是必需的,因为我们注意到在运行一段时间后,由堆分配和释放的内存从未返回并由ullAvailVirtual数字报告。经过数小时的密集工作,ullAvailVirtual数字不再准确报告可用内存量。然而,这种方法被证明并不理想,因

winapi - Win32/.net 是否提供关键 'chord' 功能?

一些MS应用程序支持和弦的概念,例如CTRL+X,Y表示“按住CTRL,按X,然后按Y”。这是他们(和其他公司)实现的定制产品,还是内置于任何API中?如果能够基于和弦设置事件处理程序或加速器而不是编写代码来执行此操作,那就太好了。 最佳答案 “加速器”支持普通按键以及Shift、Ctrl、Alt的任意组合。对于您的要求,我认为您需要自己处理WM_KEYDOWN和WM_KEYUP。 关于winapi-Win32/.net是否提供关键'chord'功能?,我们在StackOverflow上

c++ - 第一次调用 FindWindowEx/EnumChildWindows 后是否缓存了控件树?

我注意到,如果您针对属于不在前台(即最小化)窗口的hWnd调用FindWindowEx或EnumChildWindows,则它们不会报告任何children。另一方面,如果我首先对正在查询的窗口调用SetForegroundWindow,然后调用FindWindowEx或EnumChildWindows,它们会报告所有子项.即使我感兴趣的窗口不在前台,下一次调用也会报告所有子项。它几乎是在第一次调用后进行某种缓存? 最佳答案 这是您自己的应用程序中的一个窗口,还是您正在调查第三方应用程序的功能?我猜应用程序只会在它第一次进入前台时创

windows - 从 Windows 窗体读取文本

如果不是出于学术练习的其他原因,我希望能够阅读写入Windows应用程序表单的文本。该程序似乎是用非.NET编写的,但在.NET术语中,我认为您会将程序描述为具有带有标签的表单,我想从该标签中读取文本。我相信我可以看到使用User32!TextOut(以及其他区域的User32!DrawString)函数将文本写入屏幕。但是,如果我不必Hook该函数来获取我正在寻找的信息,而是直接从表单中读取它,那就太好了。那么,给定一个窗口的句柄,是否可以使用一些类似的API或其他巧妙的方法,使用TextOut和DrawString等函数读取写入该窗口的文本?还是我的做法不对?我是否应该只hook函

c++ - 显示如何向 Opera/Firefox 4 等 Vista 窗框的玻璃部分添加按钮/菜单的示例

我想在使用WTL和Win32++的C++应用程序中将菜单添加到框架的玻璃部分。这些库可能主要是因为这是我需要从Win32做的事情。最新版本的Opera和即将推出的Firefox将执行此操作,但我无法找到代码示例。有没有人有将控件添加到他们可以共享的玻璃的示例?我想我可以使用一个按钮示例和类似的东西。我用WinSpy做了一些挖掘,但我无法计算出Opera使用的确切控件。我只针对WindowsVista和7。歌剧示例:在Firefox4中显示菜单的示例proposal(在他们的YouTube演示文稿中点击链接了解更多信息:(来源:faaborgatpeople.mozilla.com)

c++ - 32 位应用程序中的 WebBrowser 控件在 window.open() 调用上启动 64 位 Internet Explorer

我有一个在Windows764位上运行的32位应用程序。该应用程序(用C++编写)托管一个WebBrowser控件。当要求WebBrowser控件弹出一个新窗口(通过javascriptwindow.open()调用)时,它会启动一个新的InternetExplorer进程。特别地,这个新的IE进程是一个64位的IE进程。由于网页喜欢Adob​​eFlash,不幸的是我需要确保启动的新IE进程是32位版本(这是我机器上的默认版本),以便可以显示Adob​​eFlash内容。有趣的是,IE本身(围绕WebBrowser/MSHTML的包装器)不会遇到这个问题,这意味着可以设置某种配置来提

c++ - 使用 CreateWindow(Ex) 创建虚拟父控件(如面板)

所以基本上,我有一个选项卡控件(WC_TABCONTROL),我想将所有与单个选项卡页一起出现的控件放在一个窗口上(控件,如果你愿意,或者面板).我想在wxWidgets中创建类似面板的东西,这样当我调用ShowWindow(panel,SW_HIDE)时,我可以隐藏面板和其中的所有控件。我希望你明白。谢谢,格兰特。 最佳答案 我想你想要的是一个无边框、无标题的对话框。我已经在选项卡控件中使用了这个东西。在选项卡控件点击事件上显示和隐藏它们。实际上,一些选项卡控件会在它们自己的标题中使用对话框的标题。YMMV.这是一个老派的例子。它