delphi怎样调用外部EXE文件

delphi怎样调用外部EXE文件,第1张

delphi 调用外部 EXE 程序,可以使用以下办法:

一、使用 WinExec 函数,示例代码:

WinExec('calc.exe',SW_NORMAL) //打开计算器

二、使用 ShellExecute 函数,示例:

ShellExecute(handle,'open','c:/myapp/myapp.exe','-s',',SW_SHOWNORMAL)

调用下面的WinExecAndWait32 函数即可。

function  WinExecAndWait32(FileName:String  Visibility  :  integer):  DWORD  

var  

        zAppName:array[0..512]  of  char

        zCurDir:array[0..255]  of  char

        WorkDir:String

        StartupInfo:TStartupInfo

        ProcessInfo:TProcessInformation

begin

        StrPCopy(zAppName,FileName)

        GetDir(0,WorkDir)

        StrPCopy(zCurDir,WorkDir)

        FillChar(StartupInfo,Sizeof(StartupInfo),#0)

        StartupInfo.cb  :=  Sizeof(StartupInfo)

        StartupInfo.dwFlags  :=  STARTF_USESHOWWINDOW

        StartupInfo.wShowWindow  :=  Visibility

        if  not  CreateProcess(

        nil,

        zAppName,  {  pointer  to  command  line  string  }

        nil,  {  pointer  to  process  security  attributes  }

        nil,  {  pointer  to  thread  security  attributes  }

        false,  {  handle  inheritance  flag  }

        CREATE_NEW_CONSOLE  or  {  creation  flags  }

        NORMAL_PRIORITY_CLASS,

        nil,  {  pointer  to  new  environment  block  }

        nil,  {  pointer  to  current  directory  name  }

        StartupInfo,  {  pointer  to  STARTUPINFO  }

        ProcessInfo  {  pointer  to  PROCESS_INF  }

        )

        then  Result  :=  $FFFFFFFF  else  begin

                WaitforSingleObject(ProcessInfo.hProcess,INFINITE)

                GetExitCodeProcess(ProcessInfo.hProcess,Result)

        end

end

procedure TForm1.N9Click(Sender: TObject)

var i:integer

begin

     WinExecAndWait32('PAS2 >tempc2.txt',0)

     EXECUTEFILE('notepad.EXE','tempc2.txt','',sw_showmaximized)

end

看你要做什么,比较现在网络很流行的QQ、MSN这些软件都屏蔽了,你可能还可以访问一些小软件的这些控制,思路及方案如下(API函数自己去百度查一下)

1.得到你要这个窗口的句柄 使用FindWindow

2.利用枚举函数EnumChildWindows把这个窗口里的所有文本框、按钮找到,并得到其句柄,EnumChildWindows需要一个回调函数,你可以在回调函数中把模拟输入,单击双击这些 *** 作加上去

3.在回调函数里,其实就是向你找到的按钮或文本框发送消息

消息说明:

比如得到文本框中的文字消息:WM_GETTEXT

设置文本框的文字消息:WM_SETTEXT

鼠标左键单击WM_LBUTTONDOWN必须与WM_LBUTTONUP配对使用

双击左键WM_LBUTTONDBLCLK


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11784019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存