我的人生路  
日历
<2005年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
统计
  • 随笔 - 74
  • 文章 - 57
  • 评论 - 7
  • 引用 - 0

导航

常用链接

留言簿(5)

随笔分类

随笔档案

文章分类

文章档案

相册

颜色

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

2005年7月9日

在java算法(Scott robert ladd)中看到快速傅立叶变换,讲的很详细,摘录下来跟大家分享!
以下正文:
FFT或许是已知的最有效的算法,他应用范围广。从信号的处理到数据压缩到地震分析和图形放大,FFT通过领域间的信息转换
提供了一个强有力的工具,本节讲讨论FFT如何改进多项式乘法的性能:
 到目前为止,我用系数形式表示多项式,但有些应用程序最适合用point-value形式表示多项式,任何多项式都可被n个点值
 对来表示,这里,value是多项式在给定点point的值,许多数学应用要使用FFT实现点值和系数之间的快速变换。
    两个多项式A和B快速相乘的过程如下:
 1,用同一组值把A和B从十形式转换为点值形式pA和pB。
 2。pA和pB对应的点值相乘,得到pC。
 3。对pC进行插值得到系数多项式C,他等于A乘上B。
表面上看,上述算法比在mul中使用之际相乘并不高效--却更复杂,选择合适的计算值可以使点-值乘法非常快。

public class PolynomialFFTextends polynomial
{
 //utility field
 final protected static Complex p|2|=new Complex(0.0D,6.283185307179586D);

 //utility methods
 protected static int log2(int n)
 {
  int x=1;
  int c=0;
  while(true)
  {
   if (x>=n) break;
   ++c;
   x<<=1;
   if (x==0) break;
   
  }
  return c;
 }
 protected static int FlipBits(int k,int bits)
 {
  int lm=1<<(bits-1);
  int rm=1;
  int r=0;
  while (lm != 0)
  {
   if ((k&rm)!=0)
   {
    r|=lm;
    lm>>=1;
    rm<<=1;
   }
  }
  return r;
 }
};

//increase degree to power of two
protected static PolynomialFFT stretchFFT(PolynomialFFT p)
{
 int n=1;
 int d=p.m_nDegree;
 while(true)
 {
  if (d<=n) break;
  n<<=1;
  if (n==0)
  {
   throw new ArithmeticException("StretchFFT failed");
  }
  n<<=1;
  return new PolynomialFFT(p.stretch(n));
 }
}

//待续

posted @ 2006-02-16 10:16 一天一点爱恋 阅读(1080) | 评论 (0)编辑 收藏
 

ping命令详解

        对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:

     Options:


-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.
解析计算机NetBios名。
示例:C:\>ping -a 192.168.1.21
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。


-l size Send buffer size.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。

r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)


Pinging 202.96.105.101 with 32 bytes of data:


Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90


Ping statistics for 202.96.105.101:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,TTL 字段值可以帮助我们识别操作系统类型。
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
  128---80
  64----40
  32----20
好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由于某些原因也包括我自己所收集的资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇文章的朋友当中有知道得比我更多的,以及其他使用技巧的也希望您能告诉我,并在此先谢过。
 

posted @ 2005-12-30 13:46 一天一点爱恋 阅读(280) | 评论 (0)编辑 收藏
 

Windows 开始→运行→命令 集锦
winver---------检查Windows版本  
wmimgmt.msc----打开windows管理体系结构(WMI)  
wupdmgr--------windows更新程序  
wscript--------windows脚本宿主设置  
write----------写字板  
winmsd---------系统信息  
wiaacmgr-------扫描仪和照相机向导  
winchat--------XP自带局域网聊天  

mem.exe--------显示内存使用情况  
Msconfig.exe---系统配置实用程序  
mplayer2-------简易widnows media player  
mspaint--------画图板  
mstsc----------远程桌面连接  
mplayer2-------媒体播放机  
magnify--------放大镜实用程序  
mmc------------打开控制台  
mobsync--------同步命令  

dxdiag---------检查DirectX信息  
drwtsn32------ 系统医生  
devmgmt.msc--- 设备管理器  
dfrg.msc-------磁盘碎片整理程序  
diskmgmt.msc---磁盘管理实用程序  
dcomcnfg-------打开系统组件服务  
ddeshare-------打开DDE共享设置  
dvdplay--------DVD播放器  

net stop messenger-----停止信使服务  
net start messenger----开始信使服务  
notepad--------打开记事本  
nslookup-------网络管理的工具向导  
ntbackup-------系统备份和还原  
narrator-------屏幕“讲述人”  
ntmsmgr.msc----移动存储管理器  
ntmsoprq.msc---移动存储管理员操作请求  
netstat -an----(TC)命令检查接口  

syncapp--------创建一个公文包  
sysedit--------系统配置编辑器  
sigverif-------文件签名验证程序  
sndrec32-------录音机  
shrpubw--------创建共享文件夹  
secpol.msc-----本地安全策略  
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码  
services.msc---本地服务设置  
Sndvol32-------音量控制程序  
sfc.exe--------系统文件检查器  
sfc /scannow---windows文件保护  

tsshutdn-------60秒倒计时关机命令  
tourstart------xp简介(安装完成后出现的漫游xp程序)  
taskmgr--------任务管理器  

eventvwr-------事件查看器  
eudcedit-------造字程序  
explorer-------打开资源管理器  

packager-------对象包装程序  
perfmon.msc----计算机性能监测程序  
progman--------程序管理器  

regedit.exe----注册表  
rsop.msc-------组策略结果集  
regedt32-------注册表编辑器  
rononce -p ----15秒关机  
regsvr32 /u *.dll----停止dll文件运行  
regsvr32 /u zipfldr.dll------取消ZIP支持  

cmd.exe--------CMD命令提示符  
chkdsk.exe-----Chkdsk磁盘检查  
certmgr.msc----证书管理实用程序  
calc-----------启动计算器  
charmap--------启动字符映射表  
cliconfg-------SQL SERVER 客户端网络实用程序  
Clipbrd--------剪贴板查看器  
conf-----------启动netmeeting  
compmgmt.msc---计算机管理  
cleanmgr-------垃圾整理  
ciadv.msc------索引服务程序  

osk------------打开屏幕键盘  
odbcad32-------ODBC数据源管理器  
oobe/msoobe /a----检查XP是否激活  
lusrmgr.msc----本机用户和组  
logoff---------注销命令  

iexpress-------木马捆绑工具,系统自带  

Nslookup-------IP地址侦测器  

fsmgmt.msc-----共享文件夹管理器  

utilman--------辅助工具管理器  

gpedit.msc-----组策略

posted @ 2005-12-30 13:41 一天一点爱恋 阅读(400) | 评论 (0)编辑 收藏
 
 我想大家都看过各种各样的滚动(最常用的就是用在新闻的更新上面),一般情况下只要不是图片,都是用HTML本身就有提供一个很不错的滚动标记——marquee来完成的(用JS也可以同样实现这种效果);当然并不是说图片就不能那样做。
  以下为marquee的一些基本的参数:
  该标记语法格式如下:
<marquee
aligh=left|center|right|top|bottom
bgcolor=#n
direction=left|right|up|down
behavior=type
height=n
hspace=n
scrollamount=n
Scrolldelay=n
width=n
VSpace=n
loop=n>内容</marquee>

  下面解释一下各参数的含义:
  align:是设定活动字幕的位置,除了居左、居中、居右三种位置外,又增加靠上(top)和靠下(bottom)两种位置。
  Bgcolor:用于设定活动字幕的背景颜色,可以使用英文的单词也可以是十六进制数的。
  Direction:用于设定活动字幕的滚动方向是向左(left)、向右(right)、向上(up)、向下(down)。
  Behavior:用于设定滚动的方式,主要由三种方式:
behavior="scroll"表示由一端滚动到另一端;
behavior="slide":表示由一端快速滑动到另一端,且不再重复;
behavior="alternate"表示在两端之间来回滚动。
  Height:用于设定滚动字幕的高度。
  Width:则设定滚动字幕的宽度。
  Hspace和vspace:分别用于设定滚动字幕的左右边框和上下边框的宽度。
  Scrollamount:用于设定活动字幕的滚动距离。数值越小,滚动的速度就越快。
  scrolldelay:用于设定滚动两次之间的延迟时间,数值越小,间隔就越小。
  Loop:用于设定滚动的次数,当loop=-1表示一直滚动下去,直到页面更新。其中默认情况是向左滚动无限次,字幕高度是文本高度;滚动范围:水平滚动的宽度是当前位置的宽度;垂直滚动的高度是当前位置的高度。

  现在要介绍的是一种新型的滚动,利用JS的方法来做字幕的滚动:向上,在中间停顿一到两秒(就像经典的这种):
  将以下代码贴到您要显示的位置就可以了:
<script>
var marqueeContent=new Array(); //定义一个数组,用来存放显示内容
marqueeContent[0]='<A href="#" onclick="reinitMarquee()">刷新最新列表</FONT></A>';
marqueeContent[1]='<a href=http://www.blueidea.com/updatelist.asp target=_blank>站点最新更新六十条</a>';
marqueeContent[2]='<A href=http://www.blueidea.com/tech/graph/2003/875.asp target=_blank>羽毛效果制作教程</a>';
marqueeContent[3]='<A href=http://www.blueidea.com/tech/program/2003/831.asp target=_blank>MySQL&ASP</a>';
marqueeContent[4]='<A href=http://www.blueidea.com/tech/web/2003/874.asp target=_blank>初步了解CSS3</a>';
marqueeContent[5]='<A href=http://www.blueidea.com/tech/graph/2003/864.asp target=_blank>Fireworks MX 2004执行面版操作</a>';
marqueeContent[6]='<A href=http://www.blueidea.com/tech/graph/2003/872.asp target=_blank>Fireworks MX 2004等高渐变填充</a>';
marqueeContent[7]='<A href=http://www.blueidea.com/photo/gallery/2003/873.asp target=_blank>瓶子里的花</a>';
marqueeContent[8]='<A href=http://www.blueidea.com/tech/graph/2003/871.asp target=_blank>Fireworks MX 实现选项卡式效果</a>';
marqueeContent[9]='<A href=http://www.blueidea.com/photo/gallery/2003/870.asp target=_blank>情侣:黑白的爱情空气</a>';
marqueeContent[10]='<A href=http://www.blueidea.com/tech/graph/2003/866.asp target=_blank>制作 MAC 风格的苹果标志</a>';
marqueeContent[11]='<A href=http://www.blueidea.com/tech/graph/2003/868.asp target=_blank>蛋壳制作及破壳而出的人物合成</a>';

var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量
var marqueeId=0;
var marqueeDelay=4000;
var marqueeHeight=16;

