草庐IT

windows - 从 SendMessage() + WM_COPYDATA 获取响应

目前我正在研究一个使用WM_COPYDATA将用户数据发送到其他进程的示例。我构造COPYDATASTRUCT结构来填充用户数据。并使用SendMessage()函数将数据发送到其他进程。OnCopy()函数返回真/假值。但想要得到除true/false之外的其他信息(如int、char[]、float等)。请帮助我从除true/false之外的其他进程获得响应问候 最佳答案 大家好,您可以使用包含返回数据的COPYDATASTRUCT结构通过SendMessage执行发送响应。您无法更改SendMessage返回类型。

windows - wxWidgets 和 WM_NCHITTEST

我在VisualC++2010中使用wxWidgets。我的目标之一是能够move我用窗口的任何部分(客户端或其他)创建的框架。为此,我过去曾使用WM_NCHITTEST让Windows认为我窗口的每个部分都是标题栏。在wxWidgets中应该如何完成? 最佳答案 经过广泛的研究,由于应答部门不活跃,我找到了一个可以接受的(虽然不是可移植的)解决方案:WXLRESULT[your-wxWindow-inheriting-objectname-here]::MSWWindowProc(WXUINTmessage,WXWPARAMwPa

c - 绘画后 WM_PAINT 不显示

所以我正在绘制位图,这是我的代码:hdcMem=CreateCompatibleDC(hdc);SelectObject(hdcMem,g_hBitmap);GetObject(g_hBitmap,sizeof(bm),&bm);BitBlt(hdc,196-(bm.bmWidth/2),90,bm.bmWidth,bm.bmHeight,hdcMem,0,0,SRCCOPY);DeleteDC(hdcMem);有时,当我用这段代码绘制时,位图不显示。尽管如果我最小化/取消最小化窗口,则会显示位图。我很确定我的代码没有问题,那么我还应该做些什么吗?编辑:原来它不仅仅是位图,如果我用Te

c# - 拦截所有 WM_MOUSEWHEEL 消息

我一直在搜索WindowsAPI,寻找一种在所有WM_MOUSESCROLL消息到达其透视消息队列之前拦截它们的方法。拦截后我需要改变一些关于它们的东西并将它们发送到不同的[或相同的]消息队列。我需要相当高效地执行此操作,因为它将在相当大的应用程序之上运行。关于如何实现此目标的任何想法?我还没有找到办法。 最佳答案 最好的选择是使用lowlevelmouseeventhook进行非托管拦截.见thisMSKBarticle了解更多信息。 关于c#-拦截所有WM_MOUSEWHEEL消息,

c++ - WM_KEYDOWN 消息未发送

我一直在尝试找出程序中的错误。我注意到,每当我按住向上和向左箭头键并按空格键时,我的WndProc永远不会接收或处理WM_KEYDOWN消息以及WPARAM为VK_SPACE。我有点好奇,所以我打开了Spy++并开始查看发送到我窗口的消息。我注意到,当我按住向左和向上箭头键并按另一个键(比如A)时,WM_KEYDOWN(以及WM_CHAR)消息会发送到我的窗口。但是,如果我按住向上和向左箭头键并按下空格键,则不会向我的窗口发送空格键命中的WM_KEYDOWN消息。这是什么原因?谁能证实这种行为? 最佳答案 发生这种情况是因为您的键盘

windows - npapi 插件如何从浏览器获取 WM_ACTIVATE 消息?

在Windows平台上,当我切换到另一个窗口时,浏览器将收到一条WM_ACTIVATE消息。无论如何将WM_ACTIVATE消息传递给插件?我试过NPP_HandleEvent,但它似乎根本不起作用。 最佳答案 对于WindowsNPP_HandleEvent()仅用于无窗口插件,默认情况下它们是有窗口的。因此,除非您明确选择无窗口,否则这就是NPP_HandleEvent()未被调用的原因。对于窗口插件,您需要子类化插件窗口以接收窗口消息(参见Mozillas测试插件源中的Subclass())。对于无窗口插件(应该是首选),WM

c++ - 当模态对话框处于事件状态时检测主应用程序窗口上的 WM_CLOSE 事件?

当模态对话框处于事件状态时,主应用程序窗口是否可以检测到WM_CLOSE事件?。如果没有,是否有任何方法可以检测到WM_CLOSE事件,因为对话框的事件处理程序也没有检测到它。要亲自观察此行为,请打开记事本的“关于”菜单,然后右键单击任务栏中的记事本图标并选择“关闭窗口”选项,它不会有任何效果。有谁知道在模态窗口处于事件状态时为应用程序捕获WM_CLOSE事件的方法吗? 最佳答案 当通过右键单击任务栏中的应用程序图标选择“关闭”时,不会发送WM_CLOSE。发生的事情是向应用程序的主窗口发送一个WM_SYSCOMMAND,其中wPa

windows - 将子文件夹中的文件 move 到文件夹并重命名 windows 提示

我几乎有了最终的命令行,但我需要它的重命名部分,以达到我想要的目标我有这个:for/f“tokens=*”%ain(‘dir/b/s/a-d’)do@copy“%a”“C:\YourFolder”/y它工作正常,但在我的例子中,我有很多文件夹,每个文件夹只有一个文件,这个文件有相同的名称file.ext,所以,有没有办法move和更改名称,例如像file1.ext,file2.ext,...谢谢! 最佳答案 这不是万无一失的,但它可能会起作用,并且会提示是否存在文件名的可能性很小。您需要一个批处理文件来确保万无一失并改进命名策略。如

c++ - 监听 WM_SYSCOMMAND 事件

我正在编写一个小的c++程序,它应该对sc_screensaver和sc_monitorpower事件使用react。这应该在后台运行,因此没有gui。因为我还没有使用WindowsAPI的经验,所以我为此苦苦挣扎。A已经在谷歌上搜索了很多,发现了很多我不理解或不起作用的方法。你们中的任何人都可以给我提示吗?我阅读了有关捕获wm_syscommand的内容,但这似乎很困难,因为我没有窗口。 最佳答案 获取消息的唯一方法是通过消息循环和窗口过程。如果您的程序没有可见的图形用户界面,您必须创建一个message-onlywindow为此

Windows批处理脚本将所有文件从一个目录 move 到Windows中的另一个目录,并且文件夹包含空格

非常相似Windowsbatchscripttomovefiles解决方案是...驱动器“c”和“e”movec:\Sourcefoldername\*.*e:\destinationFolder但是,这是在moveDropbox的“相机上传”中的所有文件,并且文件路径包含一个空格。我无法重命名该文件,因为Dropbox会创建一个新文件,这会破坏我们的目标。我尝试用双引号将它括起来……但这也失败了……move"C:\Users\USERNAME\Dropbox\CameraUploads\*.*"D:\dropboxBU感谢您在这个2015年MLK日发表的见解。