如何使运用程序的输入输出变为自己程序的输入输出?(第一次,奉献一半200??)(200分)

  • 主题发起人 主题发起人 雪鹰
  • 开始时间 开始时间

雪鹰

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在自己程序中调用他人开发的win32程序,使得该被调用程序的输入由自己程序设置,该被调用程序的结果(该程序结果在edit中显示)自动读取到自己程序<br>中显示。<br>要求:<br>1、调用过程中不得出现被调用程序窗体。<br>2、最好用api函数解决,不要用控件,(因为有特殊需要,用api才给分<br>哦!!,^o^)<br>3、第一次提问请多多照顾.<br>系统功能应该有这能力吧??:-(<br>
 
难了,我也在解决这个问题!嘿嘿。。<br>我可不用出钱了
 
在WIN95里,所有的DOS程序都运行在一个虚拟机里, 这样就和WIN 32程序间进程通讯不一致,可能会有2个,3个DOS程序同时运行在一个虚拟机里,我想不出有什么方法<br>判断当前DOS虚拟机 里的结果是那一个程序输出的<br><br>妥当的方法是输出结果保存到文件里,然后你的WIN程序去读文件里的结果<br><br>可以考虑管道方式输出结果
 
huizhang 对这方面问题应该更在行些<br><br>对了, 现在holly来的少了,HOLLY对CONSOLE程序有研究
 
关注此问题
 
特别想了解!!!
 
也想知道。<br>
 
截获输入可以用hook,但程序间的通信用什么呢?我也不知道了。
 
截获的是WIN32程序,当然用HOOK取得程序的输入,用PEEKMESSAGE向该<br>程序发送控制,但对其输出的获得,那可要HOOK多少MESSAGE才能周到<br>^o^
 
(因为有特殊需要,用api才给分哦!!,^o^)<br>是不是在使用VB?不敢说!
 
没注意你说的是WIN32程序,这样上面所说的理论纯是废话了。<br><br>重新看了一下问题, &nbsp;输入可以用FINDWINDOW 查找另一程序的输入窗口<br>然后SENDMessage给他输入的消息就可以了<br><br>得到另一EDIT窗口的输入变化用SUBCLASS 方法, getwindowlong(handle,gwl_wndproc)取得该EDIT的窗口处理函数入口,然后在将自己写的<br>一个函数通过SetWindowLong(Hanlde, GWL_WNDPROC, pMyWndProc),在该函数中<br>处理EDIT的EN_CHANGE通知来获得EDIT的文本。<br><br>至于EDIT的句柄则可以通过WindowFromPoint和ChildWindowFromPoint来获得,<br>
 
&nbsp;王寒松:<br>&nbsp; 有道理!谢谢!
 
啊哦,skyface,可惜你不给我200分
 
我觉得你为什么不写一个oleautomation程序,这正是你所说的需求。<br>并且所有的消息发送都有com来处理了。<br>当然你可以用api函数来写com了。:-)<br>
 
这是拿别人的一个非Ole的32位程序做一个后台服务程序使用。要纯WinAPI调用是有<br>使用 **/*** 的嫌疑。提几点参考:<br><br>1。启动:用CreateProcess,令其不可见(但还是能够接受系统消息)<br>2。菜单命令:WM_Command 消息<br>3。找不可见窗口:GetWindow,EnumThreadWindow,EnumChildWindow<br>4。获取文字信息:WM_GetText<br>5。赋值文字信息:WM_SetText<br>6。键盘消息:WM_Keyup,WM_KeyDown,WM_Char, ...<br>7。鼠标消息:WM_LButton..., WM_RButton..., ...<br>8。关闭:WM_Command/WM_Close
 
后退
顶部