//接下来的是定义一些要使用到的函数
Array.prototype.random=function() {
var a=this;
var l=a.length;
for(var i=0;i<l;i++) {
var r=Math.floor(Math.random()*(l-i));
a=a.slice(0,r).concat(a.slice(r+1)).concat(a[r]);
}
return a;
}
function initMarquee() {
marqueeContent=marqueeContent.random();
var str='';
for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
document.write('<div id=marqueeBox style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId+=2;
if(marqueeContent.length>3)marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}
function reinitMarquee() {
js_scroll_content.src='scroll_content2.js';
marqueeContent=marqueeContent.random();
var str='';
for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
marqueeBox.childNodes[(marqueeBox.childNodes.length==1?0:1)].innerHTML=str;
marqueeId=2;
}
function startMarquee() {
var str='';
for(var i=0;(i<3)&&(marqueeId+i<marqueeContent.length);i++) {
str+=(i>0?'  ':'')+marqueeContent[marqueeId+i];
}
marqueeId+=3;
if(marqueeId>marqueeContent.length)marqueeId=0;

if(marqueeBox.childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
marqueeBox.appendChild(nextLine);
}
else {
marqueeBox.childNodes[0].innerHTML=str;
marqueeBox.appendChild(marqueeBox.childNodes[0]);
marqueeBox.scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}
function scrollMarquee() {
marqueeBox.scrollTop++;
if(marqueeBox.scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
}
}
initMarquee();
</script>

  以上已经将网站的这种滚动的做法做了一个大概的介绍。
posted @ 2005-07-29 11:39 一天一点爱恋 阅读(432) | 评论 (0)编辑 收藏
 
<script>
<!--

var limit="0:15"

if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh(){
if (!document.images)
return
if (parselimit==1)
window.location.reload()
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+"分"+cursec+"秒后重刷本页!"
else
curtime=cursec+"秒后重刷本页!"
window.status=curtime
setTimeout("beginrefresh()",1000)
}
}

window.onload=beginrefresh
//-->
</script>

以上代码加入HEAD区即可。

说明:有人说,我可以使用<meta http-equiv="refresh">来刷新当前页面,为什么要用这个脚本呢?是的,的确是这样。但是这个脚本可以在状态栏显示剩余的时间。不管怎样,随您的便。其实这个脚本可以作出其它许多花样的。如果将window.location.reload()改成window.location.href="http://www.yahoo.com"等地址,可以在规定时间到来后指向任意的页面。

源程序讲解:

var limit="0:10"
声明一个变量,表示几分几秒。
if (document.images)
{ var parselimit=limit.split(":")
用“;”分隔变量limit。
parselimit=parselimit[0]*60+
parselimit[1]*1}
把limit变量变成秒数,并返回整数。
function beginrefresh()
{ if (!document.images)
return
定义刷新函数。
if (parselimit==1)
window.location.reload()
else{ parselimit-=1
curmin=Math.floor(parselimit/60) cursec=parselimit%60
if (curmin!=0)
curtime=curmin+"分"+cursec+
"秒后重刷本页!"
else curtime=cursec+"秒后重刷本页!"
window.status=curtime
如果,还剩一秒,就刷新页面,否则,对limit变量取整,在状态栏中输出“几分几秒后刷新本页”。

setTimeout("beginrefresh()",1000) }} 一秒,调用一次beginrefresh()函数。
window.onload=beginrefresh 页面一下载,就调用beginrefresh函数。
源程序讲解:

var limit="0:10"
声明一个变量,表示几分几秒。
if (document.images)
{ var parselimit=limit.split(":")
用“;”分隔变量limit。
parselimit=parselimit[0]*60+
parselimit[1]*1}
把limit变量变成秒数,并返回整数。
function beginrefresh()
{ if (!document.images)
return
定义刷新函数。
if (parselimit==1)
window.location.reload()
else{ parselimit-=1
curmin=Math.floor(parselimit/60) cursec=parselimit%60
if (curmin!=0)
curtime=curmin+"分"+cursec+
"秒后重刷本页!"
else curtime=cursec+"秒后重刷本页!"
window.status=curtime
如果,还剩一秒,就刷新页面,否则,对limit变量取整,在状态栏中输出“几分几秒后刷新本页”。

setTimeout("beginrefresh()",1000) }} 一秒,调用一次beginrefresh()函数。
window.onload=beginrefresh 页面一下载,就调用beginrefresh函数。

posted @ 2005-07-15 16:26 一天一点爱恋 阅读(659) | 评论 (1)编辑 收藏
 
HTML源代码加密/解密工具

输入网址,可查看对方html源码: 

将要处理的HTML文档的源代码复制到下面的文本框内,可以进行多次加密解密:

           

posted @ 2005-07-14 17:38 一天一点爱恋 阅读(1956) | 评论 (0)编辑 收藏
 

-> 脚本编码/解码工具




说明:加密时应只加密脚本部分,不加密脚本标记<script language="javascript">,并且加密后脚本标记应改为:<script language="JScript.Encode">

posted @ 2005-07-14 17:36 一天一点爱恋 阅读(470) | 评论 (0)编辑 收藏
 
     摘要: 标准颜色参考工具 该表所有颜色来自于W3C的SVG颜色关键词,即X11的颜色列表,亦是CSS3颜色模块所指定的颜色。详情可参见: [X11颜色]和[SVG 1.0颜色关键词名称]及 [CSS3颜色模块] 。 本表共147行颜色值,除去以grey名命的重复颜色7行,共140种命名颜色。该七种颜色为: darkgrey,暗灰色;darkslategrey,暗瓦灰色;dimgrey,暗灰色...  阅读全文
posted @ 2005-07-14 17:17 一天一点爱恋 阅读(694) | 评论 (0)编辑 收藏
 

颜色工具

  • 资料来源:W3C
  • 下面的每一个表代表一种色调。每个色调以30度间隔从色环取得。
  • 表中的X轴代表饱和度(100%, 75%, 50%, 25%, 0%)。
  • Y轴代表亮度。50% 属于 '正常'。
0度   红
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #FFBFBF #F7C7C7 #EFCFCF #E7D7D7 #DFDFDF
75 #FF8080 #EF8F8F #DF9F9F #CFAFAF #BFBFBF
63 #FF4040 #E75858 #CF7070 #B78787 #9F9F9F
50 #FF0000 #DF2020 #BF4040 #9F6060 #808080
38 #BF0000 #A71818 #8F3030 #784848 #606060
25 #800000 #701010 #602020 #503030 #404040
13 #400000 #380808 #301010 #281818 #202020
0 #000000 #000000 #000000 #000000 #000000
30度   红-黄 (=橙)
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #FFDFBF #F7DFC7 #EFDFCF #E7DFD7 #DFDFDF
75 #FFBF80 #EFBF8F #DFBF9F #CFBFAF #BFBFBF
63 #FF9F40 #E79F58 #CF9F70 #B79F87 #9F9F9F
50 #FF8000 #DF8020 #BF8040 #9F8060 #808080
38 #BF6000 #A76018 #8F6030 #786048 #606060
25 #804000 #704010 #604020 #504030 #404040
13 #402000 #382008 #302010 #282018 #202020
0 #000000 #000000 #000000 #000000 #000000
60度   黄
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #FFFFBF #F7F7C7 #EFEFCF #E7E7D7 #DFDFDF
75 #FFFF80 #EFEF8F #DFDF9F #CFCFAF #BFBFBF
63 #FFFF40 #E7E758 #CFCF70 #B7B787 #9F9F9F
50 #FFFF00 #DFDF20 #BFBF40 #9F9F60 #808080
38 #BFBF00 #A7A718 #8F8F30 #787848 #606060
25 #808000 #707010 #606020 #505030 #404040
13 #404000 #383808 #303010 #282818 #202020
0 #000000 #000000 #000000 #000000 #000000
90度   黄-绿
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #DFFFBF #DFF7C7 #DFEFCF #DFE7D7 #DFDFDF
75 #BFFF80 #BFEF8F #BFDF9F #BFCFAF #BFBFBF
63 #9FFF40 #9FE758 #9FCF70 #9FB787 #9F9F9F
50 #80FF00 #80DF20 #80BF40 #809F60 #808080
38 #60BF00 #60A718 #608F30 #607848 #606060
25 #408000 #407010 #406020 #405030 #404040
13 #204000 #203808 #203010 #202818 #202020
0 #000000 #000000 #000000 #000000 #000000
120度   绿
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #BFFFBF #C7F7C7 #CFEFCF #D7E7D7 #DFDFDF
75 #80FF80 #8FEF8F #9FDF9F #AFCFAF #BFBFBF
63 #40FF40 #58E758 #70CF70 #87B787 #9F9F9F
50 #00FF00 #20DF20 #40BF40 #609F60 #808080
38 #00BF00 #18A718 #308F30 #487848 #606060
25 #008000 #107010 #206020 #305030 #404040
13 #004000 #083808 #103010 #182818 #202020
0 #000000 #000000 #000000 #000000 #000000
150度   绿-青
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #BFFFDF #C7F7DF #CFEFDF #D7E7DF #DFDFDF
75 #80FFBF #8FEFBF #9FDFBF #AFCFBF #BFBFBF
63 #40FF9F #58E79F #70CF9F #87B79F #9F9F9F
50 #00FF80 #20DF80 #40BF80 #609F80 #808080
38 #00BF60 #18A760 #308F60 #487860 #606060
25 #008040 #107040 #206040 #305040 #404040
13 #004020 #083820 #103020 #182820 #202020
0 #000000 #000000 #000000 #000000 #000000
180度   青
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #BFFFFF #C7F7F7 #CFEFEF #D7E7E7 #DFDFDF
75 #80FFFF #8FEFEF #9FDFDF #AFCFCF #BFBFBF
63 #40FFFF #58E7E7 #70CFCF #87B7B7 #9F9F9F
50 #00FFFF #20DFDF #40BFBF #609F9F #808080
38 #00BFBF #18A7A7 #308F8F #487878 #606060
25 #008080 #107070 #206060 #305050 #404040
13 #004040 #083838 #103030 #182828 #202020
0 #000000 #000000 #000000 #000000 #000000
210度   青-蓝
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #BFDFFF #C7DFF7 #CFDFEF #D7DFE7 #DFDFDF
75 #80BFFF #8FBFEF #9FBFDF #AFBFCF #BFBFBF
63 #409FFF #589FE7 #709FCF #879FB7 #9F9F9F
50 #0080FF #2080DF #4080BF #60809F #808080
38 #0060BF #1860A7 #30608F #486078 #606060
25 #004080 #104070 #204060 #304050 #404040
13 #002040 #082038 #102030 #182028 #202020
0 #000000 #000000 #000000 #000000 #000000
240度   蓝
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #BFBFFF #C7C7F7 #CFCFEF #D7D7E7 #DFDFDF
75 #8080FF #8F8FEF #9F9FDF #AFAFCF #BFBFBF
63 #4040FF #5858E7 #7070CF #8787B7 #9F9F9F
50 #0000FF #2020DF #4040BF #60609F #808080
38 #0000BF #1818A7 #30308F #484878 #606060
25 #000080 #101070 #202060 #303050 #404040
13 #000040 #080838 #101030 #181828 #202020
0 #000000 #000000 #000000 #000000 #000000
270度   蓝-紫
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #DFBFFF #DFC7F7 #DFCFEF #DFD7E7 #DFDFDF
75 #BF80FF #BF8FEF #BF9FDF #BFAFCF #BFBFBF
63 #9F40FF #9F58E7 #9F70CF #9F87B7 #9F9F9F
50 #8000FF #8020DF #8040BF #80609F #808080
38 #6000BF #6018A7 #60308F #604878 #606060
25 #400080 #401070 #402060 #403050 #404040
13 #200040 #200838 #201030 #201828 #202020
0 #000000 #000000 #000000 #000000 #000000
300度   紫
饱和度   
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #FFBFFF #F7C7F7 #EFCFEF #E7D7E7 #DFDFDF
75 #FF80FF #EF8FEF #DF9FDF #CFAFCF #BFBFBF
63 #FF40FF #E758E7 #CF70CF #B787B7 #9F9F9F
50 #FF00FF #DF20DF #BF40BF #9F609F #808080
38 #BF00BF #A718A7 #8F308F #784878 #606060
25 #800080 #701070 #602060 #503050 #404040
13 #400040 #380838 #301030 #281828 #202020
0 #000000 #000000 #000000 #000000 #000000
330度   紫-红
饱和度
100% 75% 50% 25% 0%
100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
88 #FFBFDF #F7C7DF #EFCFDF #E7D7DF #DFDFDF
75 #FF80BF #EF8FBF #DF9FBF #CFAFBF #BFBFBF
63 #FF409F #E7589F #CF709F #B7879F #9F9F9F
50 #FF0080 #DF2080 #BF4080 #9F6080 #808080
38 #BF0060 #A71860 #8F3060 #784860 #606060
25 #800040 #701040 #602040 #503040 #404040
13 #400020 #380820 #301020 #281820 #202020
0 #000000 #000000 #000000 #000000 #000000

posted @ 2005-07-14 17:14 一天一点爱恋 阅读(606) | 评论 (0)编辑 收藏
 
1.Stream对象

组件:"Adodb.Stream"
有下列方法:
Cancel 方法
   使用方法如下
   Object.Cancel
   说明:取消执行挂起的异步 Execute 或 Open 方法的调用。
Close 方法
   使用方法如下
   Object.Close
   :关闭对像
CopyTo 方法
   使用方法如下
   Object.CopyTo(destStream,[CharNumber])
   说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。
Flush 方法
   使用方法如下
   Object.Flush
   说明:
LoadFromFile 方法
   使用方法如下
   Object.LoadFromFile(FileName)
   说明:将FileName指定的文件装入对像中,参数FileName为指定的用户名。
Open 方法
    使用方法如下
    Object.Open(Source,[Mode],[Options],[UserName],[Password])
    说明:打开对像,
    参数说明:Sourece 对像源,可不指定
Mode 指定打开模式,可不指定,可选参数如下:
   adModeRead =1
   adModeReadWrite =3
   adModeRecursive =4194304
   adModeShareDenyNone =16
   adModeShareDenyRead =4
   adModeShareDenyWrite =8
   adModeShareExclusive =12
   adModeUnknown =0
   adModeWrite =2
Options 指定打开的选项,可不指定,可选参数如下:
   adOpenStreamAsync =1
   adOpenStreamFromRecord =4
   adOpenStreamUnspecified=-1
  UserName 指定用户名,可不指定。
  Password 指定用户名的密码
Read 方法
使用方法如下:
Object.Read(Numbytes)
说明:读取指定长度的二进制内容。
参数说明:Numbytes指定的要读取的找度,不指定则读取全部。

ReadText 方法
使用方法如下:
Object.ReadText(NumChars)
说明:读取指定长度的文本
参数说明:NumChars指定的要读取的找度,不指定则读取全部。

SaveToFile 方法
使用方法如下:
Object.SaveToFile(FileName,[Options])
说明:将对像的内容写到FileName指定的文件中
参数说明:FileName指定的文件
   Options 存取的选项,可不指定,可选参数如下:
    adSaveCreateNotExist =1
    adSaveCreateOverWrite =2

SetEOS 方法
使用方法如下:
Object.setEOS()
说明:
SkipLine 方法
使用方法如下:
Object.SkipLine()
说明:
Write 方法
使用方法如下:
Object.Write(Buffer)
说明:将指定的数据装入对像中。
参数说明:Buffer 为指定的要写入的内容。
WriteText 方法
使用方法如下:
Object.Write(Data,[Options])
说明:将指定的文本数据装入对像中。
参数说明:Data 为指定的要写入的内容。
      Options 写入的选项,可不指定,可选参数如下:
   adWriteChar =0
   adWriteLine =1

 

有下列属性:
Charset
EOS 返回对像内数据是否为空。

LineSeparator 指定换行格式,可选参数有
  adCR  =13
  adCRLF  =-1
  adLF  =10

Mode 指定或返加模式。

Position 指定或返回对像内数据的当前指针。(新OPEN的:0)

Size 返回对像内数据的大小。

State 返加对像状态是否打开。

Type 指定或返回的数据类型,可选参数为:
  adTypeBinary =1
  adTypeText =2

2.WshShell和WshUrlShortcut 对象

WshShell 对象
ProgID Wscript.Shell
文件名 WSHom.Ocx
CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B
IID F935DC21-1CF0-11d0-ADB9-00C04FD58A0B

下表说明和 WshShell 对象有关的属性。

属性 说明
Environment 返回 WshEnvironment 集合对象。
SpecialFolders 使用 WshSpecialFolders 对象提供对 Windows shell 文件夹的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。

下表说明和 WshShell 对象有关的方法。

方法 说明
CreateShortcut 创建并返回 WshShortcut 对象。
ExpandEnvironmentStrings 扩展 PROCESS 环境变量并返回结果字符串。
Popup 显示包含指定消息的消息窗口。
RegDelete 从注册表中删除指定的键或值。
RegRead 从注册表中返回指定的键或值。
RegWrite 在注册表中设置指定的键或值。
Run 创建新的进程,该进程用指定的窗口样式执行指定的命令。

WshShell.Environment
Environment 属性返回 WshEnvironment 对象。

语法
WshShell.Environment ( [strType]) = objWshEnvironment

注释
若 strType 指定了环境变量所处的位置,可能值为 "System"、"User"、"Volatile" 和 "Process"。若未提供 strType,则该方法在 Windows NT 中检索系统环境变量或在 Windows 95 中检索进程环境变量。

对于 Windows 95,strType 参数仅支持 "Process"。

下列变量是由 Windows 操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。

名称 说明
NUMBER_OF_PROCESSORS 计算机上运行的处理器数目。
PROCESSOR_ARCHITECTURE 用户工作站使用的处理器类型。
PROCESSOR_IDENTIFIER 用户工作站的处理器 ID。
PROCESSOR_LEVEL 用户工作站的处理器级。
PROCESSOR_REVISION 用户工作站的处理器版本。
OS 用户工作站所用的操作系统。
COMSPEC 用于运行“命令提示”窗口的命令(通常为 cmd.exe)。
HOMEDRIVE 本地主驱动器(通常为 C 驱动器)。
HOMEPATH 用户的默认路径(在 Windows NT 上通常为 \users\default)。
PATH 路径环境变量。
PATHEXT 可执行文件的扩展名(通常为 .com、 .exe、.bat 或 .cmd)。
PROMPT 命令提示符(通常为 $P$G)。
SYSTEMDRIVE 系统所在的本地驱动器(例如,c:\)。
SYSTEMROOT 系统目录(例如,c:\winnt)。和 WINDIR 相同。
WINDIR 系统目录(例如 c:\winnt)。和 SYSTEMROOT 相同。
TEMP 存储临时文件的目录(例如,c:\temp)。用户可更改。
TMP 存储临时文件的目录(例如,c:\temp)。用户可更改。

示例
' Retrieve the NUMBER_OF_PROCESSORS system environment variable
Set WshShell = Wscript.CreateObject("Wscript.Shell")

Set WshSysEnv = WshShell.Environment("SYSTEM")
Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")

请参阅
WshEnvironment 对象

WshEnvironment 对象
WshEnvironment 对象未直接给出,可用 WshShell.Environment 属性来访问。

ProgID N/A
文件名 WSHom.Ocx
CLSID
IID

下表描述与 WshEnvironment 对象关联的属性。

属性 说明
Item 获取或设置指定的环境变量值。
Count 枚举项的数目。
length 枚举项的数目 (JScript)。

下表描述与 WshEnvironment 对象关联的方法。

方法 说明
Remove 删除指定的环境变量。

WshShell.SpecialFolders
SpecialFolders 属性提供 WshSpecialFolders 对象以便访问 Windows 的 shell 文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。

语法
WshShell.SpecialFolders = objWshSpecialFolders

示例
' This code fragment shows how to access the desktop folder
Set WshShell = Wscript.CreateObject("Wscript.Shell")
MsgBox "Your desktop is " & WshShell.SpecialFolders("Desktop")
请参阅
WshSpecialFolders 对象

WshSpecialFolders 对象
该对象未直接给出。要得到 WshSpecialFolders 对象,请使用 WshShell.SpecialFolders 属性。

ProgID N/A
文件名 WSHom.Ocx
CLSID
IID

下表描述与 WshSpecialFolders 对象关联的属性。

属性 描述
Item 指定文件夹的完整路径(默认)。
Count 枚举项的数目。
length 枚举项的数目 (JScript) 。

WshSpecialFolders.Item
Item 属性返回由 strFolderName 指定的文件夹的完整路径。它是默认属性。

语法
WshShell.SpecialFolders.Item("strFolderName") = strFolderPath
WshShell.SpecialFolders("strFolderName") = strFolderPath

注释
若请求的文件夹 (strFolderName) 不可用,则 WshShell.SpecialFolders("strFolderName") 返回 NULL。例如,Windows 95 没有 AllUsersDesktop 文件夹,如果 strFolderName = AllUsersDesktop,则返回 NULL。

Windows 95 和 Windows NT 4.0 操作系统提供下列指定文件夹:
AllUsersDesktop
AllUsersStartMenu

AllUsersPrograms

AllUsersStartup

Desktop

Favorites

Fonts

MyDocuments

NetHood

PrintHood

Programs

Recent

SendTo

StartMenu

Startup

Templates

示例
' This fragment returns the full path for the Windows Desktop folder
Set WshShell = Wscript.CreateObject("Wscript.Shell")
StrMyDesktop = WshShell.SpecialFolders("Desktop")

' List all special folders
For Each strFolder In WshShell.SpecialFolders
MsgBox strFolder
Next

请参阅
WshShell.SpecialFolders 属性

WshShell.CreateShortcut
CreateShortcut 方法创建 WshShortcut 对象并将其返回。如果快捷方式标题以 .url 结尾,就会创建 WshURLShortcut 对象。

语法
WshShell.CreateShortcut(strPathname) = objShortcut

示例
' This code fragment creates a shortcut
' to the currently executing script
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")
oShellLink.TargetPath = Wscript.ScriptFullName
oShellLink.Save
Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")
oUrlLink.TargetPath = "http://www.microsoft.com"
oUrlLink.Save

请参阅
WshShortcut 对象、WshUrlShortcut 对象

WshShortcut 对象
该对象未直接给出。要获得 WshShortcut 对象,请使用 WshShell.CreateShortcut 方法。

ProgID N/A
文件名 WSHom.Ocx
CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B
IID F935DC27-1CF0-11d0-ADB9-00C04FD58A0B

下表说明和 WshShortcut 对象有关的属性。

属性 说明
Arguments 快捷方式对象的参数。
Description 快捷方式对象的说明。
Hotkey 快捷方式对象的热键。
IconLocation 快捷方式对象的图标位置。
TargetPath 快捷方式对象的目标路径。
WindowStyle 快捷方式对象的窗口样式。
WorkingDirectory 快捷方式对象的工作目录。

下表说明与 WshShortcut 对象有关的方法。

方法 说明
Save 将快捷方式存储到指定的文件系统中。

WshShortcut.Arguments
Arguments 属性提供快捷方式对象的参数。

语法
WshShortcut.Arguments = strArguments

WshShortcut.Description
Description 属性提供快捷方式对象的说明。

语法
WshShortcut.Description = strDescription

WshShortcut.Hotkey
HotKey 属性提供快捷方式对象的热键。热键是启动或切换程序的键盘快捷方式。

语法
WshShortcut.HotKey = strHotKey

注释
strHotKey 的BNF语法如下:

Hotkey ::= modifier* keyname
modifier ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"
keyname ::= "A" .. "Z" |
"0".. "9" |
"Back" | "Tab" | "Clear" | "Return" |
"Escape" | "Space" | "Prior" | ...

所有键的名称都可以在 WINUSER.H 中找到。热键不区分大小写。

热键只能激活位于 Windows 桌面或 Windows“开始”菜单的快捷方式。

Windows 资源管理器不接受 ESC、ENTER、TAB、SPACE、PRINT SCREEN 或 BACKSPACE,即使 WshShortcut.Hotkey 遵循 Win32 API 支持它们。因此,建议在快捷方式中不要用这些键。

示例
Set WshShell = Wscript.CreateObject("Wscript.WshShell")
strDesktop = WshShell.SpecialFolders("Desktop")
Set oMyShortcut = WshShell.CreateShortcut(strDesktop & "\a_key.lnk")
OMyShortcut.TargetPath = "%windir%\notepad.exe"
oMyShortCut.Hotkey = "ALT+CTRL+F"
oMyShortCut.Save
Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F"

请参阅
WshSpecialFolders 对象

WshShortcut.IconLocation
IconLocation 属性提供快捷方式对象的图标位置。图标位置的格式应为 "Path,index"。

语法
WshShortcut.IconLocation = strIconLocation

WshShortcut.TargetPath
TargetPath 属性提供快捷方式对象的目标路径。

语法
WshShort

WshUrlShortcut 对象
该对象未直接给出。要获取 WshUrlShortcut 对象,可使用 WshShell.CreateShortcut 方法。

ProgID N/A
文件名 WSHom.Ocx
CLSID
IID

下表说明了和 WshUrlShortcut 对象有关的属性。

属性 说明
FullName URL 快捷方式对象的完整路径。
TargetPath URL 快捷方式对象的目标路径。

下表说明了和 WshUrlShortcut 对象有关的方法。

方法 说明
Save 将快捷方式保存到指定的文件系统中。

WshUrlShortcut.FullName
FullName 属性提供快捷方式对象的完整路径。

语法
WshUrlShortcut.FullName = strFullName

WshUrlShortcut.TargetPath
TargetPath 属性提供快捷方式对象的目标路径。

语法
WshUrlShortcut.TargetPath = strTargetPath

WshUrlShortcut.Save
Save 方法保存一个快捷方式,该快捷方式指向 FullName 属性指定的位置。

语法
WshUrlShortcut.Save

WshShell.ExpandEnvironmentStrings
ExpandEnvironmentStrings 方法在 strString 中扩展 PROCESS 环境变量并返回结果字符串。变量被 '%' 字符括起。

环境变量不区分大小写。

语法
WshShell.ExpandEnvironmentStrings(strString) = strExpandedString

示例
MsgBox "Prompt is " & WshShell.ExpandEnviromentStrings("%PROMPT%")

 

WshShell.Popup
Popup 方法显示一个弹出式消息框窗口,消息框中包含的消息由 strText 指定。该消息框的窗口标题由 strTitle 指定。若 strTitle 省略,则窗口标题为 Windows Scripting Host。

语法
WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton

注释
若提供 natSecondsToWait 且其值大于零,则消息框在 natSecondsToWait 秒后关闭。

natType 的含义与其在 Win32? MessageBox 函数中相同。下表显示 natType 中的值及含义。下表中的值可以组合。

按钮类型
值 说明
0 显示“确定”按钮
1 显示“确定”和“取消”按钮
2 显示“终止”、“重试”和“忽略”按钮
3 显示“是”、“否”和“取消”按钮
4 显示“是”和“否”按钮
5 显示“重试”和“取消”按钮

图标类型
值 说明
16 显示停止标记图标
32 显示问号图标
48 显示感叹号图标
64 显示信息标记图标

以上两个表并不涵盖 natType 的所有值。完整的列表请参阅 Win32 文档。

返回值 intButton 指示用户所单击的按扭编号。若用户在 natSecondsToWait 秒之前不单击按扭,则 intButton 设置为 -1 。

值 说明
1 “确定”按扭
2 “取消”按扭
3 “终止”按扭
4 “重试”按扭
5 “忽略”按扭
6 “是”按扭
7 “否”按扭

示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Popup "Where do you want to go today?"

请参阅
Wscript.Echo 方法

Wscript.Echo
Echo 方法在窗口(Wscript.exe 中)或“命令提示符”窗口(Cscript.exe 中)显示参数。

参数用空格分隔。在 Cscript.exe 中,该方法在显示最后一个参数之后输出一对回车/换行(CR LF)。

语法
Wscript.Echo [anyArg...]

示例
Wscript.Echo
Wscript.Echo 1, 2, 3
Wscript.Echo "Windows Scripting Host is cool."

WshShell.RegDelete
RegDelete 从注册表中删除名为 strName 的键或值。

语法
WshShell.RegDelete strName

参数
strName
如果 strName 以反斜杠 (\) 结束,则该方法删除键而不是值。
strName 参数必须以下列之一的根键名开始:

短根键名 长根键名
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG

示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")

WshShell.RegDelete "HKCU\ScriptEngine\Value" ' Delete value "Value"
WshShell.RegDelete "HKCU\ScriptEngine\Key\" ' Delete key "Key"

请参阅
WshShell.RegRead 方法、WshShell.RegWrite 方法

WshShell.RegRead
RegRead 方法返回名为 strName 的注册表键或值。

语法
WshShell.RegRead(strName) = strValue

参数
strName
如果 strName 以反斜杠 (\) 结束,则该方法返回键,而不是值。
strName 参数必须以下列根键名开始。

Short Long
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG

注释
RegRead 方法仅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 数据类型。若注册表有其他数据类型,RegRead 返回 DISP_E_TYPEMISMATCH。

示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")

WshShell.RegRead("HKCU\ScriptEngine\Val") ' Read from value "Val"
WshShell.RegRead("HKCU\ScriptEngine\Key\") ' Read from key "Key"

请参阅
WshShell.RegDelete 方法、WshShell.RegWrite 方法

WshShell.RegWrite
RegWrite 方法设置名为 strName 的注册表键或值。

语法
WshShell.RegWrite strName, anyValue, [strType]

参数
strName
若 strName 以一个反斜杠 (\) 结束,则该方法设置键,而不是值。
strName 参数必须以下列根键名开头。

Short Long
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG

 

anyValue
当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时,RegWrite 方法自动将 anyValue 转换为字符串。若 strType 为 REG_DWORD,则 anyValue 被转换为整数。若 strType 为 REG_BINARY,则 anyValue 必须是一个整数。

strType
RegWrite 方法支持 strType 为 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的数据类型被作为 strType 传递,RegWrite 返回 E_INVALIDARG。
示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")

WshShell.RegWrite "HKCU\ScriptEngine\Value", "Some string value"
WshShell.RegWrite "HKCU\ScriptEngine\Key\", 1 "REG_DWORD"

请参阅
WshShell.RegDelete 方法、WshShell.RegWrite方法

WshShell.Run
Run 方法创建一个新的进程,该进程以 intWindowStyle 窗口样式执行 strCommand。

语法
WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])

参数
strCommand
在 strCommand 参数内部的环境变量被自动扩展。

intWindowStyle
这是为新进程在 STARTUPINFO 结构内设置的 wShowWindow 元素的值。其意义与 ShowWindow 中的 nCmdShow 参数相同,可取以下值之一。名称 值 含义
SW_HIDE
0 隐藏窗口并激活另一窗口。
SW_MINIMIZE
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
SW_RESTORE
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
SW_SHOW
5 以当前大小和位置激活并显示窗口。
SW_SHOWMAXIMIZED
3 激活窗口并以最大化显示该窗口。
SW_SHOWMINIMIZED
2 激活窗口并以最小化显示该窗口。
SW_SHOWMINNOACTIVE
7 最小化显示窗口。活动窗口保持活动。
SW_SHOWNA
8 以当前状态显示窗口。活动窗口保持活动。
SW_SHOWNOACTIVATE
4 按窗口最近的大小和位置显示。活动窗口保持活动。
SW_SHOWNORMAL
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。

 

