若要使用ShellExecute函数,首先必须引用shellapi.pas单元,即在uses 中加入 ShellAPI。

一、标准用法
ShellExecute函数原型及参数含义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认操作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
上述仅仅是ShellExecute函数的标准用法,下面介绍它的特殊用法。

二、特殊用法
如果将FileName参数设置为“http:”协议格式,那么该函数将打开默认浏览器并链接到指定的URL地址。若用户机器中安装了多个浏览器,则该函数将根据Windows 注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器。
格式一:http://网站域名
如:ShellExecute(handle,'open',
'http://www.7788sky.cn', nil,nil,SW_SHOWNORMAL);
格式二:http://网站域名/网页文件名
如:ShellExecute(handle,'open',
'http://www.7788sky.cn/default.asp',nil,nil,SW_SHOWNORMAL);
格式三:如果要指定IE来访问可以这样写
如:ShellExecute(Handle,'open','IEXPLORE.EXE',
'http://www.7788sky.cn','',SW_SHOWNORMAL);
如果将FileName参数设置为“mailto:”协议格式,那么该函数将启动默认邮件客户程序,如Microsoft Outlook或Netscape Messanger。若用户机器中安装了多个邮件客户程序,则该函数将根据Windows 注册表中mailto协议处理程序的设置确定启动哪个邮件客户程序。
格式:mailto:
如:ShellExecute(Handle,'open',
'mailto:yourmail@126.com',nil,nil,SW_SHOWNORMAL);

PS:Delphi中加超链接亦可以这样写:新建一label1,在其caption中写入网址,如:www.7788sky.cn ,然后在label1的OnClick中写入:
ShellExecute(Application.MainForm.Handle,'open',PChar(Label1.Caption),nil,nil,SW_NORMAL); 即可,千万不要忘了在uses中写上Shellapi 。
同理,打开txt文件这样写:

if   FileExists(sFileName)   then  
ShellExecute(Handle,open,PChar(sFileName),nil,nil,SW_SHOWNORMAL)

开始一个新的应用程序
ShellExecute(Handle, ‘open’, PChar(’c:\test\app.exe’), nil, nil, SW_SHOW);

打开记事本,并打开一个文件(系统能识别记事本应用程序的路径,因此我们不必使用绝对路径)
   ShellExecute(Handle, ‘open’, PChar(’notepad’), PChar(’c:\test\readme.txt’), nil, SW_SHOW);

打印一个文档
   ShellExecute(Handle, ‘print’, PChar(’c:\test\test.doc’), nil, nil, SW_SHOW);

   注意:可能你会看到word暂时的被打开,但它会自动关闭。

