草庐IT

c# - 处理无效的窗口句柄

应用程序使用Enum*例程检索窗口句柄。碰巧在应用程序管理枚举/创建窗口的句柄(获取类名、窗口统计...)时,句柄不再有效。管理窗口句柄的代码使用try/catchblock进行保护,但窗口句柄被存储并连续用于管理表示的窗口。如何处理窗口句柄的生命周期?是否可以检测句柄无效?每次应用程序使用窗口句柄时,我都想避免try/catchblock。 最佳答案 窗口句柄只有在创建窗口的线程中使用时才是安全的。从任何其他线程,您对窗口句柄的了解是,它在过去的某个时间是有效的。现在,它可能是也可能不是,如果是,它可能指的是与预期完全不同的窗口。

windows - 一些支持 "\Device\Xxx"格式的NT命名空间绝对路径的API

在这份文件中,http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#pathsTomakethesedeviceobjectsaccessiblebyWindowsapplications,thedevicedriverscreateasymboliclink(symlink)intheWin32namespace,"Global??",totheirrespectivedeviceobjects.Forexample,COM0andCOM1underthe"Global??"subdirectoryaresimply

windows - Delphi:系统菜单是否打开?

我是Delphi,我需要一个函数来确定系统菜单(resp.窗口菜单,单击图标时出现的菜单)是否打开。原因是我正在编写一个反键盘记录器功能,它将垃圾发送到当前事件的editcontrol(这也阻止了读取WinAPI消息以读取内容的键盘记录器)。但是如果打开系统菜单,editcontrol仍然有焦点,所以垃圾将调用快捷方式。如果我在我的TForm1中使用消息WM_INITMENUPOPUP,我可以确定系统菜单何时打开,但我希望我不必更改TForm,因为我想编写一个非可视化组件,它不需要对TForm派生类本身进行任何修改。//IdonotwantthatsolutionsinceIhavet

windows - 如何检测窗口内容何时发生变化

我需要编写截屏视频,并且需要检测窗口内容何时发生变化,即使只选择了文本。这个窗口是第三方控件。 最佳答案 有几种方法。(1)屏幕轮询。可以轮询屏幕(即创建一个DIB,每个时间段从屏幕到BitBlt),然后按原样发送优点:实现起来非常简单缺点:高CPU负载。每秒轮询整个屏幕的次数非常繁重(应该传输大量数据)。因此它会又重又慢。高网络带宽(2)与上面相同,除了现在您对轮询屏幕进行一些分析以查看差异。然后您可以只发送差异(如果没有更改,显然不发送任何内容),另外您可以选择压缩差异流。优点:实现起来还不算太复杂显着降低网络带宽缺点:CPU使

c++ - 如何在 Window (Win32) 中保留自定义文本

我们可以设置窗口文本:BOOLWINAPISetWindowText(__inHWNDhWnd,__in_optLPCTSTRlpString);和这个窗口文本由另一个应用程序intWINAPIGetWindowText(__inHWNDhWnd,__outLPTSTRlpString,__inintnMaxCount);我不想更改我的表单标题,但我想在窗口中保留自定义文本并通过同一程序的另一个实例获取该文本。我怎样才能做到这一点? 最佳答案 一个简单的方法是:定义你自己的WM_APPmessage,您的应用程序的哪个实例A将使用它

windows - 如果同时启用了鼠标和触摸板,如何检测输入设备

我的应用程序中已经有一个WH_MOUSE_LLHook,但鼠标和触摸板需要不同的行为。我知道RawInputAPI,但不知道如何将它与钩子(Hook)一起使用:(有什么建议吗? 最佳答案 应该和distinguishingbetweenmultiplekeyboarddevices一样. 关于windows-如果同时启用了鼠标和触摸板,如何检测输入设备,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

windows - 用SetWindowPos 'normal way' 移动一个窗口是做什么的?

我想知道,为了将带有Win32API的(ms-windows-)窗口向右移动20像素并向下移动40像素,是否可以执行以下操作函数调用将是如何做到的:SetWindowPos(/*hWnd*/hChildDlg2,/*hWndInsertAfter*/(HWND)-1,/*X*/20,/*Y*/40,/*cx*/-1,/*cy*/-1,/*uFlags*/SWP_NOSIZE|//Ignorecx,cySWP_NOZORDER//andhWndInsertAfter);我问是因为在我看来可能有一个函数只将HWND和x和y作为参数。 最佳答案

c++ - 如何创建没有任何窗口的任务栏按钮?

我有一个简单的无UI应用程序,然后将其转换为Windows服务。但是对于测试来说,查看它何时运行会很有用。所以我想创建一个任务栏按钮,就像其他带有UI的应用程序一样。通过合理的努力是否可能? 最佳答案 不,这不可能。任务栏上的按钮代表windows。没有窗口就不能有按钮,并且该窗口需要可见。(窗口可以有使其离开屏幕的坐标,它可以有零维,但它需要有WS_VISIBLE样式。)另一种选择是创建一个通知图标。它也需要有一个窗口,但窗口不必是可见的。但是,如果最终目标是让程序成为一项服务,那么设置该程序可能比您想要的要多。服务不能显示通知图

c++ - 对话框资源中的语法错误

我有一个Win32GUI应用程序,在我的resource.rc文件中我试图创建一个对话框,但我的代码中出现语法错误。IDD_ABOUTDIALOG0,0,239,66STYLEDS_MODALFRAME|WS_CAPTION|WS_POPUP|WS_SYSMENU//errorhereCAPTION"About"FONT8,"MSSansSerif"BEGINDEFPUSHBUTTON"&OK",IDOK,174,27,50,14GROUPBOX"Blahblah...",IDC_STATIC,7,7,225,52CTEXT"Name:Blahblah\r\nVersion:blahb

c# - NO ACTIVATE 窗口样式

我需要一个在我点击它时不会激活但在其他地方应该react正常的窗口。通常我的意思是如果它上面有一个按钮并且我单击该按钮它应该执行单击并调用单击函数(或事件句柄或其他任何东西)。所以它应该是一个普通的窗口,除了当你与它交互时它不应该被激活。我知道您可以使用消息过滤器或Hook来执行此操作,但是是否有任何窗口样式可以自动执行此操作?这是针对Windows的。谢谢! 最佳答案 您尝试过WS_EX_NOACTIVATEextendedwindowstyle吗?Atop-levelwindowcreatedwiththisstyledoesn