易截截图软件、单文件、免安装、纯绿色、仅160KB

如何让Delphi调用外部程序并等待其运行信息(如结束)

函数一:
view plaincopy to clipboardprint?
uses 
    Windows,  
    SysUtils,  
    Classes,  
    ShellAPI;  
function RunAndWait(FileName: string; Visibility: Integer): THandle;  
var 
    zAppName: array[0..512] of Char;  
    zCurDir: array[0..255] of Char;  
    WorkDir: string;  
    StartupInfo: TStartupInfo;  
    ProcessInfo: TProcessInformation;  
begin 
    try 
      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, nil, nil, false, Create_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then 
      begin 
        result := 0;  
        Exit;  
      end 
      else 
      begin 
        WaitForSingleObject(ProcessInfo.hProcess, INFINITE);  
        GetExitCodeProcess(ProcessInfo.hProcess, result);  
      end;  
 


相关文档:

Delphi Copy函数效率的问题

技术交流,DH讲解. 最近和肥鸟交流了下关于字符串方面的知识,而这篇文章是很久以前写的,现在发出来吧. 我们写两段代码来对比下:
第一个用Copy函数:
procedure TForm1.Button1Click(Sender: TObject);
var
a,c:Cardinal;
n:Integer;
D:Double;
i:Integer;
b:string;
begin
c:=0; ......

Delphi Enum

枚举类型
  Pascal程序不仅用于数值处理,还更广泛地用于处理非数值的数据。例如,性别、月份、星期几、颜色、单位名、学历、职业等。
1、枚举类型的定义
格式: type 枚举类型标识符=(标识符1,标识符2,…,标识符n)
2、枚举类型数据特点
① 枚举元素只能是标识符;
例如,下列类型定义是合法的:
   type ......

Delphi 嵌入汇编 进Ring0 360tray.exe

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TlHelp32;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Pub ......

Delphi abc

1. 字符串连接直接用+,与Java和Python中的相同
2. 执行外部命令使用winexec,ShellExecute
    eg. ShellExecute(0, 'open', 'jre/bin/java', '-lang zh-CN', 'E:\myfolder', SW_SHOW);
3. 判断文件、文件夹是否存在
    FileExists('C:\Users\bill\somefile.txt')
    ......

Override Delphi Form's Restore Operation

{ Private declarations }
procedure WMSysCommand (var Msg: TWMSysCommand) ; message WM_SYSCOMMAND;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if Msg.CmdType = SC_RESTORE then
begin
ShowMessage('SC_RESTORE');
if self.WindowState = wsMaximized then
begin
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号