blnWaitOnReturn
如果未指定 blnWaitOnReturn 或其值为 FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。
若 blnWaitOnReturn 设为 TRUE,则 Run 方法返回由应用程序返回的任何错误代码。如果未指定 blnWaitOnReturn 或其值为 FALSE,则 Run 返回错误代码 0(zero)。

示例
' This fragment launches Notepad with the current executed script
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run ("notepad " & Wscript.ScriptFullName)
WshShell.Run ("%windir%\notepad" & Wscript.ScriptFullName)

' This fragment returns the error code from the executed application
Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE)

3. 关于Shell.Application的使用
3.1、创建 Shell 对象
var Shell = new ActiveXObject("Shell.Application");

3.2、使用 Shell 属性及方法

Shell.Application
Shell.Parent

Shell.CascadeWindows()
Shell.TileHorizontally()
Shell.TileVertically()
Shell.ControlPanelItem(sDir) /* 比如:sysdm.cpl */
Shell.EjectPC()
Shell.Explore(vDir)
Shell.Open(vDir)
Shell.FileRun()
Shell.FindComputer()
Shell.FindFiles()
Shell.Help()
Shell.MinimizeAll()
Shell.UndoMinimizeALL()
Shell.RefreshMenu()
Shell.SetTime()
Shell.TrayProperties()
Shell.ShutdownWindows()
Shell.Suspend()
oWindows = Shell.Windows() /* 返回ShellWindows对象 */
fFolder = Shell.NameSpace(vDir) /* 返回所打开的vDir的Folder对象 */
oFolder = Shell.BrowseForFolder(Hwnd, sTitle, iOptions [, vRootFolder]) /* 选择文件夹对话框 */
/*示例:
function BrowseFolder()
{
var Message = "清选择文件夹";

var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);
if(Folder != null)
{
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if(Folder.charAt(varFolder.length-1) != "\\"){
Folder = varFolder + "\\";
}
return Folder;
}
}
*/

/*示例:
var Folder = Shell.NameSpace("C:\\"); // 返回 Folder对象
*/

posted @ 2005-07-14 17:07 一天一点爱恋 阅读(469) | 评论 (0)编辑 收藏
 
     摘要: 本部分内容           n  SQL基础           n  中级SQL          ...  阅读全文
posted @ 2005-07-14 16:53 一天一点爱恋 阅读(857) | 评论 (0)编辑 收藏
 
SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
##1 二、SQL数据库数据体系结构
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^:
##1 三、SQL语言的组成
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
##1 四、对数据库进行操作
SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
下面我们将分别介绍:
##2 (一)数据定义
SQL数据定义功能包括定义数据库、基本表、索引和视图。
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
1.数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATE DATABASE <数据库名> [其它参数]
其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。[其它参数]因具体数据库实现系统不同而异。
例:要建立项目管理数据库(xmmanage),其语句应为:
CREATE DATABASE xmmanage
(2) 数据库的删除:将数据库及其全部内容从系统中删除。
其语句格式为:DROP DATABASE <数据库名>
例:删除项目管理数据库(xmmanage),其语句应为:
DROP DATABASE xmmanage
2.基本表的定义及变更
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
(1)基本表的定义:基本表是非导出关系,其定义涉及表名、列名及数据类型等,其语句格式为:
CREATE TABLE[<数据库名>.]<表名>
(<列名> 数据类型 [缺省值] [NOT NULL / NULL]
[,<列名> 数据类型 [缺省值] [NOT NULL / NULL]]......
[,UNIQUE (列名[,列名]......)]
[,PRIMARY KEY(列名)]
[,FOREIGN KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]......)]
[,CHECK(条件)] [其它参数])
其中,〈数据库名〉.]指出将新建立的表存放于该数据库中;
新建的表由两部分组成:其一为表和一组列名,其二是实际存放的数据(即可在定义表的同时,直接存放数据到表中);
列名为用户自定义的易于理解的名称,列名中不能使用空格;
数据类型为上面所介绍的几种标准数据类型;
[NOT NULL/NULL]指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是“不知道”或“无意义”的值,值得注意的是数据“0”和空格都不是空值,系统一般默认允许为空值,所以当不允许为空值时,必须明确使用NOT NULL;
[,UNIQUE]将列按照其规定的顺序进行排列,如不指定排列顺序,则按列的定义顺序排列;
[PRIMARY KEY]用于指定表的主键(即关系中的主属性),实体完整性约束条件规定:主键必须是唯一的,非空的;
[,FOREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名]......)]是用于指定外键参照完整性约束条件,FOREIGN KEY指定相关列为外键,其参照对象为另外一个表的指定列,即使用REFERENCE引入的外表中的列,当不指定外表列名时,系统将默认其列名与参照键的列名相同,要注意的是:使用外键时必须使用参照,另外数据的外键参照完整性约束条件规定:外键的值要么与相对应的主键相同,要么为空值(具体由实现系统不同而异)
[,CHECK]用于使用指定条件对存入表中的数据进行检查,以确定其合法性,提高数据的安全性。
例:要建立一个学生情况表(student)
CREATE TABLE student //创建基本表student
(st_class CHAR(8),// 定义列st_class班级,数据类型为8位定长字符串
st_no CHAR(10) NOT NULL,//定义列st_no学号,类型为10位定长字符串,非空
st_name CHAR(8) NOT NULL,//定义列st_name姓名,类型为8位定长字符串,非空
st_sex CHAR(2),//定义列st_sex性别,类型为2位定长字符串
st_age SMALLINT,//定义列st_age年龄,类型为短整型
PRIMARY KEY (st_no))//定义st_no学号为主键。
例:要建立课程设置表(subject)
CREATE TABLE subject//创建基本表subject
(su_no CHAR(4) NOT NULL,// 定义列su_no课号,类型为4位定长字符串,非空
su_subject CHAR(20) NOT NULL,// 定义列su_subject课程名,类型为20位定长字符串,非空
su_credit INTEGER,// 定义列su_credit学分,类型为长整数
su_period INTEGER,//定义列su_period学时,类型为长整数
su_preno CHAR(4),//定义列su_preno先修课号,类型为4位定长字符串
PRIMARY KEY(su_no))//定义su_no课号为主键。
例:要建立学生选课表(score)
CREATE TABLE score //创建基本表score
(st_no CHAR(10),//定义列st_no学号,类型为10位定长字符串
su_no CHAR(4),//定义列su_no课号,类型为4位定长字符串
sc_score INTEGER NULL,//定义列sc_score,类型为长整形,可以为空值
FOREIGN KEY (st_no) REFERENCE student,//从表student中引入参照外键st_no,以确保本表与表student的关联与同步
FOREIGN KEY (suno) REFERENCE subject)//从表subject中引入参照外键su_no,以确保本表与表subject的关联与同步
(2)基本表的删除:用以从数据库中删除一个基本表及其全部内容,其语句格式为:
DROP TABLE[<数据库名>.]表名
例如:将上面建立的表都删除
DROP TABLE student,subject,score
(3)基本表的修改:在基本表建立并使用一段时间后,可能需要根据实际要求对基本表的结构进行修改,即增加新的属性或删除属性。
增加属性的语句格式为:
ALTER TABLE [<数据库名>.]表名 ADD
(<列名> 数据类型 [缺省值] [NOT NULL / NULL]
[,<列名> 数据类型[缺省值][NOT NULL / NULL]]......
[,UNIQUE (列名[,列名]......)]
[,PRIMARY KEY(列名)]
[,FOREIGN KEY(列名[,列名]......) REFERENCE <表名>(列名[,列名]......)]
[,CHECK(条件)][其它参数])
例如:在基本表student中加入列stborn出生日期,数据类型为DATE,且不能为空值
ALTER TABLE student ADD (stborn DATE NOT NULL)
删除属性的语句格式为:
ALTER TABLE [<数据库名>.]表名 DROP
( <列名> 数据类型 [缺省值][NOT NULL / NULL]
[,<列名> 数据类型 [缺省值][NOT NULL / NULL]]......)
例如:将基本表student中的列st_age删除
ALTER TABLE student DROP (st_age)
3.视图定义与删除
在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的表,是从现有基本表中抽取若干子集组成用户的“专用表”。这种构造方式必须使用SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在系统的数据中,而并不直接存储视图对应的数据,直到用户使用视图时才去求得对应的数据。
(1)视图的定义:定义视图可以使用CREATE VIEW语句实现,其语句格式为:
CREATE VIEW 视图名 AS SELECT语句
从一个基本表中导出视图:
例:从基本表student中导出只包括女学生情况的视图
CREATE VIEW WOMANVIEW AS //创建一个视图WOMANVIEW
SELECT st_class,st_no,st_name,st_age //选择列st_class,st_no,st_name,st_age显示
FROM student //从基本表student引入
WHERE st_sex=‘女’//引入条件为性别为“女”,注意字符变量都使用单引号引用
从多个基本表中导出视图:
例如:从基本表student和score中导出只包括女学生且分数在60分以上的视图
CREATEVIEW WOMAN_SCORE AS //定义视图WOMANSCORE
SELECT student.st_class,student.st_no,student.st_name,student.st_age,score.sc_score //有选择性显示相关列
FROM student.score //从基本表student和score中引入
WHERE student.st_sex=‘女’AND score.sc_score>=60 AND student.st_no=score.st_no //选择条件:性别为“女” 且分数在60分以上。并使用st_no将两表联系起来。
以后如果进行这一视图的应用,则只需使用语句
SELECT * FROM WOMAN_SCORE //其中“*”为通配符,代表所有元素
(2)视图的删除:用于删除已不再使用的视图,其语句格式如下:
DROP VIEW 视图名
例:将上面建立的WOMAN_SCORE视图删除
DROP VIEW WOMAN_SCORE
4.索引的定义与删除
索引属于物理存储概念,而不是逻辑的概念。在SQL中抛弃了索引概念,直接使用主键概念。值得一提的是,有些关系DBMS同时包括索引机制和主键机制,这里我们推荐使用主键机制,因为它对系统资源占用较低且效率较高。
(1)索引的定义:索引是建立在基本表之上的,其语句格式为:
CREATE [UNIQUE] INDEX 索引名 ON
[<数据库名>.]表名(列名 [ASC/DESC][,列名 [ASC/DESC]]......)
这里,保留字UNIQUE表示基本表中的索引值不允许重复,若缺省则表示索引值在表中允许重复;DESC表示按索引键降序排列,若缺省或ASC表示升序排列。
例:对基本表student中的st_no和st_age建立索引,分别为升序与降序,且索引值不允许重复
CREATE UNIQUE INDEX STINDEX ON//创建索引STINDEX
student(st_no ASC,st_age DESC)//对student中的st_no和st_age建立索引
(2)索引的删除:
DROP INDEX 索引名
例:删除上面建立的索引STINDEX
DROP INDEX STINDEX
##2 (二)数据查询
SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:
SELECT 目标表的列名或列表达式集合
FROM 基本表或(和)视图集合
[WHERE条件表达式]
[GROUP BY列名集合
[HAVING组条件表达式]]
[ORDER BY列名[集合]…]
整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。
在WHERE子句中的条件表达式F中可出现下列操作符和运算函数:
算术比较运算符:<,<=,>,>=,=,<>。
逻辑运算符:AND,OR,NOT。
集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。
集合成员资格运算符:IN,NOT IN
谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。
聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。
F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。
上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。
下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:
1.无条件查询
例:找出所有学生的的选课情况
SELECT st_no,su_no
FROM score
例:找出所有学生的情况
SELECT*
FROM student
“*”为通配符,表示查找FROM中所指出关系的所有属性的值。
2.条件查询
条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。
例:找出任何一门课成绩在70以上的学生情况、课号及分数
SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score
FROM student,score
WHERE score.score>=70 AND score.stno=student.st_no
这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。
例:找出课程号为c02的,考试成绩不及格的学生
SELECT st_no
FROM score
WHERE su_no=‘c02’AND score<60
3.排序查询
排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。
例:查找不及格的课程,并将结果按课程号从大到小排列
SELECT UNIQUE su_no
FROM score
WHERE score<60
ORDER BY su_no DESC
4.嵌套查询
嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。
例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名
SELECT st_no,st_name
FROM student
WHERE stno IN (SELECT st_no
FROM score
WHERE su_no=‘c03’ AND score>80 )
这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。
5.计算查询
计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:
COUNT(*) 计算元组的个数
COUNT(列名) 对某一列中的值计算个数
SUM(列名) 求某一列值的总和(此列值是数值型)
AVG(列名) 求某一列值的平均值(此列值是数值型)
MAX(列名) 求某一列值中的最大值
MIN(列名) 求某一列值中的最小值
例:求男学生的总人数和平均年龄
SELECT COUNT(*),AVG(st_age)
FROM student
WHERE st_sex=‘男’
例:统计选修了课程的学生的人数
SELECT COUNT(DISTINCT st_no)
FROM score
注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DISTINCT进行过滤。
##2 (三) 数据更新
数据更新包括数据插入、删除和修改操作。它们分别由INSERT语句,DELETE语句及UPDATE语句完成。这些操作都可在任何基本表上进行,但在视图上有所限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,上述三种操作都不能进行。
1.数据插入
将数据插入SQL的基本表有两种方式:一种是单元组的插入,另一种是多元组的插入。
单元组的插入:向基本表score中插入一个成绩元组(100002,c02,95),可使用以下语句:
INSERT INTO score(st_no,su_no,score) VALUES(‘100002’,‘c02’,95)
由此,可以给出单元组的插入语句格式:
INSERT INTO表名(列名1[,列名2]…) VALUES(列值1[,列值2]…)
其中,列名序列为要插入值的列名集合,列值序列为要插入的对应值。若插入的是一个表的全部列值,则列名可以省略不写如上面的(st_no,su_no,score)可以省去;若插入的是表的部分列值,则必须列出相应列名,此时,该关系中未列出的列名取空值。
多元组的插入:这是一种把SELECT语句查询结果插入到某个已知的基本表中的方法。
例如:需要在表score中求出每个学生的平均成绩,并保留在某个表中。此时可以先创建一个新的基本表stu_avggrade,再用INSERT语句把表score中求得的每一个学生的平均成绩(用SELECT求得)插入至stu_avggrade中。
CREATE TABLE stu_avggrade
(st_no CHAR(10) NOT NULL,//定义列st_no学号,类型为10位定长字符串,非空
age_grade SMALLINT NOT NULL )// 定义列age_grade平均分,类型为短整形,非空
INSERT INTO stu_avggrade(st_no,age_grade)
SELECT st_no,AVG(score)
FROM score
GROUP BY st_no //因为要求每一个学生所有课程的平均成绩,必须按学号分组进行计算。
2.数据删除
SQL的删除操作是指从基本表中删除满足WHERE<条件表达式>的记录。如果没有WHERE子句,则删除表中全部记录,但表结构依然存在。其语句格式为:
DELETE FROM表名[WHERE 条件表达式]
下面举例说明:
单元组的删除:把学号为100002的学生从表student中删除,可用以下语句:
DELETE FROM student
WHERE st_no=‘100002’//因为学号为100002的学生在表student中只有一个,所以为单元组的删除
多元组的删除:学号为100002的成绩从表score中删除,可用以下语句:
DELETE FROM score
WHERE st_no=‘100002’//由于学号为100002的元组在表score中可能有多个,所以为多元组删除
带有子查询的删除操作:删除所有不及格的学生记录,可用以下语句
DELETE FROM student
WHERE st_no IN
(SELETE st_no
FROM score
WHERE score<60)
3.数据修改
修改语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记录的相应列值。其语句格式如下:
UPDATE 表名 SET 列名=列改变值[WHERE 条件表达式]
例:把c02的课程名改为英语,可以用下列语句:
UPDATE subject
SET su_subject=‘英语’
WHERE su_no=‘c02’
例:将课程成绩达到70分的学生成绩,再提高10%
UPDATE score
SET score=1.1*score
WHERE score>=70
SQL的删除语句和修改语句中的WHERE子句用法与SELECT中WHERE子句用法相同。数据的删除和修改操作,实际上要先做SELECT查询操作,然后再把找到的元组删除或修改。
##2 (四) 数据控制
由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。
1.安全性控制
数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。
存取权控制包括权力的授与、检查和撤消。权力授与和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。
(1)权力授与:权力授与有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:
|CONNECT |
GRANT|RESOURCE|TO 用户名[IDENTIFED BY 口令]
|DBA |
其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授与指定的用户。若要同时授与某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。
另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。
例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授与权力:
GRANT CONNECT TO SSE INENTIFIED BY BD1928
GRANT RESOURCE TO SSE
用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:
|SELECT |
|INSERT |
|DELETE |
GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用户名|[WITH GRANT OPTION]
|ALTER | |视图名| |PUBLIC|
|NDEX |
|ALL |

若对某一用户同时授与多种操作权力,则操作命令符号可用“,”相隔。
PUBLIC 表示将权力授与数据库的所有用户,使用时要注意:
任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力。
例:如果将表student的查询权授与所有用户,可使用以下命令:
GRANT SELECT ON student TO PUBLIC
例:若将表subject的插入及修改权力授与用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:
GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION
这里,UPDATE后面跟su_subject是指出其所能修改的列。
(2)权力回收:权力回收是指回收指定用户原已授与的某些权力。与权力授与命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。
DBA专用的权力回收命令格式为:
|CONNECT |
REVOKE|RESOURCE|FROM用户名
|DBA |
用户可用的权力回收命令格式为:
|SELECT |
|INSERT |
|DELETE |
REVOKE|UPDATE(列名1[,列名2]…) |ON|表名 |FROM |用户名|
|ALTER | |视图名| |PUBLIC|
|INDEX |
|ALL |
例:回收用户SSE的DBA权力:
REVOKE DBA FROM SSE
2.完整性控制
数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的[CHECK]子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。
3.事务控制
事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
SQL提供了事务提交和事务撤消两种命令:
(1)事务提交:事务提交的命令为:
COMMIT [WORK]
事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。
(2)事务撤消:事务撤消的命令是:
ROLLBACK [WORK]
事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。
当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令
SQL还提供了自动提交事务的机制,其命令为:
SET AUTO COMMIT ON
其对应的人工工作方式命令为:
SET AUTO COMMIT OFF
一旦规定了自动提交事务方式,则系统将每条SQL命令视为一个事务,并在命令成功执行完成时自动地完成事务提交。
4.并发控制
数据库作为共享资源,允许多个用户程序并行地存取数据。当多个用户并行地操作数据库时,需要通过并发控制对它们加以协调、控制,以保证并发操作的正确执行,并保证数据库的一致性。
在SQL中,并发控制采用封锁技术实现,当一个事务欲对某个数据对象操作时,可申请对该对象加锁,取得对数据对象的一定控制,以限制其他事务对该对象的操作。其语句格式为:
|SHARE |
LOCK TABLE 表名(或表名集合)IN |EXCLUSVE |MODE [NOWAIT]
|SHARE UPDATE|
其中,表名(或表名集合)中指出封锁对象,若为多个表名,则各个表名间以“,”相隔;任选项NOWAIT表示多个用户要求封锁相同的关系时,后来提出的要求会被立即退回去,否则会等待该资源释放。
SHARE表示共享封锁方式;EXCLUSIVE表示独占封锁方式;SHARE UPDAE表示共享更新封锁方式。其中共享封锁方式允许其他事务读同一数据,但防止其他事务对已封锁的表进行更新,该锁主要防止在表的两次查询之间对该表的改动;共享更新封锁SHARE UPDATE是一个行封锁机制,它可改善表级封锁的并行性,它能允许并发事务读和修改一个表中的不同的行;独占封锁方式EXCLUSIVE禁止其他事务获得一个共享锁且禁止其他事务执行任何数据操作语句,即一旦某个运行事务对某个数据对象施加了排它锁,则其他任何事务都不能再对该数据对象施加任何方式的锁,只有处于等待状态。如果不想无限等待,则选择NOWAIT。
PHP(Hypertext Preprocessor,超文本预处理器)是一个递归的缩写名称,它是一种内嵌在HTML页面内的脚本语言。它的功能强大,使用方便,开发难度不大,而且可以免费使用。


SQL语法参考手册

日期:2000-9-14 15:41:00
出处:未知
作者:未知

DB2 提供了关连式资料库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。 此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以“系统 R“的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。

一、资料定义 DDL(Data Definition Language)
资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

1、建表格:
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...)
说明: 
DATATYPE --是资料的格式,详见表。
NUT NULL --可不可以允许资料有空的(尚未有资料填入)。
PRIMARY KEY --是本表的主键。

