草庐IT

c# - 从 Windows 应用程序的文本框中抓取文本

是否可以从包含在单独的可执行文件中的文本框中抓取文本?我有一个具有调试窗口的应用程序。调试窗口生成详细日志。但是,日志永远不会保存在任何地方,只能在应用程序内查看。如果应用程序生成异常,我想给自己发电子邮件,知道已生成异常,这样我就可以跳进去检查一下。还有一个复制文本框的按钮,所以我在考虑使用Spy++来获取命令信息。但是,我不知道从那里去哪里。非常感谢任何指点。我更愿意在.NET中使用C#,但如果我需要使用C++,我会。更新:根据评论,我尝试执行以下操作:PrivateDeclareFunctionGETWINDOWTEXTLib"user32"Alias"GetWindowText

c++ - DialogBoxIndirect 创建的对话框比要求的大

对于我的应用程序,我需要在不使用资源的情况下创建一个对话框。我正在尝试使用DialogBoxInderect函数来做到这一点。该代码丑陋得令人难以置信,但我以某种方式成功地做到了。问题是由于某种原因,对话框比我要求的字体大得多。如果我从资源加载对话框,下面是对话框的样子:这里是调用DialogBoxInderect函数时显示的相同大小的对话框。这是它在代码中的定义:HGLOBALhGlobal;LPDLGTEMPLATEwlsDialogTemplate;LPDLGITEMTEMPLATEwlsDialogItemTemplate;LPWORDnextItem;LPWSTRitemSt

c++ - 如何获取 Windows 7 中“开始”按钮的句柄?

我使用:HwndhStart=::FindWindow("Shell_TrayWnd",NULL);//getHWNDoftaskbarfirsthStart=::FindWindowEx(hStart,NULL,"BUTTON",NULL);//getHWNDofstartbutton获取开始按钮的句柄。它在WindowsXP上正常运行,但在Windows7中,::FindWindowEx(hStart,NULL,"BUTTON",NULL)始终返回0,而GetLastError()也返回0。这是为什么? 最佳答案 在Window

c++ - 如何删除回收站中路径太长的文件夹或文件?

我有一个程序可以删除和复制一些长路径的文件夹或文件(当长度>MAX_PATH)在这个程序中我使用前缀\\?\这让我有可能删除文件夹或具有长路径但仅在简单函数Delete()中的文件。我需要删除回收站中的文件,为此我需要使用SHFileOperation函数,它可以让我删除回收站中的文件,但此函数不支持前缀\\?\。有人可以帮我解决这个问题吗?是否有SHFileOperation的替代方案。我怎样才能绕过这个问题?一些链接:Prefix\\?\关于LongPath的一些信息SHFileOperation 最佳答案 回收站是一个特殊的外

c++ - 识别 WinRT 的宏?

是否有一个新的宏来确定应用程序是否在WinRT上运行?当我使用LoadLibrary时,如果有一个宏可以将对LoadLibrary的所有调用替换为对LoadPackagedLibrary的所有调用,那就太好了。.我对文档的理解是正确的,因为我可以通过LoadPackagedLibrary加载任何DLL(只要它在我的包中),对吧?!(只要该DLL不使用列入黑名单的API...) 最佳答案 我最近更新到VisualStudio2012,我想我找到了问题的答案:在Microsoftheader中,宏WINAPI_FAMILY_PARTIT

c++ - 检测窗口何时停止移动?

有谁知道如何检测Win32(c++)窗口是否停止移动?WM_MOVE检测窗口何时移动,但如何检测窗口何时停止移动? 最佳答案 您希望处理的Windows消息是WM_EXITSIZEMOVE。WM_EXITSIZEMOVEmessage(Windows)@MSDN根据您希望完成的任务,也有可能通过对WM_NCLBUTTONUP使用react来更好地为您服务,它是在非客户区释放鼠标按钮时发送的窗口,例如带有标题、镶边等的任何窗口的标题栏。WM_NCLBUTTONUPmessage(Windows)@MSDN

c++ - 如何使用winapi实现类Steam窗口?

这是正在调整大小的Steam客户端窗口的屏幕截图。Steam的客户端窗口有两个很酷的功能。非常灵敏的自定义窗口。炫酷的玻璃尺寸调整效果,不同于标准window(认为这可能是与1密切相关的副作用)假设我想使用winapi创建类似的窗口。我该怎么做?我不问小部件管理相关的东西,而是问技术性的winapi技巧。 最佳答案 基本上,您几乎可以用窗口做任何事情。但是大部分技巧都是要手动实现的。我不知道什么是“非常敏感”。如果您的意思是窗口没有标准边框,那么很容易实现:在创建WS_POPUP窗口时不要指定WS_BORDER和WS_CAPTION

c++ - 静态控件设置文字颜色

我有一个静态控件:HWNDhLabelControl=CreateWindowEx(WS_EX_CLIENTEDGE,"STATIC","",WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_CENTER,0,0,24,24,hwnd,(HMENU)hS1,GetModuleHandle(NULL),NULL);例如,我希望在按下按钮时,静态标签中文本的颜色变为红色。我该怎么做?我知道有一个SetTextColor(_In_HDChdc,_In_COLORREFcrColor);功能,但我不知道如何获取静态控件的HDC。提前致谢。编辑:这行不通:HDChDC=GetD

c++ - 正确重置 WM_SETCURSOR 处理程序中的光标

简介及相关信息:我制作了一个应用程序,当鼠标悬停在静态控件上方时,需要将光标的外观更改为手形,否则将其重置为普通光标。我最初的应用程序是全屏模式,但最近条款发生了变化,它必须有一个可调整大小的窗口。这意味着我的WM_SETCURSOR处理程序必须重写以反射(reflect)新引入的更改。游标加载到WM_CREATE中,我定义了类游标,如下所示://cursorscaseWM_CREATE:hCursorHand=LoadCursor(NULL,IDC_HAND);hCursorArrow=LoadCursor(NULL,IDC_ARROW);//otherstuff在我的课上:WNDC

c++ - 如何防止特定的 DLL 加载到我的进程中

我想我已经对此进行了相当彻底的研究,但我还没有找到可接受的答案。首先是大纲:Windows8.1、VisualStudio2013。不过,我认为这些并不重要。问题如下。我正在编写的应用程序使用了A.dll。我们使用在HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers下安装了上下文菜单处理程序控件的第三方供应商产品(备份程序,但这并不重要)。假设此路径为c:\ProgramFiles\Vendor\control.dll。现在,问题是当我的程序打开一个文件选择器对话框时(它是一个使用QFileDialog然后使用标准Window