可以呀!!通过API函数
findwindow
findwindowex
sendmessage好象就这3个就可以!具体可以看相关的资料
findwindow
findwindowex
sendmessage好象就这3个就可以!具体可以看相关的资料
解决方案 »
- 请教高手 给出一个限制条件后判断在DBGrid1中显示
- 如何把 word 文档导入到 RichEdit 中.或第三方的 RichEdit
- 最简单的数据库问题!请大家都来看一下,我是个初学者,希望高手指点入门
- 如何在MDI的主窗口非客户区显示图像或信息?
- 请问用tquery时是否也需要bde?
- 怎样动态创建ACCESS数据库和EXCEL文件?
- 我把以前未结帖子都结了,为热烈庆祝本人结帖率100%,决定狂散300分!!!当然这里100隔壁还有...
- 那位朋友知道这个函数?
- 什么是DELPHI?
- 如何從timestamp類型字段中提取出日期信息?
- 怎样删除 string 的后 n 个字符?
- Delphi开发的程序不稳定的原因?
调用外部程序用WinExec()即可,如:WinExec('*.exe',SW_SHOWNORMAL);
至于中止外部程序方法很多,可以找Caption然后Kill,也可以发送消息sendmessage()。//再有B程序开始执行后能不能发一个消息使A程序的定时器开始动作?或者不用消息用别的机制?
方法也很多,如通过监测B程序进程,用GetWindowText()或者etExitCodeProcess(),也可以用FindWindow()寻找窗口标题确定。
下面给你一个函数:
Function ApplicationUse(fName : string ) : boolean;
var
HFileRes : HFILE;
begin
Result := false;
if not FileExists(fName) then exit;
HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,0, nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then CloseHandle(HFileRes);
end;
这样的东西大概做不出来吧?
不过如果另一个程序是您自己写的话,使用发送消息的办法是可以的:
先定义一个消息:MyMess=User+1002;发送程序:SendMessage(FindWindow(??,??),MyMessage,M,L)
--------------------------------M,L自己定义的消息参数,具体自己看帮助
接收程序:先定义一个过程:
procedure GetMyMess(var M:TMessage);Message MyMess;
然后在过程中实现该消息