2、更改表格 
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
说明:增加一个栏位(没有删除某个栏位的语法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
说明:更改表得的定义把某个栏位设为主键。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
说明:把主键的定义删除。

3、建立索引 
CREATE INDEX index_name ON table_name (column_name)
说明:对某个表格的栏位建立索引以增加查询时的速度。

4、删除 
DROP table_name
DROP index_name

二、的资料形态 DATATYPEs
smallint
16 位元的整数。
interger
32 位元的整数。
decimal(p,s)
p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数
点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float
32位元的实数。
double
64位元的实数。
char(n)
n 长度的字串,n不能超过 254。
varchar(n)
长度不固定且其最大长度为 n 的字串,n不能超过 4000。
graphic(n)
和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为
了支援两个字元长度的字体,例如中文字。
vargraphic(n)
可变长度且其最大长度为 n 的双字元字串,n不能超过 2000。
date
包含了 年份、月份、日期。
time
包含了 小时、分钟、秒。
timestamp
包含了 年、月、日、时、分、秒、千分之一秒。

三、资料操作 DML (Data Manipulation Language)
资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分 别介绍他们的语法:

1、增加资料:
INSERT INTO table_name (column1,column2,...)
VALUES ( value1,value2, ...)
说明:
1.若没有指定column 系统则会按表格内的栏位顺序填入资料。
2.栏位的资料形态和所填入的资料必须吻合。
3.table_name 也可以是景观 view_name。

INSERT INTO table_name (column1,column2,...)
SELECT columnx,columny,... FROM another_table
说明:也可以经过一个子查询(subquery)把别的表格的资料填入。

2、查询资料:
基本查询
SELECT column1,columns2,...
FROM table_name
说明:把table_name 的特定栏位资料全部列出来
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]
说明:
1.'*'表示全部的栏位都列出来。
2.WHERE 之後是接条件式,把符合条件的资料列出来。

SELECT column1,column2
FROM table_name
ORDER BY column2 [DESC]
说明:ORDER BY 是指定以某个栏位做排序,[DESC]是指从大到小排列,若没有指明,则是从小到大
排列

组合查询
组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的
表格才能够得到结果的。
SELECT *
FROM table1,table2
WHERE table1.colum1=table2.column1
说明:
1.查询两个表格中其中 column1 值相同的资料。
2.当然两个表格相互比较的栏位,其资料形态必须相同。
3.一个复杂的查询其动用到的表格可能会很多个。

整合性的查询:
SELECT COUNT (*)
FROM table_name
WHERE column_name = xxx
说明:
查询符合条件的资料共有几笔。
SELECT SUM(column1)
FROM table_name
说明:
1.计算出总和,所选的栏位必须是可数的数字形态。
2.除此以外还有 AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合性查询。
SELECT column1,AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) > xxx
说明:
1.GROUP BY: 以column1 为一组计算 column2 的平均值必须和 AVG、SUM等整合性查询的关键字
一起使用。
2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。

复合性的查询
SELECT *
FROM table_name1
WHERE EXISTS (
SELECT *
FROM table_name2
WHERE conditions )
说明:
1.WHERE 的 conditions 可以是另外一个的 query。
2.EXISTS 在此是指存在与否。
SELECT *
FROM table_name1
WHERE column1 IN (
SELECT column1
FROM table_name2
WHERE conditions )
说明: 
1. IN 後面接的是一个集合,表示column1 存在集合里面。
2. SELECT 出来的资料形态必须符合 column1。

其他查询
SELECT *
FROM table_name1
WHERE column1 LIKE 'x%'
说明:LIKE 必须和後面的'x%' 相呼应表示以 x为开头的字串。
SELECT *
FROM table_name1
WHERE column1 IN ('xxx','yyy',..)
说明:IN 後面接的是一个集合,表示column1 存在集合里面。
SELECT *
FROM table_name1
WHERE column1 BETWEEN xx AND yy
说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。

3、更改资料:
UPDATE table_name
SET column1='xxx'
WHERE conditoins
说明:
1.更改某个栏位设定其值为'xxx'。
2.conditions 是所要符合的条件、若没有 WHERE 则整个 table 的那个栏位都会全部被更改。

4、删除资料:
DELETE FROM table_name
WHERE conditions
说明:删除符合条件的资料。

说明:关于WHERE条件后面如果包含有日期的比较,不同数据库有不同的表达式。具体如下:
(1)如果是ACCESS数据库,则为:WHERE mydate>#2000-01-01#
(2)如果是ORACLE数据库,则为:WHERE mydate>cast('2000-01-01' as date)
或:WHERE mydate>to_date('2000-01-01','yyyy-mm-dd')
在Delphi中写成:
thedate= '2000-01-01';
query1.SQL.add('select * from abc where mydate>cast('+''+thedate+''+' as date)');

如果比较日期时间型,则为:
WHERE mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')

posted @ 2005-07-14 16:52 一天一点爱恋 阅读(773) | 评论 (0)编辑 收藏
 
1.oncontextmenu="window.event.returnvalue=false"将彻底屏蔽鼠标右键
oncontextmenu=self.event.returnValue=false
oncontextmenu="return false"
<tableborderoncontextmenu=return(false)><td>no</table>可用于Table

2.<bodyonselectstart="returnfalse">取消选取、防止复制

3.onpaste="returnfalse"不准粘贴

4.oncopy="returnfalse;"oncut="returnfalse;"防止复制

5.<linkrel="ShortcutIcon"href="favicon.ico">IE地址栏前换成自己的图标

6.<linkrel="Bookmark"href="favicon.ico">可以在收藏夹中显示出你的图标

7.<inputstyle="ime-mode:disabled">关闭输入法

8.永远都会带着框架
<scriptlanguage="javascript"><!--
if(window==top)top.location.href="frames.htm";//frames.htm为框架网页
//--></script>

9.防止被人frame
<SCRIPTLANGUAGE=javascript><!--
if(top.location!=self.location)top.location=self.location;
//--></SCRIPT>

10.<noscript><iframesrc=*.html></iframe></noscript>网页将不能被另存为

11.<inputtype=buttonvalue=查看网页源代码
onclick="window.location='view-source:'+'<IMG src="pic/url.gif" align=absMiddle border=0>http://www.csdn.net/">

12.怎样通过asp的手段来检查来访者是否用了代理
<%ifRequest.ServerVariables("HTTP_X_FORWARDED_FOR")<>""then
response.write"<fontcolor=#FF0000>您通过了代理服务器,"&_
"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
endif
%>

13.取得控件的绝对位置

//javascript
<scriptlanguage="javascript">
functiongetIE(e){
vart=e.offsetTop;
varl=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"\nleft="+l);
}
</script>

//VBScript
<scriptlanguage="VBScript"><!--
functiongetIE()
dimt,l,a,b
seta=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
whilea.tagName<>"BODY"
seta=a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox"top="&t&chr(13)&"left="&l,64,"得到控件的位置"
endfunction
--></script>

14.光标是停在文本框文字的最后
<scriptlanguage="javascript">
functioncc()
{
vare=event.srcElement;
varr=e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
</script>
<inputtype=textname=text1value="123"onfocus="cc()">

15.判断上一页的来源
asp:
request.servervariables("HTTP_REFERER")

javascript:
document.referrer

16.最小化、最大化、关闭窗口
<objectid=hh1classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<paramname="Command"value="Minimize"></object>
<objectid=hh2classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<paramname="Command"value="Maximize"></object>
<OBJECTid=hh3classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAMNAME="Command"value="Close"></OBJECT>

<inputtype=buttonvalue=最小化onclick=hh1.Click()>
<inputtype=buttonvalue=最大化onclick=hh2.Click()>
<inputtype=buttonvalue=关闭onclick=hh3.Click()>
本例适用于IE

17.
<%
'定义数据库连接的一些常量
ConstadOpenForwardOnly=0'游标只向前浏览记录,不支持分页、Recordset、BookMark
ConstadOpenKeyset=1'键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
ConstadOpenDynamic=2'动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
ConstadOpenStatic=3'静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

ConstadLockReadOnly=1'锁定类型,默认的,只读,不能作任何修改
ConstadLockPessimistic=2'当编辑时立即锁定记录,最安全的方式
ConstadLockOptimistic=3'只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
ConstadLockBatchOptimistic=4'当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

ConstadCmdText=&H0001
ConstadCmdTable=&H0002
%>

18.网页不会被缓存
HTM网页
<METAHTTP-EQUIV="pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache,must-revalidate">
<METAHTTP-EQUIV="expires"CONTENT="Wed,26Feb199708:21:57GMT">
或者<METAHTTP-EQUIV="expires"CONTENT="0">
ASP网页
Response.Expires=-1
Response.ExpiresAbsolute=Now()-1
Response.cachecontrol="no-cache"
PHP网页
header("Expires:Mon,26Jul199705:00:00GMT");
header("Cache-Control:no-cache,must-revalidate");
header("Pragma:no-cache");


19.检查一段字符串是否全由数字组成
<scriptlanguage="javascript"><!--
functioncheckNum(str){returnstr.match(/\D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
//--></script>

20.获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight

21.怎么判断是否是字符
if(/[^\x00-\xff]/g.test(s))alert("含有汉字");
elsealert("全是字符");

22.TEXTAREA自适应文字行数的多少
<textarearows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

23.日期减去天数等于第二个日期
<scriptlanguage=javascript>
functioncc(dd,dadd)
{
//可以加上错误处理
vara=newDate(dd)
a=a.valueOf()
a=a-dadd*24*60*60*1000
a=newDate(a)
alert(a.getFullYear()+"年"+(a.getMonth()+1)+"月"+a.getDate()+"日")
}
cc("12/23/2002",2)
</script>

24.选择了哪一个Radio
<HTML><scriptlanguage="vbscript">
functioncheckme()
foreachobinradio1
ifob.checkedthenwindow.alertob.value
next
endfunction
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check"onclick="checkme()">
</BODY></HTML>

25.获得本页url的request.servervariables("")集合
Response.Write"<TABLEborder=1><!--TableHeader--><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
foreachobinRequest.ServerVariables
Response.Write"<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write"</TABLE>"

26.
本机ip<%=request.servervariables("remote_addr")%>
服务器名<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
脚本超时时间<%=Server.ScriptTimeout%>
本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎<%=ScriptEngine&"/" & ScriptEngineMajorVersion &"." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion%>
服务器操作系统<%=Request.ServerVariables("OS")%>

27.ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

28.检测某个网站的链接速度:
把如下代码加入<body>区域中:
<scriptlanguage=javascript>
tim=1
setInterval("tim++",100)
b=1

varautourl=newArray()
autourl[1]="< src="pic/url.gif" align=absMiddle border=0>www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="< src="pic/url.gif" align=absMiddle border=0>www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="< src="pic/url.gif" align=absMiddle border=0>www.cctv.com"

functionbutt(){
document.write("<formname=autof>")
for(vari=1;i<autourl.length;i++)
document.write("<inputtype=textname=txt"+i+"size=10value=测试中……>=》<inputtype=textname=url"+i+"size=40>=》<inputtype=buttonvalue=GOonclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<inputtype=submitvalue=刷新></form>")
}
butt()
functionauto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
functionrun(){for(vari=1;i<autourl.length;i++)document.write("<imgsrc=http://"+autourl[i]+"/"+Math.random()+"width=1height=1onerror=auto('< src="pic/url.gif" align=absMiddle border=0>http://";+autourl[i]+"')>")}
run()</script>

29.各种样式的光标
auto:标准光标
default:标准箭头
hand:手形光标
wait:等待光标
text:I形光标
vertical-text:水平I形光标
no-drop:不可拖动光标
not-allowed:无效光标
help:?帮助光标
all-scroll:三角方向标
move:移动标
crosshair:十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

-------------------------------------------------


Kafree另外收集增加的:

1,屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键

<body onkeydown="KeyDown()"
oncontextmenu="event.returnValue=false">

<script language="Javascript"><!--
//屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键
//Author: meizz(梅花雨) 2002-6-18

function KeyDown(){
if ((window.event.altKey)&&
((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
(window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →
alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}

/* 注:这还不是真正地屏蔽 Alt+ 方向键,
因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,
用鼠标点掉警告框,这种屏蔽方法就失效了。以后若
有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/

if ((event.keyCode==8) || //屏蔽退格删除键
(event.keyCode==116)|| //屏蔽 F5 刷新键
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
if ((event.ctrlKey)&&(event.keyCode==78)) //屏蔽 Ctrl+n
event.returnValue=false;
if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10
event.returnValue=false;
if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
window.event.returnValue = false; //屏蔽 shift 加鼠标左键新开一网页
if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
return false;}
}
/* 另外可以用 window.open 的方法屏蔽 IE 的所有菜单
第一种方法:
window.open("你的.htm", "","toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0")
第二种方法是打开一个全屏的页面:
window.open("你的.asp", "", "fullscreen=yes")
*/
// --></script>
<h2 align=center>屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键</h2>
</body>
</html>

2,RecordSet属性和方法
   为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。
   rs = Server.CreateObject("ADODB.RecordSet")
   rs.Open(sqlStr,conn,1,A)
   注:A=1读取
   A=3 新增、修改、删除
   在RecordSet组件中,常用的属性和方法有:
   rs.Fields.Count: RecordSet对象的字段数。
   rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count-1
   rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1
   rs("字段名"): 指定字段的数据。
   rs.Record.Count:游标中的数据记录总数。
   rs.EOF: 是否最后一条记录。
   rs.MoveFirst: 指向第一条记录。
   rs.MoveLast: 指向最后一条记录。
   rs.MovePrev: 指向上一条记录。
   rs.MoveNext: 指向下一条记录。
   rs.GetRows: 将数据放入数组中。
   rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
   rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
   rs.Properties: ADO的ResultSet或Connection的值。
   rs.close(): 关闭连接。

3,本地无缓存,每次自动刷新
response.expires=0
response.addHeader"pragma","no-cache"
response.addHeader"cache-control","private"

4,修改contentType并下载gif等格式
<%
function dl(f,n)
onerrorresumenext

sets=CreateObject("Adodb.Stream")
S.Mode=3
S.Type=1
S.Open
s.LoadFromFile(server.mappath(f))
iferr.number>0then
response.writeerr.number&":"&err.description
else
response.contentType="application/x-gzip"
response.addheader"Content-Disposition:","attachment;filename="&n
response.binarywrite(s.Read(s.size))
endif
endfunction

call dl("012922501.gif","t1.gif") %>

5,常用的几种数据库连接代码
1) MS Access数据库连接
用DSN连接并且没有用户名和密码:
<%
set conn = Server.CreateObject("ADODB.Connection")
conn.open "YourDSNName"
%>

2) 用DSN连接并且有用户名和密码:
<%
set conn = Server.CreateObject("ADODB.Connection")
conn.open "YourDSNName","username","password"
%>

3) 用实际的数据库绝对路径连接:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; "
Strconn=Strconn & "DBQ=e:\yanhang\database.mdb"
conn.Open Strconn
%>

4) 用实际的数据库相对路径连接:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; "
Strconn=Strconn & "DBQ=" & Server.MapPath("/database/yanhang.mdb")
conn.Open Strconn
%>

5) MS SQL Server数据库连接
用DSN连接:
<%
set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename"
%>

6) 不用DSN连接:
<%
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename"
conn.open DSNtemp
%>

7) FoxPro数据库连接
<%
Set Conn = Server.CreateObject("ADODB.connection")
ConnStr= "Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBC;SourceDB=C:\yanhang\database.dbc"
Conn.Open ConnStr
%>

8) Oracle数据库连接:
<%
set conn=server.createobject("adodb.connection")
conn.cursorlocation=adUseClient
DSNTemp="Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world"
conn.open DSNtemp
%>

9) Paradox数据库连接:
<%
set conn=server.createobject("adodb.connection")
conn.cursorlocation=adUseClient
DSNTemp="driver={Microsoft Paradox Driver (*.db)};DriverID=538;Fil=Paradox 5.X;DefaultDir=c:\dbpath\;Dbq=c:\dbpath\;CollatingSequence=ASCII;"
conn.open DSNtemp
%>

10) Sybase数据库连接:
<%
set conn=server.createobject("adodb.connection")
conn.cursorlocation=adUseClient
DSNTemp="Driver={SYBASE SYSTEM 11};Srvr=myServerName;Uid=myUsername;Pwd=myPassword;"
conn.open DSNtemp
%>

11) Text数据库连接:
<%
set conn=server.createobject("adodb.connection")
conn.cursorlocation=adUseClient
DSNTemp="Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\somepath\;Extensions=asc,csv,tab,txt;Persist Security Info=False"
conn.open DSNtemp
'调用 test.csv 的文件
Set rs=server.createobject("adodb.recordset")
rs.open "select * from test.csv",conn,1,3
%>

6,使用 XML 静态读取网页
代码如下:

<script>
var oDiv //添加用的节点
var nP //DIV的 padding-left
var xh //xmlhttp
function getXML()
{
oDiv = document.all.m
oDiv.innerHTML = "正在装载栏目数据,请稍侯......."
oDiv.style.display= ""
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",a.value,true)
xh.send()
}

function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{

oDiv.innerHTML = "完成"
}
else
{
oDiv.innerHTML = "抱歉,装载数据失败。原因:" + xh.statusText
}
}
}
</script>
URL:<input name=a value="http://www.microsoft.com">
<input onclick="getXML()" type="button" value="get HTML">
<input onclick="if(xh && xh.responseText) oDiv.innerHTML=xh.responseText" type="button" value="output">
<div id=m></div>

7,SQL SERVER 和EXCEL的数据导入导出
1)、在SQL SERVER里查询Excel数据:
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

2)、将Excel的数据导入SQL server :
SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

实例分析:
SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

3)、将SQL SERVER中查询到的数据导成一个Excel文件
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式

实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'

EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'

在VB6中应用ADO导出EXCEL文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"

4)、在SQL SERVER里往Excel插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$] (bestand, produkt) VALUES (20, 'Test')

总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!


posted @ 2005-07-14 16:42 一天一点爱恋 阅读(548) | 评论 (2)编辑 收藏
 
不同浏览器所支持的“事件”

1。onabort(ns3,ns4,ie4):当用户终止正在打开的网页时产生该事件。
2。onblur(ns3,ns4,ie3,ie4):某元素失去活动焦点时产生该事件。例如鼠标在文本框中点击后又在文本框外点击时就会产生。
3。onchange(ns3,ns4,ie3,ie4):当网页上某元素的内容发生改变时产生。例如在文本框中输入文本后又在文本框外点击时就会产生。
4。onclick(ns3,ns4,ie3,ie4)单击网页上的某元素时产生
5。ondblclick(ns4,ie4):双击网页上的元素时产生
6。onerror(ns3,ns4,ie4):浏览器在打开网页的过程中发生错误时产生该事件
7。onfinish(ie4):滚动文本条中的文本完成一次滚动时产生的事件
8。onfocus(ns3,ns4,ie3,ie4)网页上的元素获得焦点时产生该事件
9。onkeydown(ns4,ie4)按下任意键时产生该事件
10。onkeypress(ns4,ie4)按下任意键时并释放该键产生的事件
11。onkeyup(ns4,ie4)释放按下的按键产生该事件
12。onload(ns3、4,ie3、4)网页或图象调入完成后产生该事件
13。onmousedown(ns4,ie4)在网页的某元素上按下鼠标时产生该事件
14。onmousemove(ie3、4)在网页的某元素上移动鼠标时产生该事件
15。onmouseout(ns3、4,ie4)从网页的某元素移出鼠标时产生该事件
16。onmouseover(ns3、4,ie3、4)鼠标移入网页的某元素时产生该事件
17。onmouseup(ns4,ie4)释放按下的鼠标时产生该事件
18。onreset(ns3、4,ie3、4)复位表格时产生该事件
19。onresize(ns4,ie4)改变浏览器时产生该事件
20。onselect(ns3、4,ie3、4)选择文本框中的文本时产生该事件
21。onstart(ie4)滚动文本条中的文本开始滚动时产生该事件
22。onsubmit(ns3、4,ie3、4)提交表单时产生该事件
23。onunload(ns3、4,ie3、4)从当前的网页退出时产生该事件

马上出现的alt

<style>div {filter: Alpha(Opacity=70, FinishOpacity=70, Style=2, StartX=0, StartY=0, FinishX=100, FinishY=100);}</style>
<img src="icon/popoever.jpg" hint="泡泡哥">
<img src="icon/poorfish.gif" hint="高僧一个,当和尚太可惜了">
<img src="icon/admin.gif" hint="my哥哥">
<div style="visibility:hidden;border:1px solid #000000;background-color:#FFFFCC;font-size:12px;position:absolute;" id=altlayer></div>
测试完毕...
<script>
document.body.onmousemove=quickalt;
function quickalt() {
if(event.srcElement.hint && event.srcElement.hint!='') {
altlayer.style.visibility='visible';
altlayer.style.left=event.x+10;
altlayer.style.top=event.y+10;
altlayer.innerHTML=event.srcElement.hint}
else altlayer.style.visibility='hidden';}
</script>

