请教:如何让我自己的程序来控制其它程序呢?

hejun548 2008-03-12 03:51:32
由于需要其它程序特殊的功能,我自己无法实现。
我想控制这个程序执行并且按下界面上的一个按钮,而这个按钮会执行一系列的功能。如何实现?

感谢帮忙!

...全文
174 29 打赏 收藏 举报
写回复
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
hejun548 2008-03-14
  • 打赏
  • 举报
回复
问题已解决,下面给大家分享一下,同时要特别感谢akirya,coding_hello。

PostMessage(WM_COMMAND,Start->GetDlgCtrlID(),MAKELONG(Start->m_hWnd,BN_CLICKED));

散分!
hejun548 2008-03-14
  • 打赏
  • 举报
回复
哪位大虾,再指点一下,如何控制程序的按钮为按下,也就是Keydown,Keyup动作?我已经获得这个程序窗口的HANDLE还有HANDLE指针。
hejun548 2008-03-14
  • 打赏
  • 举报
回复
哪位大虾,再指点一下,如何控制程序的按钮为按下,也就是Keydown,Keyup动作?
hejun548 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xiao_ke 的回复:]
我记得好像是WM_COMMAND消息是
wParam 的高2位指定控件ID,地2位指定具体消息

好久不写windows程序老,忘了
说错了,别骂哈(: <

[/Quote]

好像不对,MSDN都没有这样的用法哦。
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 anguofeng 的回复:]
为什么不考虑dll
[/Quote]

这位大虾可以说明白点吗?
anguofeng 2008-03-13
  • 打赏
  • 举报
回复
为什么不考虑dll
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xiao_ke 的回复:]
我记得好像是WM_COMMAND消息是
wParam 的高2位指定控件ID,地2位指定具体消息

好久不写windows程序老,忘了
说错了,别骂哈(: <

[/Quote]

好像不是哦,MSDN也没有任何这种用法的说明哦。

hejun548 2008-03-13
  • 打赏
  • 举报
回复
多谢大家,我已经找到这个按钮ID了1012,但是,如何确认这个程序执行成功呢?
能否得到它的返回值?或者得到一个Tab conctrl第一页显示的字呢?(因为这个按钮是否执行成功,这个Tab conctrl会显示相应字体)
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xiao_ke 的回复:]
我记得好像是WM_COMMAND消息是
wParam 的高2位指定控件ID,地2位指定具体消息

好久不写windows程序老,忘了
说错了,别骂哈(: <

[/Quote]

不对吧,MSDN没有这个用法哦。

还有谁帮忙解决下最后的问题吗?
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xiao_ke 的回复:]
我记得好像是WM_COMMAND消息是
wParam 的高2位指定控件ID,地2位指定具体消息

好久不写windows程序老,忘了
说错了,别骂哈(: <

[/Quote]

不对吧,MSDN里面没有任何这个信息啊。
xiao_ke 2008-03-13
  • 打赏
  • 举报
回复
我记得好像是WM_COMMAND消息是
wParam 的高2位指定控件ID,地2位指定具体消息

好久不写windows程序老,忘了
说错了,别骂哈(:<
hejun548 2008-03-13
  • 打赏
  • 举报
回复
不知道是不是这个:
BOOL PostMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

后面两个参数都不是指定按钮ID的哦。
xiao_ke 2008-03-13
  • 打赏
  • 举报
回复
.............
wparam lparam
总有1个是指定按钮ID的,个人看看MSDN嘛
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 akirya 的回复:]
打开你的资源文件,看按钮ID 是什么,然后在resource.h中找到对应的数值。
WM_COMMAND消息需要一个这样的数值。
如果程序不是你写的,用一些pe工具也能找到这个ID 对应的数值。
[/Quote]

PostMessage函数的参数并没有指定按钮的ID哦。
hejun548 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ttlyfast 的回复:]
以前搞过
[/Quote]

麻烦你再搞下可以不?:-)
ttlyfast 2008-03-13
  • 打赏
  • 举报
回复
以前搞过
野男孩 2008-03-12
  • 打赏
  • 举报
回复
FindWindow可以根据窗口类名或者窗口名确定一个窗口。

用VC打开exe文件,打开方式那里选择“资源”,就可以看到资源的信息。
  • 打赏
  • 举报
回复
打开你的资源文件,看按钮ID 是什么,然后在resource.h中找到对应的数值。
WM_COMMAND消息需要一个这样的数值。
如果程序不是你写的,用一些pe工具也能找到这个ID 对应的数值。
hejun548 2008-03-12
  • 打赏
  • 举报
回复
akirya,你好!

如何得到程序上的按钮ID呢?请指教!
hejun548 2008-03-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 akirya 的回复:]
找到窗口句柄 然后PostMessage消息即可
按钮什么的都是WM_COMMAND消息,再看看程序的按钮ID就可以了。
[/Quote]

如何这个窗口上有多个按钮呢?我只需要按其中一个
加载更多回复(9)
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-12 03:51
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下