简单问题——关于shellexecute 的使用方法(20分)

  • 主题发起人 主题发起人 wlfzzy
  • 开始时间 开始时间
W

wlfzzy

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎样才能让外部程序执行在一个窗口中呢?我已经让ShowCmd参数=1了
 
参考一下

首先,我们粗略地研究一下ShellExecute()的几个参数:
hwnd:窗体的句柄;
lpOperation:打开程序执行的操作,共预留有“open”、“explore”、“print”三种方式,此
参数可以省略,此时将依据打开的文件(lpFile)的类型执行相应的操作,比如:如果lpFile为一文本
文件,那么将会在与该文件相关联的程序中打开它;
lpFile:文件名;
lpParamerters:打开文件时所需的参数;
lpDirectory:文件名所在的路径,当然,一般来说,在Windows中登“记记”过的程序(如WinWord)
不必提供此参数;
nShowCmd:打开文件后程序窗体如何显示。
该函数的详细文档请读者朋友参阅相应帮助。

其次,我们来举一个例子(以“记事本”为例):
procedure TForm1.OpenBtnClick(Sender:TObject);
begin
ShellExecute(handle,'open','notepad.exe',nil,nil,SW_ShowNormal);
end;
读者朋友可以在你的Delphi环境下试试这段代码,当然,由于使用Windows的API函数,请加上
ShellAPI单元。
 
它的用处可多呢,在看看

在程序中调用浏览器
一直很羡慕别人能在程序中加入一个有主页地址的Label,点它会直接进入Win95
的缺省浏览器。“这里面用了什么高级系统调用呢?”想啊想啊......
你有没有听说过“精诚所至,金石为开”?我就是。因为我终于想到了!请看:
1、在Form上放一个Label1,Caption设为一个URL,如 http://afg.yeah.net
在Font选项中选中下划线。
2、双击它,进入onClick事件。加上:
ShellExecute(Handle, nil,pchar(Label1.caption),'','', 0);
3、在程序开头部份的uses子句中加上 shellapi。
运行。怎么样?感觉很好吧。另外,如果想调用Email程序也很简单,只要这样写
mailto:afg@163.net
就搞定了。至于其它Internet服务如ftp,telnet,gopher,news...应该同样道理吧。
 
后退
顶部