只能输入数字(方法一)

<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
event.returnValue=false;
}
</script>

<input onkeydown="onlyNum();">

只能输入数字(方法二)

<input onkeypress="return event.keyCode>=48&&event.keyCode<=57" onpaste="return !clipboardData.getData('text').match(/\D/)" style="ime-mode:Disabled" ondragenter="return false">

只能输入数字(方法三)

<script>
function check(){
if (isNaN(tt.value))
{alert("非法字符!");
tt.value="";}
}
</script>
<input type="text" name="tt" onkeyup="check();">

限制textarea多行输入框的字数

<textarea name="b" onkeydown="if(this.value.length>=8) this.value=this.value.substring(0, 8)" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').substring(0, 8))">

验证表单——不能超过设置字数

<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>

 

验证表单——只能是汉字

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">

验证表单——只能是英文字符

<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnValue=false;
}
</script>

<input onkeydown="onlyEng();">

验证表单——屏蔽关键字(sex , fuck)

<script language="JavaScript1.2">
function test() {
if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){
alert("五讲四美三热爱");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

验证表单——验证为email格式

<SCRIPT LANGUAGE=Javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

 

css控制checkbox、select的边框不显示

一、<input type=checkbox style="position:absolute;clip: rect(5 16 16 5)">
二、<input type=checkbox style="position:absolute;clip: rect(6 17 17 6)">
三、<select name="menu1" style="position:absolute;clip: rect(2 50 30 2)">
<option>111111</option>
<option>222222</option>
<option>333333</option>
<option>444444</option>
</select>

复选框通常都不需要直接点选,点旁边的文字就行

<label for="box">点这里的文字看看!<input type=checkbox style="position:absolute;clip: rect(6 15 15 6)" id=box></label>

用Label标签还可以让像软件一样使用热键

<label for="box" accesskey="D"><u><b>D</b></u>issplay Username 显示用户名<input type=checkbox style="position:absolute;clip: rect(6 17 17 6)" id=box>

在标题栏上显示版权tm

<title>LEGENDRY_________&#8482;</title>

随机播放背景音乐

<script language="JavaScript">
<!--
var sound=new Array();
sound[0]="1.mid";
sound[1]="2.mid";
sound[2]="3.mid";
sound[3]="4.mid";
sound[4]="5.mid";
sound[5]="6.mid";
sound[6]="7.mid";
var x=Math.round(Math.random()*6);
if(navigator.appName=="Microsoft Internet Explorer") {
document.write("<BGSOUND src='" + sound[x] + "' loop='-1'><br>") ;
document.write("现在正在播放第"+(x+1)+"首乐曲");
}
//-->
</script>

网页背景颜色渐变

<body style="FILTER: progid:DXImageTransform.Microsoft.Alpha( style=1,opacity=25,finishOpacity=100,startX=50,finishX=100,startY=50,finishY=100); BACKGROUND-COLOR: skyblue">

点击图片链接时不显示虚线框

<a href=# onfocus="blur()"><img src=XXX.gif border=0></a>

<a href=#### hidefocus=true><img src=XXX.gif border=0></img></a>

验证两次输入密码不同的JS

<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>

 

标题栏文字打字效果

<SCRIPT language=JavaScript>
var arr=["█ 欢","■ 欢迎","█ 欢迎光","■ 欢迎光临"],i=0
setInterval("if(i>=arr.length)i=0;document.title=arr[i++]",300);
</SCRIPT>

 

数字转换为大写

<script language="JScript">
arr=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
function go(){
tmp=cinput.value;
for(i=0;i<arr.length;i++)tmp=tmp.replace(new RegExp(i,"gi"),arr[i]);
oinput.value=tmp;
}
</script>
输入:<input id="cinput" onkeypress="return (event.keyCode>=48&&event.keyCode<=57)" value=31415926>
<br>
输出:<input id="oinput">
<br>
<input type="button" value="确定" onclick="go()">

[推荐]经典网页代码25例 希望加精
01.下载flash我的三种方法:
--查看源文件,找出flash的绝对路径,复制,在flashget(或蚂蚁)中点任务
,然后点新建下载任务即可。
--在IE的临时文件夹Temporary Internet Files里把所有的东西都删掉,然后

刷新你想要下载flash的网页,即可得到你所要的flash
--使用外部软件,推荐使用Flash Catcher,安装后只需在你所要下载的flash上右键,save即可。

02.让你的网页无法另存为
<noscript><iframe src=*></iframe></noscript>

03.让IFRAME框架内的文档的背景透明
<iframe src="about:<body style='background:transparent'>"

allowtransparency></iframe>

04.禁止右键:
<body oncontextmenu="return false" ondragstart="return false"

onselectstart ="return false" onselect="document.selection.empty()"

oncopy="document.selection.empty()" onbeforecopy="return
false"onmouseup="document.selection.empty()">

05.进入页面后立即自动刷新?
<meta http-equiv="refresh"

content="120;url=http://www.wodutom.com/cn083">
http://www.wodutom.com/cn083,这是你自己的网址。

06.打开窗口即最大化
<script language="javascript">
<!-- Begin
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
// End -->
</script>

防止外部递交:
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=300>"
response.write "<tr><td style='font:9pt Verdana'>"
response.write "请不要从站点外部提交数据!"
response.write"<input type=submit onclick=""javascript:history.back(1)"" name=Submit class=""button"" value=""返 回"">"
response.write "</td></tr></table>"
response.write"</center>"
response.end
end if

07.能隐藏IFRAME的滚动条吗?我知道的三种方法:
1. 设置iframe scrolling="no"
2. 被包含页body应用overflow:hidden
3. 被包含页的body标签加scroll="no"

08.加入背景音乐
<bgsound src="mid/windblue[1].mid" loop="-1"> 只适用于IE

<embed src="music.mid" autostart="true" loop="true" hidden="true">

对Netscape ,IE 都适用

09.嵌入网页
<iframe name="tt" src="01a.html" width="450" height="287"

scrolling="Auto" frameborder="0"></iframe>

10.跳转
<meta http-equiv="refresh" content="3;URL=list.htm">

11.滚动
<MARQUEE direction=up height=146 onmouseout=start()

onmouseover=stop()
scrollAmount=4></marquee>

12.细线分隔线
<hr noshade size=0 color=#C0C0C0>

13.过度方式
<meta http-equiv="Page-Exit"

content="revealTrans(Duration=3,Transition=5)">
Duration的值为网页动态过渡的时间,单位为秒。
Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:
0 盒状收缩 1 盒状放射
2 圆形收缩 3 圆形放射
4 由下往上 5 由上往下
6 从左至右 7 从右至左
8 垂直百叶窗 9 水平百叶窗
10 水平格状百叶窗 11垂直格状百叶窗
12 随意溶解 13从左右两端向中间展开
14从中间向左右两端展开 15从上下两端向中间展开
16从中间向上下两端展开 17 从右上角向左下角展开
18 从右下角向左上角展开 19 从左上角向右下角展开
20 从左下角向右上角展开 21 水平线状展开
22 垂直线状展开 23 随机产生一种过渡方式

15.如何控制横向和纵向滚动条的显隐?
<body style="overflow-y:hidden"> 去掉x轴
<body style="overflow-x:hidden"> 去掉y轴
<body scroll="no">不显

16.怎样在 FrontPage2000 中加入 Flash 动画?
在 FrontPage2000 中,点击[插入]->[高级]->[插件],在弹出的窗口中,设置

一下 Flash 文件的大小及其它信息,确定即可。

17.加入注释的格式是:    
〈!-[注释内容…]--〉

18.怎样在网页中加入 E-mail 链接并显示预定的主题?
〈A href="mailto:Emailhost@263.net?subject=主题"〉……〈/a〉

19.定义本网页关键字,可以在〈Head〉〈/Head〉中加入如下代码:  
〈meta name="Keywords" content="china,enterprise,business,net"〉   
Content 中所包含的就是关键字,你可以自行设置。   
这里有个技巧,你可以重复某一个单词,这样可以提高自己网站的排行位置,如:
〈meta name="Keywords" content="china,china,china,china"〉

20.IE5.0 的部分快捷键:
A:打开查找功能:Ctrl+F
关闭浏览器窗口:Ctrl+W
打开地址栏下拉列表框:F4
刷 新:F5
将当前Web页保存到收藏夹列表:Ctrl+D
打开当前 IE 窗口的一个拷贝:Ctrl+N
停止下载当前网页:Esc
光标迅速移动到网页的开头:Home
光标迅速移动到网页的尾部:End
打开新的地址键入窗口:Ctrl+O
打开收藏夹:Ctrl+I
打开历史记录文件夹:Ctrl+H
打开浏览器设定的默认主页:Alt+HOME

21.添加到收藏夹:
〈a href="javascript:window.external.addFavorite('http://链接','说明

');"〉添加到收藏夹〈/a〉

22.设为首页:
〈a href=#

onclick=this.style.behavior='url(#default#homepage)';this.setHomePage

('

23.定制浏览器地址栏前的小图标:
A:在网页的〈head〉〈/head〉间加入以下语句:〈link rel="shortcuticon"

href="http://…/icon.ico"〉即可。其中 icon.ico 为 16x16 的图标文件,

颜色不要超过 16 色。

24.把滚动条放在浏览器窗口的左边
A:在 <body> 中加 dir=RTL,即 <body dir=RTL>。

25.让背景图不滚动
IE浏览器支持一个 Body 属性 bgproperties,它可以让背景不滚动:
〈Body Background="图片文件" bgproperties="fixed"〉

最全的表格代码应用[精华]
1.表格的分隔线可以隐藏
<table border rules=cols cellspacing=0 align=left> 可以隐藏横向的分隔线
<table border rules=rows cellspacing=0 align=right>可以隐藏纵向的分隔线

<table border rules=none cellspacing=0 align=center>可以隐藏横向和纵向的分隔线

2.表格的边框不断在闪

以下方法可以令表格的边框不断在闪,很实用的
在BODY区加上

<table border="0" width="280" id="myexample"
style="border:5px solid yellow">

<tr>

<td>加入任意的物件.加入任意的物件.

<br>加入任意的物件.加入任意的物件.

<br>加入任意的物件.加入任意的物件.</td>

</tr>

</table>

<script language="JavaScript1.2">

<!--

function flashit(){

if (!document.all)

return

if (myexample.style.borderColor=="yellow")

myexample.style.borderColor="lime"

else

myexample.style.borderColor="yellow"

}

setInterval("flashit()", 500)

//-->

</script>

3.表格分行下载

这个对表格内容很大比较实用

在需要分行下载处加上 <tbody >

比如:
<table >
<tbody >
<tr >
<td >flsdjfsdjfkdsjf</td >
</tr >
<tr >
<td >skdjfsdjfksd</td >
</tr >
</tbody >

<tbody >
<tr >
<td >flsdjfsdjfkdsjf</td >
</tr >
<tr >
<td>skdjfsdjfksd</td >
</tr >
</tbody >
</table >

4.几种样式不同的表格

<table border="1" width="220" style="position: absolute; left:
11; top: 11" height="26" >

<tr>

<td width="100%">普通表格</td>

</tr>

</table>

5.正立方表格

<table border="1" width="220" bordercolorlight="#eeeeee"
bordercolordark="#000000" style="position: absolute; left: 10; top:
49" height="26">

<tr>

<td width="100%">正立方表格</td>

</tr>

</table>

6.细表格

<table border="0" frame=vsides width="219"
bgcolor="#000000" cellspacing="1" cellpadding="0"
height="22" style="position: absolute; left: 11; top: 86">

<tr bgcolor="#FFFFFF">

<td width="100%" height="2">细表格</td>

</tr>

</table>

7.立体表格

<table border="1" width="220" bordercolorlight="#ffffff"
bordercolordark="#ffffff" style="position: absolute; left: 10; top:
112" height="34">

<tr>

<td width="100%" bgcolor="#B7B7B7"
bordercolorlight="#000000" bordercolordark="#eeeeee" >立体表格</td>

</tr>

</table>

8.无名表格

<table width="220" align="center" style="position: absolute;
left: 246; top: 12" height="51">

<tr>

<td><fieldset style="width:220" align="center">
<legend> 无名表格 </legend>  <p align="right"> </fieldset>
<br>

</td>

</tr>

</table>

9.表中表效果Ⅱ

<table width="220" align="center" style="position:
absolute; left: 245; top: 89" height="110">
<tr>
<td height="75"><fieldset style="width:220"
align="center"> <legend> 表中表效果Ⅱ </legend> <table
frame="hsides" border="1"
bordercolorlight="#000000" bordercolordark="#ffffff"
width="100%" cellspacing="1" cellpadding="0" height="78">
<tr bgcolor="#ffffff">
<td width="100%" height="76"></fieldset></td>
</tr>
</table>

10.表中表效果Ⅰ

<table width="220" align="center" style="position: absolute;
left: 10; top: 120" height="138" cellspacing="1"
cellpadding="0">

<tr>

<td height="126"><fieldset style="width: 220; color: #B7B7B7;
border-style: groove" align="center"> <legend style="color:
#FFFFFF; border: 1 solid #808080" > <font color="#000000">表中表效果Ⅰ</font>
</legend>  <p align="right"> </fieldset>

</td>

</tr>

</table>

11.表格中边框的显示

只显示上边框 <table frame=above>
只显示下边框 <table frame=below>
只显示左、右边框 <table frame=vsides>
只显示上、下边框 <table frame=hsides>
只显示左边框 <table frame=lhs>
只显示右边框 <table frame=rhs>
不显示任何边框 <table frame=void>

posted @ 2005-07-14 16:39 一天一点爱恋 阅读(472) | 评论 (0)编辑 收藏
 
1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("\")% >
< /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
   Response.redirect("ForMSIEOnly.htm")
Else
   Response.redirect("ForAll.htm")
End If

3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998

4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >
显示
< img src="< %=dpic% >" >

5.如何回到先前的页面
答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >

6.如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >

7.如何链结到一副图片上
答:< % @Languages=vbs cript % >
< % response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >

8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized"
response.end
% >

9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method="post" action="mynextpage.asp" >
< % for each item in request.form % >
< input namee="< %=item% >" type="HIDDEN"
value="< %=server.HTMLEncode(Request.form(item)) % >" >
< % next % >
< /form >

10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="测试对话框"% >
< % s cript language='javas cript' >
alert("< %=yourvar% >")
< /s cript >

11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows s cript Encoder,它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s cript engine 5(装一个ie5就有了)才能执行。

12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))

13.global.asa文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?

14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。

15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component" 。
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

16. ASP与Access数据库连接:

<%@ language=VBs cript%>
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile

%>

17. ASP与SQL数据库连接:

<%@ language=VBs cript%>
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

写到数据库的内容,读出来时没有了空格和换行 ,该怎么解决?
或与此类似问题

问题的解答就是在写入数据库做Replace替换
拿出我用的一个函数供大家参考

<%
'----------Html转换为文本:编辑时拿来做转换
Function Html2Text(Str1)
If isNULL(Str1) Then
Html2Text=""
Exit Function
End If
Str1=Replace(Str1,"&lt;","<")
Str1=Replace(Str1,"&gt;",">")
Str1=Replace(Str1,"<br>",VBcrlf)
Str1=Replace(Str1,"&quot;",chr(34))
Str1=Replace(Str1,"&nbsp;"," ")
Str1=Replace(Str1,"&amp;","&")
Html2Text=Str1
End Function
'-------------------文本转换为Html:写入数据库时使用---------------
Function Text2Html(Str1)
If isNULL(Str1) Then
Text2Html=""
Exit Function
End If
Str1=Replace(Str1,"&","&amp;")
Str1=Replace(Str1,"<","&lt;")
Str1=Replace(Str1,">","&gt;")
Str1=Replace(Str1,VBcrlf,"<br>")
Str1=Replace(Str1,chr(34),"&quot;")
Str1=Replace(Str1,chr(9),"&nbsp;&nbsp;&nbsp;")
Str1=Replace(Str1," ","&nbsp;")
Text2Html=Str1
End Function

%>

二.关于小数点前0的显示问题

1.如果小数点后位数是固定的,那么可以使用函数FormatNumber()

示例:

<%
MyNumber=0.323
Response.Write FormatNumber(MyNumber,2,-1) '保留小数点后两位
%>

2.如果小数点后位数不固定,那么可以如下

示例:
<%
MyNumber=0.323
If Left(Cstr(MyNumber),1)="." Then Response.Write "0"&MyNumber Else Response.Write MyNumber
%>
也可以写一个函数
<%
Function FormatNum(Num)
If Left(Cstr(Num),1)="." Then FormatNum="0"&Num Else FormatNum=Num
End Function
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2

18. SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

19. 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录

---------------------------------------

20 Recordset对象方法

Open方法

recordset.Open Source,ActiveConnection,CursorType,LockType,Options

Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。

ActiveConnection
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。

CursorType
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常数 常数值 说明
-------------------------------------------------------------
adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset 1 启动一个Keyset类型的游标。
adOpenDynamic 2 启动一个Dynamic类型的游标。
adOpenStatic 3 启动一个Static类型的游标。
-------------------------------------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。

-------------------------------------------------------------
Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
-------------------------------------------------------------
ADO Recordset的属性和方法的有效性

ADO Recordset的属性和方法在不同的光标类型下,有不同的表现,这里列出了其详细情况列表
ADO Recordset属性的有效性列表

属性 ForwardOnly Dynamic Keyset Static

AbsolutePage 无效 无效 读/写 读/写
AbsolutePosition 无效 无效 读/写 读/写
ActiveConnection 读/写 读/写 读/写 读/写
BOF 只读 只读 只读 只读
Bookmark 无效 无效 读/写 读/写
CacheSize 读/写 读/写 读/写 读/写
CursorLocation 读/写 读/写 读/写 读/写
CursorType 读/写 读/写 读/写 读/写
EditMode 只读 只读 只读 只读
EOF 只读 只读 只读 只读
Filter 读/写 读/写 读/写 读/写
LockType 读/写 读/写 读/写 读/写
MarshalOptions 读/写 读/写 读/写 读/写
MaxRecords 读/写 读/写 读/写 读/写
PageCount 无效 无效 只读 只读
PageSize 读/写 读/写 读/写 读/写
RecordCount 无效 无效 只读 只读
Source 读/写 读/写 读/写 读/写
State 只读 只读 只读 只读
Status 只读 只读 只读 只读

 

在使用Microsoft OLE DB Provider for ODBC.1.0时候,属性AbsolutePosition
和AbsolutePage是只写的

ADO Recordse方法的有效性列表

方法 ForwardOnly Dynamic Keyset Static

AddNew 是 是 是 是
CancelBatch 是 是 是 是
CancelUpdate 是 是 是 是
Clone 否 否 是 是
Close 是 是 是 是
Delete 是 是 是 是
GetRows 是 是 是 是
Move 是 是 是 是
MoveFirst 是 是 是 是
MoveLast 否 是 是 是
MoveNext 是 是 是 是
MovePrevious 否 是 是 是
NextRecordset * 是 是 是 是
Open 是 是 是 是
Requery 是 是 是 是
Resync 否 否 是 是
Supports 是 是 是 是
Update 是 是 是 是
UpdateBatch 是 是 是 是

* Microsoft Access databases.不支持
--------------------------------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。

LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

-------------------------------------------------------------
常数 常数值 说明
--------------------------------------------------------------
adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、
删、改的操作。

------------------------------------------------------

RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1)
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。 ADLOCKBATCHOPTIMISTIC(=4)
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

posted @ 2005-07-14 16:11 一天一点爱恋 阅读(155) | 评论 (0)编辑 收藏
 

成员表

下面的表格列出了 document 对象引出的成员。请单击左侧的标签来选择你想要查看的成员类型。

 
属性
 
