如何在DELPHI中调用其它应用程序中的某项功能 (50分)

  • 主题发起人 主题发起人 bitwomen
  • 开始时间 开始时间
B

bitwomen

Unregistered / Unconfirmed
GUEST, unregistred user!
着急!马上需要源程序,谢谢!
 
请具体讲要调用哪个程序的什么功能
 
要看该功能是怎么“封装”的。你可以具体一点。
 
比如IE浏览器中的“工具”菜单下的“同步”选项。
 
IE好像可以通过DDE来控件吧!

如果是其它程序,好像只能是OLE,如果不直接,那只能HOOK了,呵呵~
 
to doll_paul
可以举个例子吗?
 
用shellapi 运行要用的程序,向它发msg, 模拟键盘按键,当然你要
知道软件的菜单热键。
如:IE浏览器中的“工具”菜单下的“同步”选项
先发alt-t, 再发s
 
有源程序吗?谢谢!
 
procedure TForm14.Button2Click(Sender: TObject);
begin
shellexecute(handle,nil,pchar('wordpad.exe'),nil,nil,sw_shownormal);
end;
这样的调用我会,但是如何模拟键盘的键入呢?
 
查查 DFW ,我帮你查到一条新的:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1371239 <--- 看 wjiachun 的说明!
另外,您贴错版了也。
 
只要有com接口就可以,不过这一点还是vb好有sendkey
 
有源程序吗?
liuyj@cbn.com.cn
 
难道没有富翁曾经做过这样的程序段吗?谁能个具体的例子啊,我现在是真的很需要帮助啊












 
先用shell接口取得ie的入口,然后就可以控制
ie的动作,去离线库里搜索下,这问题讨论很多了。
搜索: shellwindow 或 webbrowser
 
如果只要模拟下按键
非常简单,源码如下:
我用d5,在光盘上的info/extra目录下copy出sndkey32.pas
use sndkey32,
针对打开大富翁的的ie: (不用shellexecute,就可以不用repeat)
var hnd:hwnd;
先h=shellexecute打开ie, if h<=32 then say('no handle');

repeat //(不用shellexecute,就可以不用repeat)
hnd:=findwindow('ieFrame',nil);
Application.ProcessMessages;
until hnd<>0;
SetForegroundWindow(hnd);
sendkeys('%vc',true); //按下ALT-V,C 打开源文件
sendkeys('%ts',true); //按下ALT-T,S 打开同步对话框

我在w2k svr(sp3), ie6(sp1), d5(upd1) 运行正常。
btw:以前的帖子有很多是乱说的,没验证过的别信。 :)——
 
多人接受答案了。
 
后退
顶部