Delphi 调用外部程序并阻塞到外部程序中 背景说明: 前段时间开发一个数据转换的系统,业务逻辑中说明数据需要压缩成.tar.gz格式. 我在Windows系统下采用,先生成批处理文件,然后调用WinExec执行批处理文件,休眠等待一段时间,完成数据的自动压缩. 后来发现,待压缩文件的大小不确定,单纯的执行WinExec时Sleep固定时间,可能导致压缩失败.文件不全或损坏. 优化方案: 取代WinExe用CreateProcess用来启动进程, 执行批处理文件, 同时系统会自动填写TProc…
delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOperation, lpFile, lpParameters, lpDirectory: String; Begin lpHwnd:= GetDesktopWindow(); lpOperation:= 'open'; lpFile:= 'mailto:' + 'Maple119@263.net' + '…
转自:http://blog.csdn.net/xieyunc/article/details/4140620   如何让Delphi调用外部程序并等待其运行结束 1. uses     Windows,     SysUtils,     Classes,     ShellAPI; function RunAndWait(FileName: string; Visibility: Integer): THandle; var     zAppName: array[0..512] of Ch…
发现个delphi调用vc写的Dll中包括pchar參数奇怪现象 procedure中的第一行语句不能直接调用DLL的函数,否则会执行报错,在之前随意加上条语句就不报错了奇怪! vc的DLL源代码地址 http://blog.csdn.net/lqena/article/details/46357165 Delphi源代码例如以下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphic…
问题描述: 具体问题就是在隐式使用接口变量后,在FreeLibrary执行后,就会出现一个非法访址的错误. 这个错误的原因就是在FreeLibrary后,DLL以的代码均为不可用状态,而在代码执行完整个过程后,VCL要对RTL类型的数据进行清理.而在清理过程中肯定要对接口进行减1并进行释放相关对象.而对象代码已从进程空间卸载,故报非法访址错误! 解决方法: 所以要想解决该问题,就应该把DLL调用过程放到一个单独的过程中,其目的就是让调用完毕后,让VCL来清理接口.清理完毕后返回后,再调用Free…
delphi调用web service出现 Unable to retrieve the URL endpoint  for Service/Port, 错误截图如下 查了很长时间, 发现在DataModule的Create事件中加入公用HttpRio控件初始化语句即可解决此问题. TransDataHRIO.WSDLLocation:='http://ip地址/WS/TransData.asmx?WSDL'; TransDataHRIO.Service:= 'TransData'; Trans…
原文:http://www.cnblogs.com/zhangzhifeng/archive/2013/08/15/3259084.html Delphi调用C#写的webservice 用delphi的THTTPRIO控件调用了c#写的webservice. 下面是我调试时遇到的一些问题: 1:导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址:如下:http://127.0.0.1/ WebService/W…
Delphi 调用netsh命令修改IP地址 先介绍一下Netsh命令的使用方法: 在这里跟大家介绍几个简单的指令 1.Show IP 1.1Cmd Mode 直接在cmd下面输入 netsh interface ip show address 亦可简写为 netsh int ip sh ad 看看,指令是不是和Cisco的nos指令很像!非常怀疑是抄袭Cisco的. 1.2Netsh Mode 您也可以进入netsh的命令模式下 netsh //进入到 netsh mode netsh>int…
第二步:将webserivce的WSDL导入到该dll工程中,如何导,方法至少有两种,我说简单的一种:  file->new->other->WebService->WSDL Importer,(将C#的WSDL输入)然后delphi会自动给你生成了一个pas文件, (比如我们当前例子的服务地址是:http://localhost/AttributeTesting/AttributeTesting.asmx 如果你想输入WSDL那么就是http://localhost/Attrib…
delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hide);sleep(2000);memo1.Lines.LoadFromFile('c:\1.txt'); 2shellexecute(handle,nil,'cmd.exe',pchar(form2.edit1.text),nil,sw_hide);WinExec主要运行EXE文件.如:WinExec(’…