显示:
属性
集合
事件
方法
对象
样式
属性 描述
activeElement 获取当父 document 拥有焦点时获得焦点的对象。
alinkColor 设置或获取元素中所有激活链接的颜色。
bgColor 不赞成。设置或获取表明对象后面的背景颜色的值。
charset 设置或获取用于解码对象的字符集。
cookie 设置或获取 cookie 的字符串值。
defaultCharset 从当前的区域语言中获取默认字符集。
designMode 设置或获取表明文档是否可被编辑的值。
dir 设置或获取表明对象的阅读顺序的值。
doctypeMicrosoft® Internet Explorer 6 新增 获取与当前文档关联的文档类型声明。
documentElement 获取对文档根结点的引用。
domain 设置或获取文档的安全域名。
expando 设置或获取表明是否可对象内创建任意变量的值。
fgColor 设置或获取文档的前景(文本)颜色。
fileCreatedDate 获取文件创建的日期。
fileModifiedDate 获取文件上次修改的日期。
fileSize 获取文件大小。
implementationMicrosoft® Internet Explorer 6 新增 获取当前文档implementation 对象。
lastModified 获取页面上次修改的日期,若页面提供的话。
linkColor 设置或获取对象文档链接的颜色。
parentWindow 获取容器对象所在窗口的引用。
protocol 设置或获取 URL 的协议部分。
readyState 获取表明对象当前状态的值。
referrer 获取将用户引入当前页面的位置 URL。
uniqueID 获取为对象自动生成的唯一标识符。
URL 设置或获取当前文档的 URL。
URLUnencoded 获取文档的 URL,去除所有字符编码。
vlinkColor 设置或获取用户已访问过的链接颜色。
XMLDocument 获取对由对象引出的的 XML 文档对象模型(DOM)的引用。
XSLDocument 获取对 XSL 文档的顶层结点的引用。
集合 描述
all 返回对象所包含的元素集合的引用。
anchors 获取所有带有 name 和/或 id 属性的 a 对象的集合。此集合中的对象以 HTML 源顺序排列。
applets 获取文档中所有 applet 对象的集合。
childNodes 获取作为指定对象直接后代的 HTML 元素TextNode 对象的集合。
embeds 获取文档中所有 embed 对象的集合。
forms 获取以源顺序排列的文档中所有 form 对象的集合。
frames 获取给定文档定义或与给定窗口关联的文档定义的所有 window 对象的集合。
images 获取以源顺序排列的文档中所有 img 对象的集合。
links 获取文档中所有指定了 HREF 属性的 a 对象和所有 area 对象的集合。
namespaces 获取 namespace 对象的集合。
scripts 获取文档中所有 script 对象的集合。
styleSheets 获取代表与文档中每个 linkstyle 对象的实例相对应的样式表的 styleSheet 对象的集合。
事件 描述
onactivate 对象设置为活动元素时触发。
onbeforeactivateMicrosoft® Internet Explorer 6 新增 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate activeElement 从当前对象变为父文档其它对象之前立即触发。
onbeforeeditfocus 在包含于可编辑元素内的对象进入用户界面激活状态前或可编辑容器变成控件选中区前触发。
onbeforepaste 在选中区从系统剪贴板粘贴到文档前在目标对象上触发。
onclick 在用户用鼠标左键单击对象时触发。
oncontextmenu 在用户使用鼠标右键单击客户区打开上下文菜单时触发。
oncontrolselect 当用户将要对该对象制作一个控件选中区时触发。
oncut 对象或选中区从文档中删除并添加到系统剪贴板上时在源元素上触发。
ondblclick 当用户双击对象时触发。
ondeactivate activeElement 从当前对象变为父文档其它对象时触发。
ondrag 当进行拖曳操作时在源对象上持续触发。
ondragend 当用户在拖曳操作结束后释放鼠标时在源对象上触发。
ondragenter 当用户拖曳对象到一个合法拖曳目标时在目标元素上触发。
ondragleave 当用户在拖曳操作过程中将鼠标移出合法拖曳目标时在目标对象上触发。
ondragover 当用户拖曳对象划过合法拖曳目标时持续在目标元素上触发。
ondragstart 当用户开始拖曳文本选中区或选中对象时在源对象上触发。
ondrop 当鼠标按钮在拖曳操作过程中释放时在目标对象上触发。
onfocusinMicrosoft® Internet Explorer 6 新增 当元素将要被设置为焦点之前触发。
onfocusoutMicrosoft® Internet Explorer 6 新增 在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。
onhelp 当用户在浏览器为当前窗口时按 F1 键时触发。
onkeydown 当用户按下键盘按键时触发。
onkeypress 当用户按下字面键时触发。
onkeyup 当用户释放键盘按键时触发。
onmousedown 当用户用任何鼠标按钮单击对象时触发。
onmousemove 当用户将鼠标划过对象时触发。
onmouseout 当用户将鼠标指针移出对象边界时触发。
onmouseover 当用户将鼠标指针移动到对象内时触发。
onmouseup 当用户在鼠标位于对象之上时释放鼠标按钮时触发。
onmousewheelMicrosoft® Internet Explorer 6 新增 当鼠标滚轮按钮旋转时触发。
onmove 对象移动时触发。
onmoveend 对象停止移动时触发。
onmovestart 对象开始移动时触发。
onpaste 当用户粘贴数据以便从系统剪贴板向文档传送数据时在目标对象上触发。
onpropertychange 当在对象上发生对象上发生属性更改时触发。
onreadystatechange 对象状态变更时触发。
onresizeend 当用户更改完控件选中区中对象的尺寸时触发。
onresizestart 当用户开始更改控件选中区中对象的尺寸时触发。
onselectionchange 当文档的选中状态改变时触发。
onstop 当用户单击停止按钮或离开 Web 页面时触发。
方法 描述
attachEvent 将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。
clear 目前尚未支持。
close 关闭输出流并强制将数据发送到显示。
createAttributeMicrosoft® Internet Explorer 6 新增 以指定名称创建 attribute 对象。
createCommentMicrosoft® Internet Explorer 6 新增 以指定数据创建 comment 对象。
createDocumentFragment 创建一个新文档。
createElement 为指定标签创建一个元素的实例。
createEventObject 生成当使用 fireEvent 方法时用于传递事件相关信息的 event 对象。
createStyleSheet 为文档创建样式表。
createTextNode 从指定值中创建文本字符串。
detachEvent 从事件中取消指定函数的绑定,这样当事件触发时函数就不会收到通知了。
elementFromPoint 返回指定 x 和 y 坐标的元素。
execCommand 在当前文档、当前选中区或给定范围上执行命令。
focus 使得元素得到焦点并执行由 onfocus 事件指定的代码。
getElementById 获取对 ID 标签属性为指定值的第一个对象的引用。
getElementsByName 根据 NAME 标签属性的值获取对象的集合。
getElementsByTagName 获取基于指定元素名称的对象集合。
hasFocus 获取表明对象目前是否拥有焦点的值。
mergeAttributes 复制所有读/写标签属性到指定元素。
open 此方法以两种方式工作。该方法打开一个文档用于收集 writewriteln 方法的输出。在这种情况下,只使用前两个参数 url 和 name。若指定了附加参数,此方法将打开一个窗口,这与 window 对象的 window.open 方法相同。
queryCommandEnabled 返回表明指定命令是否可于给定文档当前状态下使用 execCommand 命令成功执行的 Boolean 值。
queryCommandIndeterm 返回表明指定命令是否处于模糊状态的 Boolean 值。
queryCommandState 返回表明命令当前状态的 Boolean 值。
queryCommandSupported 返回表明当前命令是否在当前区域上支持的 Boolean 值。
queryCommandValue 返回文档、范围或当前选中区对于给定命令的当前值。
recalc 重新计算当前文档中的全部动态属性。
releaseCapture 释放当前文档中对象的鼠标捕捉。
setActive 设置对象为当前对象而不将对象置为焦点。
write 在指定窗口的文档中写入一个或多个 HTML 表达式。
writeln 在指定窗口的文档中写入一个或多个 HTML 表达式,后面追加一个换行符。
元素 对象 描述
BODY body 指定文档主体的开始和结束。
implementationMicrosoft® Internet Explorer 6 新增 包含了关于对象支持的模块信息。
location 包含关于当前 URL 的信息。
selection 代表了当前激活选中区,即高亮文本块,和/或文当中用户可执行某些操作的其它元素。
TITLE title 包含文档的标题。
样式属性 描述
compatModeMicrosoft® Internet Explorer 6 新增 设置或获取表明此对象是否应用标准兼容模式的值。

注释

此对象在 Microsoft® Internet Explorer 3.0 的脚本中可用。

使用 document 对象可以对 HTML 文档进行检查、修改或添加内容,并处理该文档内部的事件。在 Web 页面上,document 对象可通过 window 对象的 document 属性引用,或者直接引用。

document 对象在主文档的任意时间均可用,但是对于目前正在轻便动态 HTML(DHTML) 行为中使用的 HTML 组件(HTC)来说却不可用。这是因为轻便的行为仅当在 HTC 文件中不使用 document 对象时才可被定义。结果将使得轻便的行为比常规行为运行更加快速和有效率。但是,轻便的 DHTML 行为可以与常规的 DHTML 行为一样的方法访问主文档的 document 对象。

ondocumentready 事件将通知 DHTML 行为包含该行为的主 Web 页面的 document 对象可用。只要 ondocumentready 被触发,行为就可以开始处理主 document 属性。

行为中的脚本可以在 HTC 或主文档中引用 document 对象。如果要在 HTC 文件中编码脚本,应使用 element.document 来引用主文档的 document 对象。

示例

下面的例子使用了 document 对象检查文档标题并在消息框中显示该标题(如果非)。

if (document.title!="")
    alert("标题为 " + document.title)

下面的例子演示了在浏览器的状态栏上显示鼠标当前位置的事件句柄函数,所得位置相对于文档的左上角。

显示示例

标准信息

没有应用于此对象的公共标准。

应用到

posted @ 2005-07-14 15:39 一天一点爱恋 阅读(164) | 评论 (0)编辑 收藏
 

可用性

Flash Player 4。

用法

trace(expression)

参数

expression 要计算的表达式。在 Flash 创作工具中使用“测试影片”命令打开 SWF 文件时,expression 参数的值显示在“输出”面板中。

返回

无。

说明

语句;在测试模式下,计算表达式并在“输出”面板中显示结果。

在测试影片时,使用此动作可在“输出”面板中记录编程注释或显示消息。使用 expression 参数可以检查是否存在某种条件,或在“输出”面板中显示值。trace() 动作类似于 JavaScript 中的 alert 函数。

可以使用“发布设置”中的“Omit Trace Actions”(省略 Trace 动作)命令将 trace() 动作从导出的 SWF 文件中删除。

示例

此示例来自一个游戏,在该游戏中一个名为 my_mc 的可拖动影片剪辑实例必须在特定目标上释放。我们使用一个条件语句来计算 _droptarget 属性并根据 my_mc 的释放位置执行不同的动作。在脚本的末尾使用 trace() 动作来计算 my_mc 影片剪辑的位置,并在“输出”面板中显示结果。如果 my_mc 的行为与预期的不一样(例如,如果它对齐的目标不正确),则由 trace() 动作发送到“输出”面板的值将有助于您确定脚本中的问题。

on (press) {
  my_mc.startDrag();
}

on (release) {
  if(eval(_droptarget) != target) {
      my_mc._x = my_mc_xValue;
      my_mc._y = my_mc_yValue;
  } else {
    var my_mc_xValue = my_mc._x;
    var my_mc_yValue = my_mc._y;
    target = "_root.pasture";
  }
  trace("my_mc_xValue = " + my_mc_xValue);
  trace("my_mc_xValue = " + my_mc_xValue);
  stopDrag();
}
posted @ 2005-07-14 15:25 一天一点爱恋 阅读(211) | 评论 (0)编辑 收藏
 
setInterval全面的介绍

setInterval全面的介绍
setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。setInterval动作的语法格式如下:
setInterval(function,interval[,arg1,arg2,......argn])
setInterval(object,methodName,interval[,arg1,arg2,.....argn])
第一种格式是标准动作面板中setInterval函数的默认语法,第二种格式是在专家模式动作中使用的方法。
其中的参数function是一个函数名或者一个对匿名函数的引用。object参数指定从Object对象派生的对象。methodName制定object参数中要调用的方法。interval制定对function或methodName调用两次之间的时间,单位是毫秒。后面的arg1等是可选的参数,用于制定传递给function或是methodName的参数。
setInterval它设置的时间间隔小于动画帧速(如每秒10帧,相当于100毫秒),则按照尽可能接近interval的时间间隔调用函数。而且必须使用updateAfterEvent动作来确保以足够的频率刷新屏幕。如果interval大于动画帧速,则只用在每次播放头进入某一帧是才调用,以减小每次刷新屏幕的影响。
下面的例子每隔1秒调用一次匿名函数。
setInterval(function(){trace("每隔1秒钟我就会显示一次")},1000);//这里的function(){}是没有函数名
的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。
下面的例子为我们展示如何带参数运行。
function show1(){
trace("每隔1秒我就会显示一次");
}
function show2(str){
trace(str);
}
setInterval(show1,1000);
setInterval(show2,2000,"每隔2秒我就会显示一次");
上面已经将函数的setInterval方法介绍了。
下面我们将介绍对象的setInterval方法。
首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。
myobj=new Object();//创建一个新的对象
myobj.interval=function){
trace("每隔1秒我就会显示一次");
}//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。
接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。
myobj=new Object();
myobj.interval-function(str){
trace(str);
}
setInterval(myobj,"interval",2000," 每隔2秒我就会显示一次");
注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。
这样子的话呢,我们来作一个动态显示时间的画面。可以用下面的代码实现。
setInterval(show,1000);
function show(){
time=new Date();
hour=time.getHours();
minu=time.getMinutes();
sec=time.get.Seconds();
datetime=hour+":"+minu+":"+sec;
}//这里的datetime是一个动态文本框的变量名字。
这样子呢,setInterval这个方法大家应该学的很好了。现在呢,我们学习clearInterval.
clearInterval动作的作用是清楚对setInterval函数的调用,它的语法格式如下clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。
下面举一个简单的例子。
function show(){
trace("每隔一秒我就会显示一次");
}
var sh;
sh=setInterval(show,1000);
clearInterval(sh);
好的至此,学习结束。希望对大家有所帮助。
以上代码可以直接复制。
posted @ 2005-07-14 15:23 一天一点爱恋 阅读(161) | 评论 (0)编辑 收藏
 
1。完成日志的添加
2。
posted @ 2005-07-13 09:50 一天一点爱恋 阅读(121) | 评论 (0)编辑 收藏
 
2005年厦门大学硕士 计算机科学系 研究生拟录取名单
考生号
姓名
专业名称
103845211220006 连凤娜 计算机软件与理论
103845211220016 庄云鹏 计算机软件与理论
103845211230021 郑勇明 计算机软件与理论
103845211220030 郑垚 计算机软件与理论
103845211220035 蔡剑 计算机软件与理论
103845211230050 陈晓文 计算机软件与理论
103845103840303 郑仁广 计算机软件与理论
103845103840304 吴国才 计算机软件与理论
103845103840309 许振明 计算机软件与理论
103845211220060 高君杰 计算机软件与理论
103845211220065 刘伟 计算机软件与理论
103845211220074 潘夏福 计算机软件与理论
103845211230102 肖欣延 计算机软件与理论
103845211220082 卓义宝 计算机软件与理论
103845211220091 丁倩蕾 计算机软件与理论
103845211220096 吴凡 计算机软件与理论
100135350310008 王良霖 计算机软件与理论
103845211210001 李玲 计算机系统结构
103845211210003 余强力 计算机系统结构
103845211210004 刘峰 计算机系统结构
103845211210007 董林茂 计算机系统结构
103845211210016 周功建 计算机系统结构
103845103840300 陈琼 计算机系统结构
103845103840301 杨剑萍 计算机系统结构
103845103840302 黄荔丽 计算机系统结构
103845211210035 唐琦 计算机系统结构
103845211210036 柯远青 计算机系统结构
103845211210041 傅博 计算机系统结构
103845211210042 林炼 计算机系统结构
103845211210049 曾坤 计算机系统结构
103845211210053 余兵 计算机系统结构
103845211210061 刘波 计算机系统结构
103845211210068 楚宇燕 计算机系统结构
103845211210074 王雷 计算机系统结构
103845211210078 常可沛 计算机系统结构
103845211230017 崔文迪 计算机应用技术
103845211230024 孙岩 计算机应用技术
103845211230029 汪洋 计算机应用技术
103845211230038 王明芬 计算机应用技术
103845211230042 黄磊 计算机应用技术
103845211230043 林萌 计算机应用技术
103845211230045 魏昇 计算机应用技术
103845103840310 贾剑峰 计算机应用技术
103845211230055 李凡 计算机应用技术
103845103840311 黄宣达 计算机应用技术
103845103840312 魏丽军 计算机应用技术
103845103840313 蔡佳佳 计算机应用技术
103845211230067 林江云 计算机应用技术
103845211230068 卢敏 计算机应用技术
103845211230072 陈禹 计算机应用技术
103845211230073 郑彬彬 计算机应用技术
103845211230082 孙为新 计算机应用技术
103845211230084 陈永建 计算机应用技术
103845211230086 陈青山 计算机应用技术
103845211230089 庄永文 计算机应用技术
103845211230090 赖兴邦 计算机应用技术
103845211230094 倪恩志 计算机应用技术
103845211230096 林哲辉 计算机应用技术
103845211230098 王小辉 计算机应用技术
103845211230099 吴绿芳 计算机应用技术
103845211230119 吴众山 计算机应用技术
103845211230126 郑文侃 计算机应用技术
103845211230127 郑锋 计算机应用技术
103845211230130 张彩红 计算机应用技术
103845211230135 张艳林 计算机应用技术
103845211230136 李政 计算机应用技术
103845211230139 郭锋 计算机应用技术
103845211230145 刘亚东 计算机应用技术
103845211230149 刘瑞林 计算机应用技术
103845211230152 李长军 计算机应用技术
103845211230161 黄关维 计算机应用技术
800015150000428 李剑锋 计算机应用技术
103355921040686 吴春龙 计算机应用技术
100135350410012 夏金存 计算机应用技术
100035024006999 苏松志 计算机应用技术
posted @ 2005-07-09 14:48 一天一点爱恋 阅读(889) | 评论 (0)编辑 收藏
 
 PDF文档是由Adobe公司开发的一种电子文档格式,它能够完整地保留源文档中的所有字体、格式、颜色和图形,并且具有跨平台、可以加密等众多优秀特性。现在许多报纸、杂志、小说都采用了PDF文档作为其专用保存的电子书籍格式,它已经成为全世界电子文档公开的事实标准。如果你也想制作PDF文档,那么你可以试试PdfFactory这个软件,使用它我们可以像打印普通文档一样来把文件“打印”成PDF文档,非常方便。它是一款共享软件,可在任何版本的Windows系统下运行。
下载安装好PdfFactory后,我们在打印机控制面板中就可以找到一台由PdfFactory虚拟出来的打印机。

  下面我们以Word文档为例,讲解一下如何使用常用程序把普通文档“打印”成PDF文档。

  首先启动Word程序并打开或新建一篇文档,然后单击“文件”菜单中的“打印”命令进入打印设置窗口(如图1)。这里我们在“打印机名称”下拉菜单中选择由PdfFactory虚拟出来的打印机。

图1选择由PdfFactory虚拟出来的打印机

  选择完打印机后单击窗口中的“确定”按钮进入PDF文档转换设置窗口。

  Preview(预览)标签页

  在预览标签页内我们可以对即将要“打印”出的PDF文档进行预览,单击鼠标可以对文档进行缩放查看。

  Fonts(字体)标签页

  在字体标签页内我们可以确定是否把当前Word文档中使用到的所有字体都内嵌到PDF文档中去,或者只内嵌指定的字体(如图2)。

