草庐IT

消息Nginx

全部标签

c# - 如何在 C# 中从工作线程发布 UI 消息

我正在用C#编写一个简单的winforms应用程序。我创建了一个工作线程,我希望主窗口响应完成其工作的胎面——只需更改文本字段中的一些文本,testField.Text=“Ready”。我尝试了事件和回调,但它们都在调用线程的上下文中执行,你不能从工作线程执行UI。我知道如何在C/C++中执行此操作:从工作线程调用PostMessage。我假设我可以从C#中调用WindowsAPI,但是没有更具体的.NET解决方案吗? 最佳答案 在来自已完成线程的事件回调中,使用InvokeRequired模式,正如对这篇SO帖子的各种回答所展示的

c++ - DLL 中的 Windows 消息队列处理

我有一个由应用程序加载的dll,我无法修改应用程序的源代码(因为我没有源代码)并且我想使用插件注册一个系统范围的热键。我可以通过RegisterHotKey(NULL,1,MOD_CONTROL|MOD_NOREPEAT,0x42)之类的方式注册热键(参见here),但我不确定应该如何处理消息队列,我应该一个新线程并在dll初始化时创建消息处理循环?接收消息的是我的dll还是加载dll的应用程序,最后还有更好的方法吗? 最佳答案 这是应该如何完成的:你的DLL创建一个线程此线程运行消息循环(GetMessage()/Dispatch

c++ - 模态消息循环中的 WM_CLOSE

我正在为自定义对话框使用特殊的消息循环。当对话框打开并且窗口关闭时,我想达到下面的第二个if(msg.message==WM_CLOSE)。for(;;){if(PeekMessage(&msg,0,0,0,PM_NOREMOVE)){if(msg.message==WM_CLOSE){GetMessage(&msg,0,0,0);break;}else{if(GetMessage(&msg,0,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}if(msg.message==msgEnd)break;}}问题是此if中的代码从未达

windows - 将 Windows 对话框错误消息重定向到控制台

有谁知道如何重定向/捕获模态Windows错误对话框?对于仅尝试运行程序并捕获退出代码和stdout/stderr输出的非交互式命令行程序来说,这确实是个问题。此问题的最新实例是具有以下形式的模态Windows对话框:Theprogramcan'tstartbecauseismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.(模态GUI窗口的标题是“系统错误”) 最佳答案 可以使用SetErrorMode()抑制这些系统错误对话框.在这种情况下,Cre

c++ - mfc - 带有富文本的消息框

我希望能够在消息框中显示格式化文本(如粗体文本、项目符号、斜体等)。我遇到了thiswonderfularticle但似乎无法让它发挥作用。我在同一个链接上使用演示应用程序。有人可以帮帮我吗?我曾尝试调试/理解该代码,但没有成功。约束:(不是我的选择)必须与WindowsXP兼容。我正在使用VisualC++6。应该如何显示:实际显示方式: 最佳答案 使用RichEdit2控件简单地创建一个对话框...在InitInstance中,添加以下调用://InitRichEditLibraryAfxInitRichEdit2();在您的对

c++ - 适用于 Linux 的 SDL 跨平台消息框

我正在开发跨平台游戏引擎-它运行良好(我使用的是SDL)。但是,我想要一种简单的方法来向用户显示消息框,而不必依赖SDL或OpenGL(渲染到屏幕),例如如果窗口已被销毁或尚未创建,因此我无法向屏幕呈现消息怎么办?我已经实现了一个消息框功能,每个平台都有多个实现:Windows实现使用MessageBox,MacOSX实现使用Cocoa的NSAlert,我不知道我可以用什么来实现linux。我在考虑X11,因为这是SDL在linux上使用的窗口。我尝试过其他答案,但它们要么太模糊,要么要求我用X11或其他东西重新装配我的整个游戏引擎。我试图找到一个独立于应用程序的解决方案(例如可以在控

node.js - npm 命令返回消息 -g' 未被识别为内部或外部命令

我使用的是Windows8.164位,并使用来自nodejs.org的WindowsInstaller安装npm。每次我输入npm命令时,它总是显示此消息:'CALL"C:\ProgramFiles\nodejs\node.exe""C:\ProgramFiles\nodejs\node_modules\npm\bin\npm-cli.js"prefix-g'不被识别为内部或外部命令,可运行的程序或批处理文件。Errorwhilerunningnpm“prefix-gisnotrecognizedasaninternalorexternalcommand”没有解决我的问题Node-vv

windows - 什么窗口消息应用程序在屏幕上收到文本大小更改

用户可以更改显示文本的比例(例如,通过设置→显示→更改文本、应用程序和其他项目的大小,在Windows10上)。我应该处理什么窗口消息以了解此类更改?我有一个大小取决于实际字体高度的东西。但是,尺寸调整非常耗时,因此我不希望在每次WM_PAINT到达时都执行它们。 最佳答案 不是吗WM_DPICHANGED?Sentwhentheeffectivedotsperinch(dpi)forawindowhaschanged.TheDPIisthescalefactorforawindow.-Thewindowismovedtoanewm

r - 启动期间 - 警告消息 : Setting LC_CTYPE= failed on Windows

升级Windows10后,每当我启动Rstudio时,我都会收到以下警告消息。启动期间-警告消息:设置LC_CTYPE=失败我目前正在运行MicrosoftROpen版本。有什么方法可以修复此警告消息,我在stackoverflow上找到了一些适用于Mac而不是适用于Windows的解决方案。 最佳答案 我发现针对该问题的最佳解决方法是设置一个.Renviron文件并覆盖那里的语言环境。如何设置和修改.Renviron文件在打开的书的相关章节中有描述EfficientRProgramming.因此,只需要复制这些行user_renv

windows - 向由不同窗口的用户 session 启动的应用程序发送消息

桌面应用程序(使用Delphi制作)由用户A启动。我们称它为“实例A”。用户A执行“切换用户”,用户B登录。用户B运行相同的应用程序。我们称它为“实例B”我现在想要的是实例B向实例A发送消息的方式。我尝试了以下操作:实例A将其句柄写入文件,因此实例B可以打开该文件、读取句柄并使用它向实例A发送消息,但它不起作用——也许是因为出于安全原因,Windows不允许一个用户访问另一个用户正在运行的进程的句柄...执行此操作的“坏”方法是让实例A每隔几秒检查一个特定的文件或注册表位置,这样实例B就可以在那里写一些东西,而实例A会得到它……但这显然很麻烦和不优雅的解决方案。相反,我需要的是用户B的