快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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:\\WINDOWS\\Notepad.exe %1" 


* - 本贴最后修改时间:2001-7-10 15:47:39 修改者:运气
* - 修改原因:错误




返回类别: 教程
上一教程: Microsoft 脚本编码器(2) --- 使用脚本编码器
下一教程: Microsoft IIS 真的如此「不安全」吗?(3)

您可以阅读与"ASP连接执行程序 "相关的教程:
· ASP连接执行程序
· ASP程序暂停指定的时间后再继承执行
· 把ASP程序封装成可执行文件(无需IIS WEB服务器)直接运行的治理系统
· ASP调用SQL SERVER存储程序 
· 在ASP程序中执行SQL语句的安全性问题
    微笑服务 优质保证 索取样品