图2选择内嵌字体

  DocInfo文档信息标签页

  在文档信息标签页内我们可以设置PDF文档的一些基本信息,如标题(Title)、主题(Subject)、作者(Author)、关键字(Keywords)等等。

  在我们设置完所需选项的参数后,就可以单击窗口中的“保存”按钮把当前的Word文档“打印”成PDF文档了!然后我们就可以用Adobe Acrobat Reader打开并进行阅读我们制作好的PDF文档了。同样在其他的常用程序中我们也可以把所需的文档或图片“打印”成PDF文档,比如Photoshop、IE、画图、记事本等等都可以,有兴趣的朋友可自行一试。

  在前面,我们介绍了EXE、PDF、LIT这三种格式电子书的制作方式,其中的PDF制作软件PDTDriver小巧,但是功能远不及AdobeAcrobat强大。因此,下面就重点讨论如何用AdobeAcrobat软件来制作一本PDF格式的电子图书,让令狐大侠也在PDF世界中“笑傲”一次吧。
  制作PDF格式的电子图书当然少不了AdobeAcrobat,它与AdobeAcrobatReader并不完全相同,虽然是同一家公司的产品,但AdobeAcrobatReader仅仅是一个用于浏览PDF文档的阅读工具;而AdobeAcrobat软件则可以用来创建和改善PDF文件,是一款商业软件,集成了Postscript和PDF相关工具的软件开发包,其中有制作PDF文件所需要的PDFWriter、AcrobatDistiller、AcrobatExchange、AcrobatCatalog、AcrobatCapturePlug-ins、AcrobatScan、AdobePostscriptPrinterDriver等软件。我们不但可以像使用AdobeAcrobatReader一样来浏览、导航、打印PDF文件,而且还能使用它来创建自己的PDF文件,如果你使用了完全版本,那么可以将任何格式的文件包括从纸上扫描来的文件转换为PDF格式,并且提高文件的导航、保密和注解功能,你还可以使用Acrobat来创建PDF表单,可以将剪切下来的文本和表单粘贴到PDF文件中,也可以将PDF文件中的文本和表单剪切粘贴至其它文件中。
  最新版本:5.0文件大小:95627KB软件授权:共享软件使用平台:Windows9x/Me下载地址:http//www.adobe.com一、软件的安装AdobeAcrobat的最新版本是5.0,可惜只有英文版本,如果加上亚洲语言支持包,差不多超过100MB,因此你是从http//www.adobe.com下载共享版本的话,可要稍微耐心一些哟!
  软件的安装过程很简单,基本上一路“Next”就可以了,不过在这里要提醒的是最好使用“Custom”方式安装,否则是不会同时安装AcrobatPDFWriter程序的。还有一点,在安装亚洲语言支持包时一定要将它安装到“AdobeAcrobat”自己的目录下,不能指向下面的Reader子目录,否则阅读中文PDF文档时只能显示空码。软件安装结束后,安装程序会要求重启动系统。
  二、跟我学做PDF文档这里要说明的是,AdobeAcrobat并不能创建一个空白的PDF文档,我们必须从其它软件导入电子文档。最简单的一种方法是将文件直接拖放到AdobeAcrobat窗口中就行了,或者使用Word97/2000中的CreateAdobePDF命令或者在打印命令中选择打印到PDF,下面就跟我学吧:
  1.拖放方式这一种方式最为简单,我们只需同时打开AdobeAcrobat和资源管理器,找到《笑傲江湖》的Word文档图标,然后直接拖放到AdobeAcrobat窗口中,程序即会自动将它转换为PDF文档,2.通过“打印”命令创建PDF文档PDFWriter可以将文档快速打印成PDF格式,不过如果你的文档比较大或者其中含有声音、图像、动画等丰富的多媒体信息时,建议还是使用AcrobatDistiller较为合适一些。
  首先在Word97/2000中打开要创建成PDF文档的文件(任何格式均可,只要Word可以打开),然后从“文件”菜单中选择“打印”命令,请不要选择工具栏的打印图标,因为这种方式无法改变打印机的名称,除非你已经在“打印机设置”中将AcrobatPDFWriter设置为缺省打印机。
  待出现“打印”对话框后,从“打印机名称”下拉列表框中选择“AcrobatPDFWriter”,输入页码范围,然后单击“打印”或“确定”按钮即可(如图1所示),接着会出现一个如图2所示的“另存为”对话框,我们可以在这里为PDF文件输入一个文件名和保存路径,从图2中可以看到其下有“EditDocumentinfo”(编辑文档信息)和“ViewPDFFile”两个选项,前者可以打开如图3所示的“AcrobatPDFWriterDocumentInformation”对话框,你可以在这里输入标题、作者、关键词等信息,后者可以自动在Acrobat中打开新的PDF文件。
  一切设置完成后,点击“保存”按钮,AcrobatPDFWriter就会在后台对文档进行转换,转换的时间视文档大小和内容而定,如果只是一些文本信息,那么转换的速度应该是很快的。现在,你就可以运行AdobeAcrobatReader或AdobeAcrobat程序,打开刚才创建的PDF文件,如图4所示,令狐大侠的形象就在你的眼前了。
  3.使用CreateAdobePDF命令创建PDF文档从“文件→CreateAdobePDF”菜单下可以看到一共有Print和Preferences两个命令,如图5所示,首先最好选择“CreateAdobePDF→Preferences”命令,打开“AdobePDFMakerPreferences”对话框,对有关的选项进行一些设置,因为在转换过程中PDFMaker将会把Word文件中的一些信息和结构对应转换为PDF文件的信息和结构,如Word中的头部将被转换为PDF文件的书签,Word中的URL将被转换为PDF的网页链接,Word中的交叉参照将被转换为PDF的内部链接,Word中的文件属性将被转换为PDF的文件信息等等。
  接下来,只要使用“CreateAdobePDF→Print”命令就可以将文档转换为PDF格式。
  AcrobatDistiller是一个将Postscript文件转换为PDF文件的PDF文件生成器,用AcrobatDistiller制作的PDF文档可以保留源文件中全部内容,包括其中的格式和图形,而且与PDFWriter相比,它可以更精确地控制转换过程。
  不过,为了使Distiller能够创建PDF文档,系统中必须安装一个PostScript打印机驱动程序和一个DistillerPostScript打印机说明(即PPD文件),Acrobat缺省安装包括AdobePS4.2.4(ForWindows9x)、AdobePS5.0/5.1(ForWindowsNT)、AdobePS8.501(ForMacOS)驱动程序。
  使用Distiller创建PDF文档有3种方式进行:
  ⑴直接拖放文件只要找到相应文件,然后将文件图标直接拖放到Distiller图标或Acrobat窗口的标题栏上。
  ⑵将Acrobat中打开的文件另存在AdobeAcrobat程序中,从“File”菜单中选择“Open”命令,在“打开”对话框中的“文件类型”下拉列表框中选择“AllFiles(.)”,然后找到欲转换为PDF的文件,单击“打开”按钮,最后将它另存为一个新的PDF格式的文件就可以了。
  ⑶通过“打印”命令创建其实这一种方式与前面谈到的使用PDFWriter创建PDF文档的方法差不多,只不过这次是从“打印机名称”下拉列表框中选择“AcrobatDistiller”而已(如图6所示),其它的没有什么区别。
  由于AdobeAcrobat的图形编辑、处理能力等并不是很出色,笔者建议最好先使用其它软件完成文字输入、图片的处理、整体排版等工作,这样可以省去很多功夫。
  三、对PDF文档进行美化如果你只是想自己学会制作PDF格式的电子图书,那么上面提到的4种方法都可以达到目的。不过,为了让这本自主版权《笑傲江湖》电子图书阅读起来更为方便(同时也是为了提升它的档次),那么请继续随我来吧:
  1.设置合适的页面大小打开《笑傲江湖》电子文档,选择单页布局方式,然后切换到第一页,双击工具栏上的裁剪工具,或者从“Document”菜单中执行“CropPages”命令,将会看到的“CropPages”对话框,在这里你可以调整文档中一页或所有页面的页边距。
  在Top、Left、Right、Bottom列表框(图7)中可以对上、左、右、下页边距进行精确的调整,选择“All”可以将页边距应用到整个文档,选择“Fromto”则是将页边距应用到指定页面。在“Crop”下拉列表框中还可以选择所有页面、偶数和奇数页面、仅奇数页面、仅偶数页面等选项。裁剪工具并不减小文件的大小,不过这一操作无法撤销,因此在执行前请仔细检查。
  2.插入遗漏章节有时候,你可能在制作完成后,才忽然发觉漏掉其中的某一章节,这可怎么办,总不成全部重来吧?当然不需要,AdobeAcrobat可以很轻松完成这一切。
  首先,打开已完成部分的《笑傲江湖》电子文档,然后从“Document”菜单中执行“InsertPages”命令,选择准备添加的源文档,选择好后会弹出一个对话框询问源文档的插入位置(图8),可以从“Location”下拉列表框中选择Before、After,确定文档的插入位置可以规定源文档是插在第一页、最后一页、输入的页码之前或之后等,一切选择好后,点击“确定”按钮就可以完成添加工作,假如还有其它章节需要插入,可以按照刚才的方法继续添加。当然,更为简单的方法是从资源管理器直接将欲合并的PDF文档拖放至已打开的主文档区,以后的步骤完全一致。
  3.设置文本属性使用“TouchUpTexttool”工具选择所需的文字,然后选择快捷命令“Properties”,在如图9所示的对话框中设置文本的字体、大小、颜色等属性,不过这里要提醒的是尽量使用系统默认的宋体,以便减少字体尺寸,如果你无法确认使用的字体在对方的系统中是否安装,可以勾选“Embed”嵌入,不过这样做会使PDF文档变得非常大,一般情况下不推荐如此做。
  4.创建书签书签提供了直观目录,通常代表文档中的章节和其它组织项目,这样会使读者的阅读轻松不少。
  在导航栏中点击“Bookmarks”图标,再点击“Bookmars”右下角的小箭头,选择“NewsBookmark”命令,输入书签名字如“第一章《灭门》”,按回车键确定,然后右击该书签,选择“Properties”命令,在如图10所示的“BookmarkProperties”对话框中进行有关项目的设置,如在“Action”的“Type”下拉列表框中选择“GotoView”,然后在对话框外切换到所需要的页面,并调整好显示比例,最后点击“SetAction”按钮完成。其它如第二章《聆秘》、第三章《救难》等书签可按照同样的方法制作,最后制作好的标签如图11所示。
  5.制作MouseOver按钮如果你的AdobeAcrobat是完全版本的话,那么就可以利用Form工具来控制页面的触发事件,例如在页面打开时播放一段你喜欢的MP3音乐,或者通过具有MouseOver效果链接的图标来打开一个特定的文件、电影片段等,这样在阅读时除了视觉的享受之外还可以听到美妙的音乐呢!
  下面就以制作带有OnMouse效果的跳转页面按钮为例介绍:
  单击左侧工具栏中的“FormTool”工具,这时光标将变成一个十字形的图标,利用它在页面上拖出一个区域,你马上就可以看到如图12所示的“FieldProperties”对话框:
  Name:为这个表单起一个唯一的名字Type:这是一个下拉列表框,有Button、CheckBox、ComboBox、ListBox、RadioButton、Signature、Text等七种类型,这里当然选择“Button(按钮)”啦。
  ShortDescription:在这里可以输入一些简单的说明文字,方便以后的查找。
  发下是六个标签页,点击后可以进行不同的设置。
  Appearance:在“Border”区,我们可以定义按钮边框、背景颜色、宽度和边框的类型;在“Text”区,可以定义文字的颜色、字体、大小;在“CommonProperties”区可以定义注释的类型和边框可见方式。
  Options:在“Aligment”下拉列表框中,你可以选择触发事件时是使用鼠标的左键、中键、右键,系统缺省是使用左键。
  Actions:定义详细的触发事件,在左边的“Whenthishappens”框中,建议选择“MouseUp”,右边则是定义当事件触发时,发生什么事件,点击“Add”按钮可以在图中看到一共有13种选项可供选择,如果你想产生切换页面的效果,可以选择JavaScript项。
  Format、Validate、Calculate等标签页并无多大实用意义,可以取默认值,这里就不多介绍了。
  完成所有设置后,点击“确定”按钮,一个“MouseOver”样式的按钮就制作完成,如果你愿意,还可以在“Action”中加入声音、动画等。
  6.给PDF文档加印章你也可像在一个纸张文档上使用橡皮印章一样,用Acrobat来给你的文档盖上一个印章。下面你将给文章的封面加盖一个印章。
  (1)在页面框上移动指针直到它变为一个I字光标,然后双击突出的当前页码。
  (2)在批注工具上按住鼠标按钮以显示一套隐藏工具,拖动并选取印章工具。(如图13)
  (3)单击页面的左上角。默认时,出现“批准”印章。
  你可从Acrobat印章库中选择另一个不同的印章。
  (4)选择“编辑”→“属性”。
  (5)从“分类”菜单中选取“标准”,从对话框左面窗口的列表中选择“草稿”,并单击“确定”。
  (6)选择手形工具,在文档窗口内单击以取消选取的印章。
  除了从Acrobat印章库使用印章外,你可创建你自己定义的印章,并以批注方式来使用它们。
  (7)选择“文件”→“保存”以保存该文件。
  7.文档加密设置如果你不希望别人对你制作的PDF电子书做修改或者其他一些损害你利益的事情,建议你对文档进行加密设置。加密设置具体如下:
  单击Acrobat菜单“File”→“DocumentSecurity”选项,在弹出的对话框中的“SecurityOptions”下拉菜单中选择“AcrobatStandardSecurity”选项,弹出对话框(图14):
  如果希望用户需要密码才能阅读,请选择“PasswordRequiredtoOpenDocument”(并输入用户打开文档时需要的密码)。
  建议选择“PasswordRequiredtoChangePermissionsandPasswords”选项,即只有制作者才可以修改文档信息及文档安全性密码。
  在“EncryptionLevel”(加密级别)中可以选择使用的加密级别:包括40-bit和128-bit两种方式,其中128-bit只能针对5.0版本,所以建议选择40-bit即可,以确保文档的向下兼容。
  我们这里还选择了“NoChangingtheDocument”,即不允许用户修改文档中的任何部分。如果需要禁止用户打印和复制文档中的文字和图片还可以勾选“NoPrinting”、“NoContentCopyingorExtraction,DisableAccessibility”选项。如果不允许用户加入或者改变注释、表格域可以勾选“NoAddingorChangingCommentsandFormFields”选项。
  设置完所有设置以后,点击OK关掉对话框即可。
  总的来说,AdobeAcrobat是一款功能极其强大的电子文档制作工具,除了制作、阅读PDF文档以外,你还可以使用AdobeAcrobat实现在PDF文档中加入JavaScript脚本、将PDF文档作为电子邮件的邮件发送出去、在网页中使用PDF文档、添加电影和声音剪辑文件、编辑PDF页面中的图形/图像对象、图文演示等功能,不过由于篇幅所限,在这里就不多作介绍了。  在前面,我们介绍了EXE、PDF、LIT这三种格式电子书的制作方式,其中的PDF制作软件PDTDriver小巧,但是功能远不及AdobeAcrobat强大。因此,下面就重点讨论如何用AdobeAcrobat软件来制作一本PDF格式的电子图书,让令狐大侠也在PDF世界中“笑傲”一次吧。
  制作PDF格式的电子图书当然少不了AdobeAcrobat,它与AdobeAcrobatReader并不完全相同,虽然是同一家公司的产品,但AdobeAcrobatReader仅仅是一个用于浏览PDF文档的阅读工具;而AdobeAcrobat软件则可以用来创建和改善PDF文件,是一款商业软件,集成了Postscript和PDF相关工具的软件开发包,其中有制作PDF文件所需要的PDFWriter、AcrobatDistiller、AcrobatExchange、AcrobatCatalog、AcrobatCapturePlug-ins、AcrobatScan、AdobePostscriptPrinterDriver等软件。我们不但可以像使用AdobeAcrobatReader一样来浏览、导航、打印PDF文件,而且还能使用它来创建自己的PDF文件,如果你使用了完全版本,那么可以将任何格式的文件包括从纸上扫描来的文件转换为PDF格式,并且提高文件的导航、保密和注解功能,你还可以使用Acrobat来创建PDF表单,可以将剪切下来的文本和表单粘贴到PDF文件中,也可以将PDF文件中的文本和表单剪切粘贴至其它文件中。
  最新版本:5.0文件大小:95627KB软件授权:共享软件使用平台:Windows9x/Me下载地址:http//www.adobe.com一、软件的安装AdobeAcrobat的最新版本是5.0,可惜只有英文版本,如果加上亚洲语言支持包,差不多超过100MB,因此你是从http//www.adobe.com下载共享版本的话,可要稍微耐心一些哟!
  软件的安装过程很简单,基本上一路“Next”就可以了,不过在这里要提醒的是最好使用“Custom”方式安装,否则是不会同时安装AcrobatPDFWriter程序的。还有一点,在安装亚洲语言支持包时一定要将它安装到“AdobeAcrobat”自己的目录下,不能指向下面的Reader子目录,否则阅读中文PDF文档时只能显示空码。软件安装结束后,安装程序会要求重启动系统。
  二、跟我学做PDF文档这里要说明的是,AdobeAcrobat并不能创建一个空白的PDF文档,我们必须从其它软件导入电子文档。最简单的一种方法是将文件直接拖放到AdobeAcrobat窗口中就行了,或者使用Word97/2000中的CreateAdobePDF命令或者在打印命令中选择打印到PDF,下面就跟我学吧:
  1.拖放方式这一种方式最为简单,我们只需同时打开AdobeAcrobat和资源管理器,找到《笑傲江湖》的Word文档图标,然后直接拖放到AdobeAcrobat窗口中,程序即会自动将它转换为PDF文档,2.通过“打印”命令创建PDF文档PDFWriter可以将文档快速打印成PDF格式,不过如果你的文档比较大或者其中含有声音、图像、动画等丰富的多媒体信息时,建议还是使用AcrobatDistiller较为合适一些。
  首先在Word97/2000中打开要创建成PDF文档的文件(任何格式均可,只要Word可以打开),然后从“文件”菜单中选择“打印”命令,请不要选择工具栏的打印图标,因为这种方式无法改变打印机的名称,除非你已经在“打印机设置”中将AcrobatPDFWriter设置为缺省打印机。
  待出现“打印”对话框后,从“打印机名称”下拉列表框中选择“AcrobatPDFWriter”,输入页码范围,然后单击“打印”或“确定”按钮即可(如图1所示),接着会出现一个如图2所示的“另存为”对话框,我们可以在这里为PDF文件输入一个文件名和保存路径,从图2中可以看到其下有“EditDocumentinfo”(编辑文档信息)和“ViewPDFFile”两个选项,前者可以打开如图3所示的“AcrobatPDFWriterDocumentInformation”对话框,你可以在这里输入标题、作者、关键词等信息,后者可以自动在Acrobat中打开新的PDF文件。
  一切设置完成后,点击“保存”按钮,AcrobatPDFWriter就会在后台对文档进行转换,转换的时间视文档大小和内容而定,如果只是一些文本信息,那么转换的速度应该是很快的。现在,你就可以运行AdobeAcrobatReader或AdobeAcrobat程序,打开刚才创建的PDF文件,如图4所示,令狐大侠的形象就在你的眼前了。
  3.使用CreateAdobePDF命令创建PDF文档从“文件→CreateAdobePDF”菜单下可以看到一共有Print和Preferences两个命令,如图5所示,首先最好选择“CreateAdobePDF→Preferences”命令,打开“AdobePDFMakerPreferences”对话框,对有关的选项进行一些设置,因为在转换过程中PDFMaker将会把Word文件中的一些信息和结构对应转换为PDF文件的信息和结构,如Word中的头部将被转换为PDF文件的书签,Word中的URL将被转换为PDF的网页链接,Word中的交叉参照将被转换为PDF的内部链接,Word中的文件属性将被转换为PDF的文件信息等等。
  接下来,只要使用“CreateAdobePDF→Print”命令就可以将文档转换为PDF格式。
  AcrobatDistiller是一个将Postscript文件转换为PDF文件的PDF文件生成器,用AcrobatDistiller制作的PDF文档可以保留源文件中全部内容,包括其中的格式和图形,而且与PDFWriter相比,它可以更精确地控制转换过程。
  不过,为了使Distiller能够创建PDF文档,系统中必须安装一个PostScript打印机驱动程序和一个DistillerPostScript打印机说明(即PPD文件),Acrobat缺省安装包括AdobePS4.2.4(ForWindows9x)、AdobePS5.0/5.1(ForWindowsNT)、AdobePS8.501(ForMacOS)驱动程序。
  使用Distiller创建PDF文档有3种方式进行:
  ⑴直接拖放文件只要找到相应文件,然后将文件图标直接拖放到Distiller图标或Acrobat窗口的标题栏上。
  ⑵将Acrobat中打开的文件另存在AdobeAcrobat程序中,从“File”菜单中选择“Open”命令,在“打开”对话框中的“文件类型”下拉列表框中选择“AllFiles(.)”,然后找到欲转换为PDF的文件,单击“打开”按钮,最后将它另存为一个新的PDF格式的文件就可以了。
  ⑶通过“打印”命令创建其实这一种方式与前面谈到的使用PDFWriter创建PDF文档的方法差不多,只不过这次是从“打印机名称”下拉列表框中选择“AcrobatDistiller”而已(如图6所示),其它的没有什么区别。
  由于AdobeAcrobat的图形编辑、处理能力等并不是很出色,笔者建议最好先使用其它软件完成文字输入、图片的处理、整体排版等工作,这样可以省去很多功夫。
  三、对PDF文档进行美化如果你只是想自己学会制作PDF格式的电子图书,那么上面提到的4种方法都可以达到目的。不过,为了让这本自主版权《笑傲江湖》电子图书阅读起来更为方便(同时也是为了提升它的档次),那么请继续随我来吧:
  1.设置合适的页面大小打开《笑傲江湖》电子文档,选择单页布局方式,然后切换到第一页,双击工具栏上的裁剪工具,或者从“Document”菜单中执行“CropPages”命令,将会看到的“CropPages”对话框,在这里你可以调整文档中一页或所有页面的页边距。
  在Top、Left、Right、Bottom列表框(图7)中可以对上、左、右、下页边距进行精确的调整,选择“All”可以将页边距应用到整个文档,选择“Fromto”则是将页边距应用到指定页面。在“Crop”下拉列表框中还可以选择所有页面、偶数和奇数页面、仅奇数页面、仅偶数页面等选项。裁剪工具并不减小文件的大小,不过这一操作无法撤销,因此在执行前请仔细检查。
  2.插入遗漏章节有时候,你可能在制作完成后,才忽然发觉漏掉其中的某一章节,这可怎么办,总不成全部重来吧?当然不需要,AdobeAcrobat可以很轻松完成这一切。
  首先,打开已完成部分的《笑傲江湖》电子文档,然后从“Document”菜单中执行“InsertPages”命令,选择准备添加的源文档,选择好后会弹出一个对话框询问源文档的插入位置(图8),可以从“Location”下拉列表框中选择Before、After,确定文档的插入位置可以规定源文档是插在第一页、最后一页、输入的页码之前或之后等,一切选择好后,点击“确定”按钮就可以完成添加工作,假如还有其它章节需要插入,可以按照刚才的方法继续添加。当然,更为简单的方法是从资源管理器直接将欲合并的PDF文档拖放至已打开的主文档区,以后的步骤完全一致。
  3.设置文本属性使用“TouchUpTexttool”工具选择所需的文字,然后选择快捷命令“Properties”,在如图9所示的对话框中设置文本的字体、大小、颜色等属性,不过这里要提醒的是尽量使用系统默认的宋体,以便减少字体尺寸,如果你无法确认使用的字体在对方的系统中是否安装,可以勾选“Embed”嵌入,不过这样做会使PDF文档变得非常大,一般情况下不推荐如此做。
  4.创建书签书签提供了直观目录,通常代表文档中的章节和其它组织项目,这样会使读者的阅读轻松不少。
  在导航栏中点击“Bookmarks”图标,再点击“Bookmars”右下角的小箭头,选择“NewsBookmark”命令,输入书签名字如“第一章《灭门》”,按回车键确定,然后右击该书签,选择“Properties”命令,在如图10所示的“BookmarkProperties”对话框中进行有关项目的设置,如在“Action”的“Type”下拉列表框中选择“GotoView”,然后在对话框外切换到所需要的页面,并调整好显示比例,最后点击“SetAction”按钮完成。其它如第二章《聆秘》、第三章《救难》等书签可按照同样的方法制作,最后制作好的标签如图11所示。
  5.制作MouseOver按钮如果你的AdobeAcrobat是完全版本的话,那么就可以利用Form工具来控制页面的触发事件,例如在页面打开时播放一段你喜欢的MP3音乐,或者通过具有MouseOver效果链接的图标来打开一个特定的文件、电影片段等,这样在阅读时除了视觉的享受之外还可以听到美妙的音乐呢!
  下面就以制作带有OnMouse效果的跳转页面按钮为例介绍:
  单击左侧工具栏中的“FormTool”工具,这时光标将变成一个十字形的图标,利用它在页面上拖出一个区域,你马上就可以看到如图12所示的“FieldProperties”对话框:
  Name:为这个表单起一个唯一的名字Type:这是一个下拉列表框,有Button、CheckBox、ComboBox、ListBox、RadioButton、Signature、Text等七种类型,这里当然选择“Button(按钮)”啦。
  ShortDescription:在这里可以输入一些简单的说明文字,方便以后的查找。
  发下是六个标签页,点击后可以进行不同的设置。
  Appearance:在“Border”区,我们可以定义按钮边框、背景颜色、宽度和边框的类型;在“Text”区,可以定义文字的颜色、字体、大小;在“CommonProperties”区可以定义注释的类型和边框可见方式。
  Options:在“Aligment”下拉列表框中,你可以选择触发事件时是使用鼠标的左键、中键、右键,系统缺省是使用左键。
  Actions:定义详细的触发事件,在左边的“Whenthishappens”框中,建议选择“MouseUp”,右边则是定义当事件触发时,发生什么事件,点击“Add”按钮可以在图中看到一共有13种选项可供选择,如果你想产生切换页面的效果,可以选择JavaScript项。
  Format、Validate、Calculate等标签页并无多大实用意义,可以取默认值,这里就不多介绍了。
  完成所有设置后,点击“确定”按钮,一个“MouseOver”样式的按钮就制作完成,如果你愿意,还可以在“Action”中加入声音、动画等。
  6.给PDF文档加印章你也可像在一个纸张文档上使用橡皮印章一样,用Acrobat来给你的文档盖上一个印章。下面你将给文章的封面加盖一个印章。
  (1)在页面框上移动指针直到它变为一个I字光标,然后双击突出的当前页码。
  (2)在批注工具上按住鼠标按钮以显示一套隐藏工具,拖动并选取印章工具。(如图13)
  (3)单击页面的左上角。默认时,出现“批准”印章。
  你可从Acrobat印章库中选择另一个不同的印章。
  (4)选择“编辑”→“属性”。
  (5)从“分类”菜单中选取“标准”,从对话框左面窗口的列表中选择“草稿”,并单击“确定”。
  (6)选择手形工具,在文档窗口内单击以取消选取的印章。
  除了从Acrobat印章库使用印章外,你可创建你自己定义的印章,并以批注方式来使用它们。
  (7)选择“文件”→“保存”以保存该文件。
  7.文档加密设置如果你不希望别人对你制作的PDF电子书做修改或者其他一些损害你利益的事情,建议你对文档进行加密设置。加密设置具体如下:
  单击Acrobat菜单“File”→“DocumentSecurity”选项,在弹出的对话框中的“SecurityOptions”下拉菜单中选择“AcrobatStandardSecurity”选项,弹出对话框(图14):
  如果希望用户需要密码才能阅读,请选择“PasswordRequiredtoOpenDocument”(并输入用户打开文档时需要的密码)。
  建议选择“PasswordRequiredtoChangePermissionsandPasswords”选项,即只有制作者才可以修改文档信息及文档安全性密码。
  在“EncryptionLevel”(加密级别)中可以选择使用的加密级别:包括40-bit和128-bit两种方式,其中128-bit只能针对5.0版本,所以建议选择40-bit即可,以确保文档的向下兼容。
  我们这里还选择了“NoChangingtheDocument”,即不允许用户修改文档中的任何部分。如果需要禁止用户打印和复制文档中的文字和图片还可以勾选“NoPrinting”、“NoContentCopyingorExtraction,DisableAccessibility”选项。如果不允许用户加入或者改变注释、表格域可以勾选“NoAddingorChangingCommentsandFormFields”选项。
  设置完所有设置以后,点击OK关掉对话框即可。
  总的来说,AdobeAcrobat是一款功能极其强大的电子文档制作工具,除了制作、阅读PDF文档以外,你还可以使用AdobeAcrobat实现在PDF文档中加入JavaScript脚本、将PDF文档作为电子邮件的邮件发送出去、在网页中使用PDF文档、添加电影和声音剪辑文件、编辑PDF页面中的图形/图像对象、图文演示等功能,不过由于篇幅所限,在这里就不多作介绍了。  在前面,我们介绍了EXE、PDF、LIT这三种格式电子书的制作方式,其中的PDF制作软件PDTDriver小巧,但是功能远不及AdobeAcrobat强大。因此,下面就重点讨论如何用AdobeAcrobat软件来制作一本PDF格式的电子图书,让令狐大侠也在PDF世界中“笑傲”一次吧。
  制作PDF格式的电子图书当然少不了AdobeAcrobat,它与AdobeAcrobatReader并不完全相同,虽然是同一家公司的产品,但AdobeAcrobatReader仅仅是一个用于浏览PDF文档的阅读工具;而AdobeAcrobat软件则可以用来创建和改善PDF文件,是一款商业软件,集成了Postscript和PDF相关工具的软件开发包,其中有制作PDF文件所需要的PDFWriter、AcrobatDistiller、AcrobatExchange、AcrobatCatalog、AcrobatCapturePlug-ins、AcrobatScan、AdobePostscriptPrinterDriver等软件。我们不但可以像使用AdobeAcrobatReader一样来浏览、导航、打印PDF文件,而且还能使用它来创建自己的PDF文件,如果你使用了完全版本,那么可以将任何格式的文件包括从纸上扫描来的文件转换为PDF格式,并且提高文件的导航、保密和注解功能,你还可以使用Acrobat来创建PDF表单,可以将剪切下来的文本和表单粘贴到PDF文件中,也可以将PDF文件中的文本和表单剪切粘贴至其它文件中。
  最新版本:5.0文件大小:95627KB软件授权:共享软件使用平台:Windows9x/Me下载地址:http//www.adobe.com一、软件的安装AdobeAcrobat的最新版本是5.0,可惜只有英文版本,如果加上亚洲语言支持包,差不多超过100MB,因此你是从http//www.adobe.com下载共享版本的话,可要稍微耐心一些哟!
  软件的安装过程很简单,基本上一路“Next”就可以了,不过在这里要提醒的是最好使用“Custom”方式安装,否则是不会同时安装AcrobatPDFWriter程序的。还有一点,在安装亚洲语言支持包时一定要将它安装到“AdobeAcrobat”自己的目录下,不能指向下面的Reader子目录,否则阅读中文PDF文档时只能显示空码。软件安装结束后,安装程序会要求重启动系统。
  二、跟我学做PDF文档这里要说明的是,AdobeAcrobat并不能创建一个空白的PDF文档,我们必须从其它软件导入电子文档。最简单的一种方法是将文件直接拖放到AdobeAcrobat窗口中就行了,或者使用Word97/2000中的CreateAdobePDF命令或者在打印命令中选择打印到PDF,下面就跟我学吧:
  1.拖放方式这一种方式最为简单,我们只需同时打开AdobeAcrobat和资源管理器,找到《笑傲江湖》的Word文档图标,然后直接拖放到AdobeAcrobat窗口中,程序即会自动将它转换为PDF文档,2.通过“打印”命令创建PDF文档PDFWriter可以将文档快速打印成PDF格式,不过如果你的文档比较大或者其中含有声音、图像、动画等丰富的多媒体信息时,建议还是使用AcrobatDistiller较为合适一些。
  首先在Word97/2000中打开要创建成PDF文档的文件(任何格式均可,只要Word可以打开),然后从“文件”菜单中选择“打印”命令,请不要选择工具栏的打印图标,因为这种方式无法改变打印机的名称,除非你已经在“打印机设置”中将AcrobatPDFWriter设置为缺省打印机。
  待出现“打印”对话框后,从“打印机名称”下拉列表框中选择“AcrobatPDFWriter”,输入页码范围,然后单击“打印”或“确定”按钮即可(如图1所示),接着会出现一个如图2所示的“另存为”对话框,我们可以在这里为PDF文件输入一个文件名和保存路径,从图2中可以看到其下有“EditDocumentinfo”(编辑文档信息)和“ViewPDFFile”两个选项,前者可以打开如图3所示的“AcrobatPDFWriterDocumentInformation”对话框,你可以在这里输入标题、作者、关键词等信息,后者可以自动在Acrobat中打开新的PDF文件。
  一切设置完成后,点击“保存”按钮,AcrobatPDFWriter就会在后台对文档进行转换,转换的时间视文档大小和内容而定,如果只是一些文本信息,那么转换的速度应该是很快的。现在,你就可以运行AdobeAcrobatReader或AdobeAcrobat程序,打开刚才创建的PDF文件,如图4所示,令狐大侠的形象就在你的眼前了。
  3.使用CreateAdobePDF命令创建PDF文档从“文件→CreateAdobePDF”菜单下可以看到一共有Print和Preferences两个命令,如图5所示,首先最好选择“CreateAdobePDF→Preferences”命令,打开“AdobePDFMakerPreferences”对话框,对有关的选项进行一些设置,因为在转换过程中PDFMaker将会把Word文件中的一些信息和结构对应转换为PDF文件的信息和结构,如Word中的头部将被转换为PDF文件的书签,Word中的URL将被转换为PDF的网页链接,Word中的交叉参照将被转换为PDF的内部链接,Word中的文件属性将被转换为PDF的文件信息等等。
  接下来,只要使用“CreateAdobePDF→Print”命令就可以将文档转换为PDF格式。
  AcrobatDistiller是一个将Postscript文件转换为PDF文件的PDF文件生成器,用AcrobatDistiller制作的PDF文档可以保留源文件中全部内容,包括其中的格式和图形,而且与PDFWriter相比,它可以更精确地控制转换过程。
  不过,为了使Distiller能够创建PDF文档,系统中必须安装一个PostScript打印机驱动程序和一个DistillerPostScript打印机说明(即PPD文件),Acrobat缺省安装包括AdobePS4.2.4(ForWindows9x)、AdobePS5.0/5.1(ForWindowsNT)、AdobePS8.501(ForMacOS)驱动程序。
  使用Distiller创建PDF文档有3种方式进行:
  ⑴直接拖放文件只要找到相应文件,然后将文件图标直接拖放到Distiller图标或Acrobat窗口的标题栏上。
  ⑵将Acrobat中打开的文件另存在AdobeAcrobat程序中,从“File”菜单中选择“Open”命令,在“打开”对话框中的“文件类型”下拉列表框中选择“AllFiles(.)”,然后找到欲转换为PDF的文件,单击“打开”按钮,最后将它另存为一个新的PDF格式的文件就可以了。
  ⑶通过“打印”命令创建其实这一种方式与前面谈到的使用PDFWriter创建PDF文档的方法差不多,只不过这次是从“打印机名称”下拉列表框中选择“AcrobatDistiller”而已(如图6所示),其它的没有什么区别。
  由于AdobeAcrobat的图形编辑、处理能力等并不是很出色,笔者建议最好先使用其它软件完成文字输入、图片的处理、整体排版等工作,这样可以省去很多功夫。
  三、对PDF文档进行美化如果你只是想自己学会制作PDF格式的电子图书,那么上面提到的4种方法都可以达到目的。不过,为了让这本自主版权《笑傲江湖》电子图书阅读起来更为方便(同时也是为了提升它的档次),那么请继续随我来吧:
  1.设置合适的页面大小打开《笑傲江湖》电子文档,选择单页布局方式,然后切换到第一页,双击工具栏上的裁剪工具,或者从“Document”菜单中执行“CropPages”命令,将会看到的“CropPages”对话框,在这里你可以调整文档中一页或所有页面的页边距。
  在Top、Left、Right、Bottom列表框(图7)中可以对上、左、右、下页边距进行精确的调整,选择“All”可以将页边距应用到整个文档,选择“Fromto”则是将页边距应用到指定页面。在“Crop”下拉列表框中还可以选择所有页面、偶数和奇数页面、仅奇数页面、仅偶数页面等选项。裁剪工具并不减小文件的大小,不过这一操作无法撤销,因此在执行前请仔细检查。
  2.插入遗漏章节有时候,你可能在制作完成后,才忽然发觉漏掉其中的某一章节,这可怎么办,总不成全部重来吧?当然不需要,AdobeAcrobat可以很轻松完成这一切。
  首先,打开已完成部分的《笑傲江湖》电子文档,然后从“Document”菜单中执行“InsertPages”命令,选择准备添加的源文档,选择好后会弹出一个对话框询问源文档的插入位置(图8),可以从“Location”下拉列表框中选择Before、After,确定文档的插入位置可以规定源文档是插在第一页、最后一页、输入的页码之前或之后等,一切选择好后,点击“确定”按钮就可以完成添加工作,假如还有其它章节需要插入,可以按照刚才的方法继续添加。当然,更为简单的方法是从资源管理器直接将欲合并的PDF文档拖放至已打开的主文档区,以后的步骤完全一致。
  3.设置文本属性使用“TouchUpTexttool”工具选择所需的文字,然后选择快捷命令“Properties”,在如图9所示的对话框中设置文本的字体、大小、颜色等属性,不过这里要提醒的是尽量使用系统默认的宋体,以便减少字体尺寸,如果你无法确认使用的字体在对方的系统中是否安装,可以勾选“Embed”嵌入,不过这样做会使PDF文档变得非常大,一般情况下不推荐如此做。
  4.创建书签书签提供了直观目录,通常代表文档中的章节和其它组织项目,这样会使读者的阅读轻松不少。
  在导航栏中点击“Bookmarks”图标,再点击“Bookmars”右下角的小箭头,选择“NewsBookmark”命令,输入书签名字如“第一章《灭门》”,按回车键确定,然后右击该书签,选择“Properties”命令,在如图10所示的“BookmarkProperties”对话框中进行有关项目的设置,如在“Action”的“Type”下拉列表框中选择“GotoView”,然后在对话框外切换到所需要的页面,并调整好显示比例,最后点击“SetAction”按钮完成。其它如第二章《聆秘》、第三章《救难》等书签可按照同样的方法制作,最后制作好的标签如图11所示。
  5.制作MouseOver按钮如果你的AdobeAcrobat是完全版本的话,那么就可以利用Form工具来控制页面的触发事件,例如在页面打开时播放一段你喜欢的MP3音乐,或者通过具有MouseOver效果链接的图标来打开一个特定的文件、电影片段等,这样在阅读时除了视觉的享受之外还可以听到美妙的音乐呢!
  下面就以制作带有OnMouse效果的跳转页面按钮为例介绍:
  单击左侧工具栏中的“FormTool”工具,这时光标将变成一个十字形的图标,利用它在页面上拖出一个区域,你马上就可以看到如图12所示的“FieldProperties”对话框:
  Name:为这个表单起一个唯一的名字Type:这是一个下拉列表框,有Button、CheckBox、ComboBox、ListBox、RadioButton、Signature、Text等七种类型,这里当然选择“Button(按钮)”啦。
  ShortDescription:在这里可以输入一些简单的说明文字,方便以后的查找。
  发下是六个标签页,点击后可以进行不同的设置。
  Appearance:在“Border”区,我们可以定义按钮边框、背景颜色、宽度和边框的类型;在“Text”区,可以定义文字的颜色、字体、大小;在“CommonProperties”区可以定义注释的类型和边框可见方式。
  Options:在“Aligment”下拉列表框中,你可以选择触发事件时是使用鼠标的左键、中键、右键,系统缺省是使用左键。
  Actions:定义详细的触发事件,在左边的“Whenthishappens”框中,建议选择“MouseUp”,右边则是定义当事件触发时,发生什么事件,点击“Add”按钮可以在图中看到一共有13种选项可供选择,如果你想产生切换页面的效果,可以选择JavaScript项。
  Format、Validate、Calculate等标签页并无多大实用意义,可以取默认值,这里就不多介绍了。
  完成所有设置后,点击“确定”按钮,一个“MouseOver”样式的按钮就制作完成,如果你愿意,还可以在“Action”中加入声音、动画等。
  6.给PDF文档加印章你也可像在一个纸张文档上使用橡皮印章一样,用Acrobat来给你的文档盖上一个印章。下面你将给文章的封面加盖一个印章。
  (1)在页面框上移动指针直到它变为一个I字光标,然后双击突出的当前页码。
  (2)在批注工具上按住鼠标按钮以显示一套隐藏工具,拖动并选取印章工具。(如图13)
  (3)单击页面的左上角。默认时,出现“批准”印章。
  你可从Acrobat印章库中选择另一个不同的印章。
  (4)选择“编辑”→“属性”。
  (5)从“分类”菜单中选取“标准”,从对话框左面窗口的列表中选择“草稿”,并单击“确定”。
  (6)选择手形工具,在文档窗口内单击以取消选取的印章。
  除了从Acrobat印章库使用印章外,你可创建你自己定义的印章,并以批注方式来使用它们。
  (7)选择“文件”→“保存”以保存该文件。
  7.文档加密设置如果你不希望别人对你制作的PDF电子书做修改或者其他一些损害你利益的事情,建议你对文档进行加密设置。加密设置具体如下:
  单击Acrobat菜单“File”→“DocumentSecurity”选项,在弹出的对话框中的“SecurityOptions”下拉菜单中选择“AcrobatStandardSecurity”选项,弹出对话框(图14):
  如果希望用户需要密码才能阅读,请选择“PasswordRequiredtoOpenDocument”(并输入用户打开文档时需要的密码)。
  建议选择“PasswordRequiredtoChangePermissionsandPasswords”选项,即只有制作者才可以修改文档信息及文档安全性密码。
  在“EncryptionLevel”(加密级别)中可以选择使用的加密级别:包括40-bit和128-bit两种方式,其中128-bit只能针对5.0版本,所以建议选择40-bit即可,以确保文档的向下兼容。
  我们这里还选择了“NoChangingtheDocument”,即不允许用户修改文档中的任何部分。如果需要禁止用户打印和复制文档中的文字和图片还可以勾选“NoPrinting”、“NoContentCopyingorExtraction,DisableAccessibility”选项。如果不允许用户加入或者改变注释、表格域可以勾选“NoAddingorChangingCommentsandFormFields”选项。
  设置完所有设置以后,点击OK关掉对话框即可。
  总的来说,AdobeAcrobat是一款功能极其强大的电子文档制作工具,除了制作、阅读PDF文档以外,你还可以使用AdobeAcrobat实现在PDF文档中加入JavaScript脚本、将PDF文档作为电子邮件的邮件发送出去、在网页中使用PDF文档、添加电影和声音剪辑文件、编辑PDF页面中的图形/图像对象、图文演示等功能,不过由于篇幅所限,在这里就不多作介绍了。

posted @ 2005-07-09 13:24 一天一点爱恋 阅读(1489) | 评论 (0)编辑 收藏
 
Copyright © 一天一点爱恋 Powered by: 博客园 模板提供:沪江博客