ASP连接执行程序

2016-01-29 17:27 34 1 收藏

ASP连接执行程序,ASP连接执行程序

【 tulaoshi.com - ASP 】

  一、需求 
当前,使用ASP开发动态网页,客户端使用微软公司的IE系列浏览器查看是一种很流行的模式。我们在开发过程中遇到了这样的一个问题,由于技术和时间上的限制,必须在网页中调用一个执行程序。你当然可以用一个超级链接直接指向所需的程序,但这样做会被微软“黑”一下的:每次在IE中打开这个链接时就会出现一个不受欢迎的警告框(当然,它有它的道理,主要是出于安全方面的考虑),这对用户来说是很能接受的。能不能用一个很方便、简洁的方法来解决这个问题呢? 
经过一番研究,出台了一个被称为“李代桃僵”的方法: 
l 在系统中创建一种特定的文件类型,如:*.spa; 
2 将该类型的文件与要在ASP中执行的程序关联起来; 
3 超级链接指向一个设定的扩展名是“spa”的文件。 
这种做法的原理是:在IE中通过超级链接打开一个文件时,如果浏览器自身能解释该类型的文件,文件的内容直接显示在浏览器中,如文本文件,否则就搜索注册表中设置,找出处理这种类型文件的程序,然后调用相应的程序打开该文件。 
二、方法 
具体的实现方法为手工和自动两种方式,如下所示: 
(一)、手工设置 
l 打开资源管理器,如图1所示,点击[查看]菜单中的[文件夹选项]菜单,系统显示[文件夹选项]对话框,如图2所示,其中有[文件类型]页; 

注意:须选中某个文件或文件夹,如果选中提[打印机]或[控制面板]等该对话框没有这一页 

2 点击[新建类型(N)…]按钮,打开[添加新文件类型]对话框,如图3所示。在[类型说明]文本框中输入“ASP关联”,在[相关扩展名]文本框中输入“.spa”;(注:[内容类型]是用做选择已经安装的程序关联某种类型的文件,该框不填) 


3 打开”,点击[浏览(R)…]按钮,在对话框中选择要在ASP中调用的程序。

4 点击每个对话框的[确定]的按钮即可完成; 

特别注意:如图3所示的[添加新文件类型]对话框的下方面有一个[下载后确认打开]选项。该选项在默认状态下是被选中的,这种情况下,在网页中初次打开“.spa”类型的文件时,系统会给出提示框询问是否继始终用某个程序打开该类型的文件。如果连这个框也不想出,则须将[下载后确认打开]选项置于非选中状态 

设置完成后,超级链接指向一个文件,如a.spa,再点击一次,你就会看到你需要的程序不讲任何条件就运行起来了! 
自动设置 
很显然,系统编制完成交到用户手中时,如果还要求用户做上述设置是不现实的,软件的生存能力会大打折扣,因为没有几个人会愿意听扩展名和注册表的。那么就必须让述的工作自动完成。 
在手工设置的程序与文件关联后,所有相关的信息都存在了注册表中,因此只要在注册表中写入相同的内容即可实现关联可执行程序的功能。在注册表中写入一些信息对现有的编程软件来说是一件比较简单的事情,象VB和Delphi都提供了完整的存取注册表内容的的函数,另外打包工具通常也是提供写注册表的功能的。那么如何在注册表中找到对应的信息呢。该当方法如下: 
l 打开注册表编辑器(点击开始菜单中的运行,在文件框中输入“regedit”,回车); 
2 点击注册表编辑器中的[编辑]菜单中的[查找]菜单项,在[查找目标]文本框中输入“.spa”,然后开始查找,很快就会找到一个名叫“.spa”的主键,它有一个默认的字符串值“spafile”。点击[注册表]菜单中的[导出注册表文件],将该主键的设置导出到一个文件中,如“spa1.reg”; 
4 再次使用[编辑]菜单中的[查找]菜单项,在[查找目标]文本框中输入“spafile”,然后开始查找,很快就会找到一个名叫“spafile”的主键,它有“Shell”等子键,采用上一步同样的方法,将该主键的设置导出到一个文件中,如“spa2.reg” 
现在只需打开这两个文件,参照其中的设置写几行程序,工作就完成了! 

3.附两个注册表文件的内容 
l spa1.reg 
[HKEY_CLASSES_ROOT.spa] 
@="spafile" 
注:“@”是默认的意思 

l spa2.reg 
[HKEY_CLASSES_ROOTspafile] 
@="ASP关联" 
"EditFlags"=hex:00,00,01,00 

[HKEY_CLASSES_ROOTspafileShell] 
@="" 

[HKEY_CLASSES_ROOTspafileShellopen] 
"EditFlags"=hex:01,00,00,00 

[HKEY_CLASSES_ROOTspafileShellopencommand] 
@="C:WINDOWSNotepad.exe %1" 


* - 本贴最后修改时间:2001-7-

来源:http://www.tulaoshi.com/n/20160129/1501468.html

延伸阅读
标签: Delphi
  有关 Delphi 传入应用程式的命令列参数, 请参考以下的说明: 用ParamCount函数取得命令参数的个数: 呼叫 ParamStr(0), 传回执行档的档名(含路径) 呼叫 ParamStr(n), 传回第n个参数的内容 procedure TForm1.FormCreate(Sender: TObject); var sFileName: string; begin if ParamCount 0 then begin (* 有执行参数传入 *) sFileNam...
for c++builder,用于vc应该把消息框改一下就可以了 void contour(void){ char ln[100];   int make;   char str[100]="";   char *tip="不能执行:"; sprintf(ln,"%s\%s",getcurrentdir(),"watson.exe"); char path[100]; sprintf(path,"%s",getcurrentdir()); c...
如何避免程式重复执行?(侦测是否存在前一副本,若有,则结束目前新启动的程式)。使用者在启动程式后,有时会将程式缩小在工作列上,之后要用时,又会重新启动一次程式,资料库程式有时会因此造成资料错乱!若您不希望使用者重复启动程式,您可以使用APP物件来判断,方法如下: PrivateSubForm_Load() IfApp.PrevInstanceThen'检视前...
在服务器上的操作 (1)以system用户、SYSDBA身份登录,执行creategraduateuser.sql文件创建用户graduateuser。 (2)执行createtablegraduateinfo.sql文件创建数据表graduateuser.graduate_info。 (3)执行createtabledirectorinfo.sql文件创建数据表graduateuser.director_info。 (4)执行createtablemajorinfo.sq...
iphone后台运行程序管理 1. 按两下主屏幕按钮后,出现程序图标滑动图标便会出现更多的程序图标。多任务处理功能并没有通过牺牲电池续航以及前端软件性能为代价来实现的。有了它我们可以真正完成边收邮件、边听音tulaoshi.com乐、边建立文件的操作。 2. 出现图标后,按住某一图标便会出现关闭图标,关闭某一图标后下一个图标回不上...

经验教程

142

收藏

52

精华推荐

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部