打开一个HTML页面
   ShellExecute(Handle, ‘open’, PChar(’http://www.0735.org.ru/‘), nil, nil, SW_SHOW);

你能通过一个已经注册的文件类型来打开应用程序
   ShellExecute(Handle, ‘open’, PChar(’c:\test\readme.txt’), nil, nil, SW_SHOW);

用windows Explorer 打开一个目录
   ShellExecute(Handle, ‘explore’, PChar(’c:\windows)’, nil, nil, SW_SHOW);

运行一个DOS命令并立即返回
   ShellExecute(Handle, ‘open’, PChar(’command.com’), PChar(’/c copy file1.txt file2.txt’), nil, SW_SHOW);

运行一个DOS命令并保持DOS窗口存在
   ShellExecute(Handle, ‘open’, PChar(’command.com’), PChar(’/k dir’), nil, SW_SHOW);

转载于:https://blog.51cto.com/science/288199

打开文件、网页、文件夹等相关推荐

  1. 如何禁止ie打开本地网页文件时的安全提示

    今天遇到一个很令人头痛的问题,程序需打开一个本地的网页文件,此网页文件是用来打开一个弹出的网页,但是打开此网页文件时一直会弹出一个关于网页安全的提示,如果允许它弹出此网页,它就不弹出网页.围绕这个问题 ...

  2. HTML页面查看world等文件,网页文件 - HTML - 网页基础 - KK的小故事

    HTML - 网页文件 ¶作者:KK 发表日期:2016.01.26 学习本章节前你需要准备以下知识/技能: 使用 Chrome 浏览器/火狐浏览器来测试练习代码,如果用360极速浏览器或QQ浏览器等 ...

  3. 批处理打开html文件夹,批处理打开网页——可打开大量网页.doc

    批处理打开网页 步骤: 创建一文本文件,比如web.txt(看不到后缀名的,请打开计算机的文件夹选项,取消隐藏已知文件类型的扩展名,如图一),改后缀为.bat,文件变为web.bat. 图一 右键文件 ...

  4. 打开html文件进入文件索引,打开网站网页是文件夹目录怎么办

    文章简介 正常来说打开网页都可正常显示网页,却在换空间之后,打开二级目录却不是显示网站网页,而是显示服务器文件夹中的所有html文件及文件夹目录,这是一个网友问过的问题,相信不少网友也曾经碰到过类似或 ...

  5. Mac 自动化自动操作工作流程(Workflow)完成日常软件文件网页一键打开

    进入软件<启动台>,找到<自动操作>工具(其他),打开,点击下方<新建文稿>. 提示选择文稿类型,选<工作流程>,点<选取>进入新建. 1. ...

  6. 【bat批处理】手把手教你批量打开软件、文件、网页等

    [bat批处理]打开软件.文件等 0- 前言 1- start 命令用法 1.0 注释 1.1 start 命令说明 1.2 启动软件 1.3 打开文件 1.4 打开文件夹 1.5 打开网页 2-实战 ...

  7. Mac 自动化自动操作工作流程(AppleScript)完成日常软件文件网页一键打开

    每天上班都要打开相同的软件.文件.网页,很烦? 每天下班都要关闭相同的软件.文件.网页,很烦? 试试Mac系统自带的脚本AppleScript,一键上班,一键下班. 1.打开脚本编辑器(AppleSc ...

  8. linux c 判断文件打开文件,Linux 用C语言判断文件和文件夹

    Linux 用C语言判断文件和文件夹 #include #include #include #include int access(const char *pathname, int mode); i ...

  9. 打开FTP时,让文件以文件夹的形式显现

    打开FTP时,文件以文件夹的形式显现: 用IE6.0打开FTP时,文件以文件夹的形式显现,但IE7.0或IE8.0则不然,它是以列表的形式显示的,不直观. 如果要修改成打开FTP时,文件以文件夹的形式 ...

  10. 右键菜单打开文件所在文件夹的插件EasyExplore

    2019独角兽企业重金招聘Python工程师标准>>> 如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷 ...

最新文章

  1. CUDA Samples: approximate image reverse
  2. java.IO字节流和字符流详解
  3. 指针:调用自定义交换函数,完成三个数整从小到大排列
  4. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)
  5. 搜索引擎学习(二)Lucene创建索引
  6. 你不了解PHP的10件事情
  7. c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...
  8. 什么叫死锁?死锁案例?死锁必须满足哪些条件?如何定位死锁问题?有哪些解决死锁策略?哲学家问题?
  9. atlas安装需要kafka吗_Atlas 2.1.0 实践(2)—— 安装Atlas
  10. Django之Ajax刷新记住用户名
  11. C++中的错误处理方法(含示例代码)
  12. RHEL 5下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
  13. Too many input arguments.
  14. CC***原理及防范方法
  15. android 限制后台进程,不超过4个进程 开发者选项,后台允许不超
  16. 很好用的邮件发送软件mutt
  17. 前端实现在线预览文档(pdf、doc文件)
  18. Masked Siamese Networksfor Label-Efficient Learning
  19. 最新小程序反编译详细教程,亲测可用
  20. Buck电路设计之芯片选择---TI电源器件在电赛中的应用

热门文章

  1. celery 停止任务_Celery 周期任务运行一段时间后意外停止
  2. ccf公共钥匙盒python_[Python]CCF——公共钥匙盒(201709-2)
  3. 【图文】远程桌面链接:这可能是由于credssp加密oracle修正
  4. 从Hive导入数据到ES
  5. srs2.0安装问题
  6. 自己使用过比较好用的VSCode插件
  7. 国内5家云服务厂商 HTTPS 安全性测试横向对比
  8. 2012-12-17 → 2013-01-20 周总结:五周没写周总结了,今天来总结下
  9. 四、矩阵特征值与特征向量的计算
  10. timerfd.h中定义的函数