问题标签 [sendmessage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6374 浏览

winapi - C++ WINAPI:如何使用 SendMessage/PostMessage WM_KEYDOWN lparam

作为低于 VB/VBS 的业余爱好者(C++ WINAPI 对我有经验的人来说是一场噩梦),我不知道如何在 C++ 中为简单的 KEYDOWN 消息构建长 lParam,并且可能花了更多时间寻找体面的解释比值得,有人能够准确地描述如何去做吗?

似乎其他论坛上几乎所有对这个问题的回答都是“为什么”或“改用 SendInput”,而没有真正回答这个问题;我猜它太简单了,人们无法解释。无论如何,这是来自 msdn 的描述,非常感谢一个体面的解释或链接,如果可能的话,还有一个工作示例:

重复计数、扫描码、扩展键标志、上下文代码、前一个键状态标志和转换状态标志,如图所示……

0-15 当前消息的重复计数。该值是由于用户按住键而自动重复击键的次数。如果击键时间足够长,则会发送多条消息。但是,重复计数不是累积的。16-23 扫码。该值取决于 OEM。

24 指示该键是否为扩展键,例如出现在增强型 101 或 102 键键盘上的右手 ALT 和 CTRL 键。如果是扩展键,则值为 1;否则为0。 25-28 保留;不使用

29 上下文代码。如果 ALT 键在按下时按下,则值为 1;如果 WM_SYSKEYDOWN 消息发布到活动窗口,则为 0,因为没有窗口具有键盘焦点。

30 前一个键状态。如果在发送消息之前 key 处于 down 状态,则值为 1,如果 key 处于 up 状态,则值为 0。

31 过渡状态。对于 WM_SYSKEYDOWN 消息,该值始终为 0。

0 投票
3 回答
13316 浏览

vb6 - Findwindow 和 SendMessage

我试图弄清楚为什么这没有向记事本发送 ALT+F,

我得到了parenthwnd的值,但没有得到任何 retvalue 值(0)。

我错过了什么?

0 投票
8 回答
17515 浏览

iphone - Can I send email programmatically in iPhone app?

I need to be able to send a pre-formatted email or SMS text message programmatically from within an iphone app. Can this be done? I have looked at apple's MFMailComposeViewController class, but this "provides a standard interface that manages the editing and sending an email message" and the MFMessageComposeViewController class also has it's own "standard system interface for composing SMS text messages". These allow you to present an interface to the user where they have to fill in all the data and then explicitly press a send button.

I cannot use this boilerplate functionality.

I need to be able to send a message without presenting any interface to the user. I know this sounds evil, but actually it is for a commercial application which needs to communicate to a user group in a central office when users in the field have performed specific actions out in the field.

Has anyone found a solution to this?

0 投票
1 回答
1088 浏览

iphone - MFMessageComposer iPhone,自动消息发送

任何人都知道如何使用 MFMessageComposer 实现自动发送消息..我的意思是不需要显示消息 Composer..我们必须将预定义的消息发送到给定的 Number..或任何其他方式而不使用 MFMessageComposer.. ???

0 投票
1 回答
727 浏览

sms - iPhone - UIMessage.framework

在 iPhone 应用程序中,我们支持发送短信。为此,我们必须在应用程序中集成 UIMessage.framework。此功能仅在 OS 4.0 或更高版本中支持。但是,在实现中,如果设备操作系统早于 4.0.0,我已禁用该功能。但是,我面临的问题是,对于 4.0 之前的设备,无法安装 tha 包,只是因为包中包含了框架需要。

这个问题有什么解决方法吗?是否有可能以仅当操作系统为 4.0 或更高版本时才包含此框架的方式进行构建,而对于早期版本,则不需要。或者我在这里错过了什么?

谢谢

0 投票
1 回答
155 浏览

.net - 将 CopyData 用于提升的应用程序有什么好的替代方法

我有一个应用程序停止服务,复制文件,然后再次启动服务。我希望它显示一个进度条,没有额外的窗口,没有改变屏幕,只是让 UAC 做它的事情并从那里继续(它是一个配置程序,所以它仍然可以作为标准用户使用,副本上有盾牌图标按钮)。

它这样做的方式是通过以管理员身份打开一个单独的应用程序(另一个自己的应用程序,使其不可见,就像 msiexec 所做的那样),然后新的应用程序执行它的操作并通过 SendMessage 发回进度报告。这很好用,但事实证明 SendMessage 只能在管理员/非管理员应用程序之间以一种方式工作。重定向 StandardInput 不起作用,因为这需要关闭 ShellExecute,而“runas”需要打开 ShellExecute。

我不想使用文件,因为这会很慢并且存在安全风险(我在之前包含命令的 CopyData 消息旁边发送了一个密钥代码)。是否有另一种方法来重定向标准输入/输出?微星是如何做到的?

我为此使用 C#。

0 投票
3 回答
1121 浏览

c++ - 通过 SendMessage 进行 IPC 时如何应对 32 位/64 位不匹配?

我有一段 C++ 代码,它使用TVM_GETITEM窗口消息读出树项的文本(包含在普通的Common Controls Tree View中)。接收消息的树视图位于不同的进程中,因此我为窗口消息的参数之一指向的结构使用了一点共享内存。我必须做这项工作,因为远程进程不在我的控制之下(我正在编写一个类似于 Spy++ 的应用程序)。

这在原则上运作良好,但在目标进程有很大不同的情况下会失败:

  1. 如果目标进程的代码是用定义的 UNICODE 构建的,但我自己的代码不是,那么这两个进程对TVITEM 结构中的字符串成员的结构会有不同的想法。我已经使用IsWindowUnicode调用解决了这个问题,然后显式发送TVM_GETITEMATVM_GETITEMW(如有必要,重新编码结果)。

  2. 如果调用进程是在 32 位模式下构建的,而目标进程是 64 位(或相反),则TVITEM 结构结构的布局(和大小)是不同的,因为指针具有不同的大小。

我目前正在尝试找到解决第二个问题的好方法。这个特定的用例(获取树项文本)只是一个示例,我的代码正在发送的其他窗口消息也存在同样的问题。现在,我正在考虑两种方法:

  1. 构建我的代码两次,然后根据目标进程执行的操作执行 32 位或 64 位代码。这需要对我们的构建和打包系统进行一些更改,并且需要将特定于体系结构的代码分解到一个专用进程中(现在它在一个 DLL 中)。一旦完成,它应该可以很好地工作。
  2. 在运行时检测目标进程的图像格式,然后使用自定义结构而不是明确使用 32 位或 64 位宽指针的TVITEM 结构结构。这需要编写代码来检测远程进程的体系结构(我希望我可以通过在远程进程上调用GetModuleFileName然后使用Image Help Library分析 PE 标头来做到这一点)并硬编码两个结构(一个带有 32 位指针,一个带有64 位)。此外,我必须确保共享内存地址在 32 位地址空间中(以便我自己的代码始终可以访问它,即使它是在 32 位模式下编译的)。

其他人是否必须解决类似的问题?有更简单的解决方案吗?

0 投票
2 回答
2506 浏览

image-processing - Beagleboard:如何向/从 DSP 发送/接收数据?

我有一个带有 TMS320C64x+ DSP的beagleboard 。我正在开发一个图像处理 beagleboard 应用程序。以下是它的工作原理:

  1. ARM 从文件中读取图像并将图像放入 2D 数组中。
  2. 手臂将矩阵发送到 DSP。DSP 接收矩阵。
  3. DSP 对接收到的矩阵执行图像处理算法(算法代码使用大约 5MB 的动态分配内存)。
  4. DSP 将处理后的图像(矩阵)发送到 ARM。手臂接收矩阵。
  5. 手臂将处理后的图像保存到文件中。

我已经编写了步骤 1、3、5 的代码。执行步骤 3+4(发送数据)的最简单方法是什么?欢迎使用代码示例。

0 投票
1 回答
1543 浏览

c# - 如何使用 sendmessage 和 c# 在第三方应用程序中增加 trackbar/Slider 的值?

嗨,我希望增加和减少第三方应用程序中滑块/轨迹栏的值。是否可以使用 sendMessage() 来做同样的事情。我有滑块的把手。有人可以帮忙吗?谢谢。

0 投票
1 回答
2049 浏览

c# - 如何使用 c# 在 sendmessage 中传递从 spy++ 获取的句柄?

如何传递我在 sendmessage 中使用 spy++ 工具获得的句柄?IE。我想通过这个句柄

句柄来自 spy++ 00010540

在这个函数中

其中按钮句柄的类型为 IntPtr。我想用上述值替换按钮句柄。谢谢