Delphi打开外部程序或文件.doc_第1页
Delphi打开外部程序或文件.doc_第2页
Delphi打开外部程序或文件.doc_第3页
Delphi打开外部程序或文件.doc_第4页
Delphi打开外部程序或文件.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WinAPI: ShellExecute - 打开外部程序或文件ShellExecute( hWnd: HWND; 指定父窗口句柄 Operation: PChar; 指定动作, 譬如: open、print FileName: PChar; 指定要打开的文件或程序 Parameters: PChar; 给要打开的程序指定参数; 如果打开的是文件这里应该是 nil Directory: PChar; 缺省目录 ShowCmd: Integer 打开选项): HINST; 执行成功会返回应用程序句柄; 如果这个值 = 32, 表示执行错误/返回值可能的错误有: = 0 内存不足ERROR_FILE_NOT_FOUND = 2; 文件名错误ERROR_PATH_NOT_FOUND = 3; 路径名错误ERROR_BAD_FORMAT = 11; EXE 文件无效SE_ERR_SHARE = 26; 发生共享错误SE_ERR_ASSOCINCOMPLETE = 27; 文件名不完全或无效SE_ERR_DDETIMEOUT = 28; 超时SE_ERR_DDEFAIL = 29; DDE 事务失败SE_ERR_DDEBUSY = 30; 正在处理其他 DDE 事务而不能完成该 DDE 事务SE_ERR_NOASSOC = 31; 没有相关联的应用程序/ShowCmd 参数可选值:SW_HIDE = 0; 隐藏SW_SHOWNORMAL = 1; 用最近的大小和位置显示, 激活SW_NORMAL = 1; 同 SW_SHOWNORMALSW_SHOWMINIMIZED = 2; 最小化, 激活SW_SHOWMAXIMIZED = 3; 最大化, 激活SW_MAXIMIZE = 3; 同 SW_SHOWMAXIMIZEDSW_SHOWNOACTIVATE = 4; 用最近的大小和位置显示, 不激活SW_SHOW = 5; 同 SW_SHOWNORMALSW_MINIMIZE = 6; 最小化, 不激活SW_SHOWMINNOACTIVE = 7; 同 SW_MINIMIZESW_SHOWNA = 8; 同 SW_SHOWNOACTIVATESW_RESTORE = 9; 同 SW_SHOWNORMALSW_SHOWDEFAULT = 10; 同 SW_SHOWNORMALSW_MAX = 10; 同 SW_SHOWNORMAL-/举例说明更多问题(别忘了 uses ShellAPI;):譬如用记事本打开一个文件begin ShellExecute(Handle, open, notepad.exe, C:WINDOWSSchedLgU.Txt, nil, SW_SHOWNORMAL);end;-第一个参数是用来当作错误提示窗口的父窗口的, 不能是 nil, 可以是 0(也就是桌面窗口)begin ShellExecute(0, open, notepad.exe, C:WINDOWSSchedLgU.Txt, nil, SW_SHOWNORMAL);end;-第二个参数如果是 nil, 也会默认位 openbegin ShellExecute(0, nil, notepad.exe, C:WINDOWSSchedLgU.Txt, nil, SW_SHOWNORMAL);end;-文件路径可以放在参数五begin ShellExecute(0, nil, notepad.exe, SchedLgU.Txt, C:WINDOWS, SW_SHOWNORMAL);end;-把参数三直接指定为要打开的文件, 文件将用对应默认程序打开; 次数参数四应为 nilbegin ShellExecute(0, nil, SchedLgU.Txt, nil, C:WINDOWS, SW_SHOWNORMAL);end;-如果文件在: 程序目录/当前目录/System32/Windows/PATH环境变量中, 参数五也可以 nilbegin ShellExecute(0, nil, SchedLgU.Txt, nil, nil, SW_SHOWNORMAL);end;-如果参数三是个文件, 可以用参数二命令打印begin ShellExecute(0, print, SchedLgU.Txt, nil, nil, 1);end;-用 IE 打开网页begin ShellExecute(Handle, open, IExplore.EXE, about:blank, nil, SW_SHOWNORMAL);end;-用火狐打开网页begin ShellExecute(Handle, open, firefox.exe, about:blank, nil, SW_SHOWNORMAL);end;-来源:(/s/blog_4b05f08e0100h5py.html) - Delphi打开外部程序或文件_漂忆_新浪博客用默认浏览器打开网页begin ShellExecute(Handle, open, Explorer.exe, about:blank, nil, SW_SHOWNORMAL);end;-还是用默认浏览器打开网页begin ShellExecute(0, nil, , nil, nil, 1);end; Delphi技巧集六 (等待执行完一个外部程序再执行另一个程序)Posted on 2008-08-10 23:20 清枫&明月 阅读(80) 评论(0) 编辑 收藏 网摘 所属分类: Delphi编程资料 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1;implementationuses ShellAPI; /注意$R *.dfmfunction ExecAppWait(AppName, Params: string): Boolean;var ShellExInfo: TShellExecuteInfo;begin FillChar(ShellExInfo, SizeOf(ShellExInfo), 0); with ShellExInfo do begin cbSize := SizeOf(ShellExInfo); fMask := see_Mask_NoCloseProcess; Wnd := Application.Handle; lpFile := PChar(AppName); lpParameters := PChar(Params); nShow := sw_ShowNormal; end; Result := ShellExecuteEx(ShellExInfo); if Result then while WaitForSingleObject(ShellExInfo.HProcess, 100) = WAIT_TIMEOUT do begin Application.ProcessMessages; if Application.Terminated then Break; end;end;procedure TForm1.Button1Click(Sender: TObject);const 连续运行下面这四个EXE文件 EXEFILES : array1.4 of string = (calc.exe, mspaint.exe, Notepad.exe, wordpad.exe);var Success: Boolean; InstanceID: THandle; I : integer;begin for I := Low(EXEFILES) to High(EXEFILES) do begin Application.Minimize;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论