草庐IT

WM_APP_MY_THREAD_UPDATE

全部标签

c++ - 如何(最好)将 WM_QUIT 发布到正在运行的进程?

目标:在windows下关闭一个正在运行的32位GUI进程我可以访问可执行文件的路径名。此软件可能有多个拷贝在运行,但只有一个从唯一的可执行文件路径名启动。因为可以运行此可执行文件的多个实例,简单查看顶级窗口需要区分哪个可执行文件路径名实际负责该窗口...可能的方法:枚举进程&线程,然后使用PostThreadMessage(thread,WM_QUIT,0,0)这很有道理,但我担心用什么技术来区分“主线程”有这种方法的例子:Thisassumesthatthethreadwiththefirstcreationtimeismain.Thisusesa32-bitonlytrickto

windows - 在 Windows 中,是否有与 syslog 或 OS X 的 Console.app 等效的功能来记录特定错误?

我正在编写一个跨平台应用程序,并且正在深入研究它的一些错误处理。我的方法之一是在出现足够严重的错误时向用户显示一个消息框,其中包含用户友好的错误消息,同时将更详细的以开发人员为中心的信息打印到系统日志中,包括严重错误和较少错误不需要直接窃听用户的关键问题。这样,我可以要求用户在报告问题时检查或向我发送应用的任何输出。为此,我可以在linux中使用syslog,在OSX中使用NSLog/Console.app。但我不知道Windows中有任何普通用户可以访问的等效功能。我知道DebugView.exe和OutputDebugString(),但我不认为这是一个好的解决方案,因为Debug

c++ - 每次调用sprintf之前如何调用my_function?

sprintf是平台提供的API。我想在使用时过滤某种格式。我的想法是:#includeintmy_sprintf(...){my_filter_function(...);return::sprintf(...);}#definesprintfmy_sprintf然后将这些代码放到pch中。但我仍然担心它无法涵盖所有​​用途,有些在预建库中,并非每个项目都有pch。你还有别的想法吗?谢谢。它在Windows上。 最佳答案 您不能“覆盖”内置函数。此外,使用宏替换其名称会导致您的程序出现未定义的行为。所以,甚至不要试图改变标准库的行

windows - WINAPI_FAMILY_ONECORE_APP 是什么?

我在GitHub上浏览了Microsoft的OpenSSL端口。一个提交引起了我的注意,它是AddingWin10UniversalPlatformsupport.在提交中,出现了一个名为WINAPI_FAMILY_ONECORE_APP的分区。但是,我在搜索时没有找到太多相关信息。英文有2个命中,中文有22个命中(见下文)。正在关注What’snewinVisualStudioToolsforWindows10Preview提供了一些没有解释的准要点:新的API分区WINAPI_FAMILY_ONECORE_APPARM64通用CRT...我有两个问题:什么是WINAPI_FAMIL

Windows App 无法从某些网络访问服务,但浏览器可以

我有一个使用Cordova构建的Windows应用程序,它无法从某些网络访问它的网络服务。我认为这不是CORS问题。该应用程序可以正常工作,尤其是在公共(public)网络中,但是当用户通过直接连接或VPN切换到内部网络时,应用程序无法连接。我所说的内部是指托管Web服务的组织内部。如果我调试应用程序,错误是:SCRIPT7002:XMLHttpRequest:NetworkError0x2efd,Couldnotcompletetheoperationduetoerror00002efd.如果我要求用户打开浏览器访问服务URL,它总是有效。服务不是通过HTTPS调用的,所以没有SSL

python - 在 Python 3 中使用适用于 Python 的 Google App Engine SDK

我同时安装了Python3.5.2和Python2.7.12(在Windows上)。但是,当我尝试使用适用于Python的GoogleAppEngineSDK进行部署时,我收到了这条错误消息:inrun_file(__file__,globals())File"C:\ProgramFiles(x86)\Google\google_appengine\appcfg.py",line129,inrun_fileexecfile(_PATHS.script_file(script_name),globals_)NameError:name'execfile'isnotdefined2016-

c++ - 如何将 WM_KEYDOWN 消息传递给 IWebBrowser2 实例?

我正在使用IWebBrowser2接口(interface)在父应用程序中加载嵌入式浏览器。我的代码被编译为dll,即浏览器组件在运行时通过插件接口(interface)动态加载。我遇到的问题是加载我的dll的应用程序捕获某些按键消息,因此它们没有到达我的IWebBrowser2实例。因此,我在我的dll中使用SetWindowsHookEx()API捕获这些消息。然后我如何将WM_KEYDOWN或WM_CHAR消息转发到我的IWebBrowser2实例,以便它们可以,例如用于在浏览器的聚焦文本框中输入文本? 最佳答案 我认为问题出

C++ 从异步线程更新 Windows 窗口

所以我刚开始使用C++并想创建一个带有按钮的窗口,该按钮启动一个异步线程用于一个从5计数到0的计数器,代表一个耗时很长的任务。该数字应该已经显示在窗口上,并且在计数器计数时每秒更新一次。为此,子线程必须以任何方式与主窗口线程的消息循环进行通信。我试图通过以下方式做到这一点:使用主窗口的窗口句柄发送UpdateWindow使用主窗口的窗口句柄发送PostMessage但在这两种情况下,窗口都不会更新。因此,我怀疑通过将窗口句柄从主线程发送到子线程或将UpdateWindow消息从子线程发送到主线程或两者都发生错误,或者我完全偏离轨道并且一切都是错误的。也许我的思路也是错误的,我应该换一种

c# - 有没有一种方法可以在不使用 WM_GETMINMAXINFO 消息的情况下更改窗口的最大宽度?

我想为外部应用程序的窗口(不是我的C#/WinForms程序的窗口)更改窗口可以调整到的强制Windows最大宽度。SM_CXMAXTRACK的GetSystemMetrics文档说:“具有标题和大小边框的窗口的默认最大宽度,以像素为单位。此指标指的是整个桌面。用户不能将窗口框架拖动到大于这些尺寸的尺寸。窗口可以通过处理覆盖此值WM_GETMINMAXINFO消息。”有没有办法在不处理WM_GETMINMAXINFO消息的情况下修改此SM_CXMAXTRACK值(系统范围或针对一个特定窗口)?可能是未记录的函数、注册表设置等?(或者:MINMAXINFO.ptMaxTrackSize的

Windows : Have my program run in kernel mode?

我目前正在了解Windows操作系统的不同运行模式(内核模式与用户模式)、设备驱动程序、它们各自的优缺点以及一般的计算机安全性。我想创建一个实际示例,说明在内核模式下运行的故障设备驱动程序会对系统造成什么影响,例如破坏用于关键操作系统进程的内存。如何直接在内核模式而不是用户模式下执行我的代码?我是否必须编写虚拟设备驱动程序并安装它才能执行此操作?在哪里可以阅读有关Windows内核和用户模式的更多信息?我知道这样做的危险,并将在仅运行WindowsXP的虚拟机上进行所有实验 最佳答案 “WindowsInternals”一书对所讨论