ATHENA's profile闲人勿入BlogLists Tools Help

Blog


    给Analytics增加针对百度/3721的搜索来源统计

    和AWStats一样:Google完全没有考虑中国的搜索引擎市场中更主要的2个搜索引擎来源:Baidu/3721等搜索引擎的来源,如果要统计,方法也很简单:hack一下urchin.js

    1 下载urchin.js到本地:修改其中的搜索来源定义
    _uOsr[18]="virgilio"; _uOkw[18]="qs";
    _uOsr[19]="teoma"; _uOkw[19]="q";
    _uOsr[20]="baidu"; _uOkw[20]="wd";
    _uOsr[21]="3721"; _uOkw[21]="name";

     

    2 本地部署urchin.js即可:将urchin.js和adsense的代码合并

     

    百度的搜索关键词参数另外还有word= 等,增加了一行定义
    _uOsr[22]="baidu"; _uOkw[22]="word";
    so.qq.com也是一个很重要的搜索来源:
    _uOsr[23]="qq.com"; _uOkw[23]="w";

    国外的统计系统: WebAlizer/ AWStats 等都缺乏对中国搜索引擎的统计。但是一般都提供了自定义的配置或者可以通过修改代码实现定义的扩展。

    判断是否安装某个控件,插件

    不是每个都可以,不知道为什么有的不行,比如RealPlayer的ActiveX就不行,有待研究。
     
    <script>
    function isInsalled(oID){
    with(event.srcElement){//给事件发生的对象添加clientCaps默认行为
    addBehavior(’#default#clientcaps’)                 
    //根据控件的ID检测是否已经安装,是的话继续检测控件版本,否则提示"未安装"
    isComponentInstalled(oID,"componentid")?alert(’已安装,版本:’+getComponentVersion(oID,"componentid")):alert("未安装")        
    }}
    </script>
    <button onclick="isInsalled(’{D27CDB6E-AE6D-11cf-96B8-444553540000}’)">Micromedia Flash Player</button>
    <button onclick="isInsalled(’{22d6f312-b0f6-11d0-94ab-0080c74c7e95}’)">Window Media Player</button>
     
    主要是依靠IE的强大的默认行为clientCaps。在单击按钮时调用isInsalled函数,用addBehavior方法给该按钮添加clientCaps行为,然后利用clientCaps行为的isComponentInstalled方法判断指定控件是否已安装,如果已安装,继续用getComponentVersion方法获取已安装的控件版本号。 
    addBehavior 给元素附加一个行为。
    isComponentInstalled 检索指定组件(插件、控件)是否可用。
    getComponentVersion 获取指定组件的版本号。

    Windows Media Rights Manager(DRM)资料

    这个SDK要MONEY的……
     
    RMGetLicense Object
    RMGetLicense
    clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062
     
    GetAsyncCallStatus
    Retrieves the status of the last call to the GetLicenseFromURLAsync method.

    GetDRMSecurityVersion
    Returns the individualization version of the consumer's player.

    GetDRMVersion
    Returns the DRM version of the consumer's player application.

    GetLicenseFromURL
    Sends a license request and retrieves a license.

    GetLicenseFromURLAsync
    Creates a separate thread to send a license request and retrieve a license. 

    GetSystemInfo
    Retrieves the Windows Media Rights Manager system information from the consumer's computer.

    StoreLicense
    Stores a license on the consumer's computer.
     

    MediaPlayer9 ActiveX 详解

    {6BF52A52-394A-11d3-B153-00C04F79FAA6}
    Windows Media Player控件
    需要Windows Media Player 9或以上版本

    ##0 IWMPEvents = Notuseful

    ##1 IWMPEvents.OpenStateChange =
    Sent when the control changes OpenState

    ##1 IWMPEvents.PlayStateChange =
    Sent when the control changes PlayState

    ##1 IWMPEvents.AudioLanguageChange =
    Sent when the current audio language has changed

    ##1 IWMPEvents.StatusChange =
    Sent when the status string changes

    ##1 IWMPEvents.ScriptCommand =
    Sent when a synchronized command or URL is received

    ##1 IWMPEvents.NewStream =
    Sent when a new stream is started in a channel

    ##1 IWMPEvents.Disconnect =
    Sent when the control is disconnected from the server

    ##1 IWMPEvents.Buffering =
    Sent when the control begins or ends buffering

    ##1 IWMPEvents.Error =
    Sent when the control has an error condition

    ##1 IWMPEvents.Warning =
    Sent when the control encounters a problem

    ##1 IWMPEvents.EndOfStream =
    Sent when the end of file is reached

    ##1 IWMPEvents.PositionChange =
    Indicates that the current position of the movie has changed

    ##1 IWMPEvents.MarkerHit =
    Sent when a marker is reached

    ##1 IWMPEvents.DurationUnitChange =
    Indicates that the unit used to express duration and position has changed

    ##1 IWMPEvents.CdromMediaChange =
    Indicates that the CD ROM media has changed

    ##1 IWMPEvents.PlaylistChange =
    Sent when a playlist changes

    ##1 IWMPEvents.CurrentPlaylistChange =
    Sent when the current playlist changes

    ##1 IWMPEvents.CurrentPlaylistItemAvailable =
    Sent when a current playlist item becomes available

    ##1 IWMPEvents.MediaChange =
    Sent when a media object changes

    ##1 IWMPEvents.CurrentMediaItemAvailable =
    Sent when a current media item becomes available

    ##1 IWMPEvents.CurrentItemChange =
    Sent when the item selection on the current playlist changes

    ##1 IWMPEvents.MediaCollectionChange =
    Sent when the media collection needs to be requeried

    ##1 IWMPEvents.MediaCollectionAttributeStringAdded =
    Sent when an attribute string is added in the media collection

    ##1 IWMPEvents.MediaCollectionAttributeStringRemoved =
    Sent when an attribute string is removed from the media collection

    ##1 IWMPEvents.MediaCollectionAttributeStringChanged =
    Sent when an attribute string is changed in the media collection

    ##1 IWMPEvents.PlaylistCollectionChange =
    Sent when playlist collection needs to be requeried

    ##1 IWMPEvents.PlaylistCollectionPlaylistAdded =
    Sent when a playlist is added to the playlist collection

    ##1 IWMPEvents.PlaylistCollectionPlaylistRemoved =
    Sent when a playlist is removed from the playlist collection

    ##1 IWMPEvents.PlaylistCollectionPlaylistSetAsDeleted =
    Sent when a playlist has been set or reset as deleted

    ##1 IWMPEvents.ModeChange =
    Playlist playback mode has changed

    ##1 IWMPEvents.MediaError =
    Sent when the media object has an error condition

    ##1 IWMPEvents.OpenPlaylistSwitch =
    Current playlist switch with no open state change

    ##1 IWMPEvents.DomainChange =
    Send a current domain

    ##1 IWMPEvents.SwitchedToPlayerApplication =
    Sent when display switches to player application

    ##1 IWMPEvents.SwitchedToControl =
    Sent when display switches to control

    ##1 IWMPEvents.PlayerDockedStateChange =
    Sent when the player docks or undocks

    ##1 IWMPEvents.PlayerReconnect =
    Sent when the OCX reconnects to the player

    ##1 IWMPEvents.Click =
    Occurs when a user clicks the mouse

    ##1 IWMPEvents.DoubleClick =
    Occurs when a user double-clicks the mouse

    ##1 IWMPEvents.KeyDown =
    Occurs when a key is pressed

    ##1 IWMPEvents.KeyPress =
    Occurs when a key is pressed and released

    ##1 IWMPEvents.KeyUp =
    Occurs when a key is released

    ##1 IWMPEvents.MouseDown =
    Occurs when a mouse button is pressed

    ##1 IWMPEvents.MouseMove =
    Occurs when a mouse pointer is moved

    ##1 IWMPEvents.MouseUp =
    Occurs when a mouse button is released

    ##0 WMPPlaylistChangeEventType = Notuseful

    ##1 WMPPlaylistChangeEventType.wmplcUnknown =
    Unknown

    ##1 WMPPlaylistChangeEventType.wmplcClear =
    Clear

    ##1 WMPPlaylistChangeEventType.wmplcInfoChange =
    InfoChange

    ##1 WMPPlaylistChangeEventType.wmplcMove =
    Move

    ##1 WMPPlaylistChangeEventType.wmplcDelete =
    Delete

    ##1 WMPPlaylistChangeEventType.wmplcInsert =
    Insert

    ##1 WMPPlaylistChangeEventType.wmplcAppend =
    Append

    ##1 WMPPlaylistChangeEventType.wmplcPrivate =
    Private

    ##1 WMPPlaylistChangeEventType.wmplcNameChange =
    NameChange

    ##1 WMPPlaylistChangeEventType.wmplcMorph =
    Morph

    ##1 WMPPlaylistChangeEventType.wmplcSort =
    Sort

    ##1 WMPPlaylistChangeEventType.wmplcLast =
    Last

    ##1 WindowsMediaPlayer = WMP播放器
    Windows媒体播放器控件

    ##1 WindowsMediaPlayer.close = 关闭
    关闭媒体播放器

    ##1 WindowsMediaPlayer.URL = 地址
    返回或设置要播放的媒体文件的文件名或者URL,例如"c:\1.mp3","http://www.cnn.com/video.asf"

    ##1 WindowsMediaPlayer.openState = 打开状态
    返回播放器的打开状态

    ##1 WindowsMediaPlayer.playState = 播放状态
    返回播放器的播放状态,使用"播放状态"枚举常量

    ##1 WindowsMediaPlayer.Getcontrols = 取控制
    获取控制对象

    ##1 WindowsMediaPlayer.Getsettings = 取设定
    获取设定对象

    ##1 WindowsMediaPlayer.GetcurrentMedia = 取当前媒体
    获取当前媒体对象

    ##0 WindowsMediaPlayer.GetmediaCollection = Notuseful
    获取媒体集合对象

    ##0 WindowsMediaPlayer.GetplaylistCollection = Notuseful
    获取播放列表集合对象

    ##1 WindowsMediaPlayer.versionInfo = 版本信息
    返回Windows Media Player的版本信息

    ##0 WindowsMediaPlayer.launchURL = Notuseful

    ##1 WindowsMediaPlayer.Getnetwork = 取网络
    获取网络对象

    ##1 WindowsMediaPlayer.GetcurrentPlaylist = 取当前播放列表
    获取当前播放列表对象

    ##1 WindowsMediaPlayer.GetcdromCollection = 取光驱集
    获取光驱集合对象

    ##0 WindowsMediaPlayer.GetclosedCaption = Notuseful
    Returns the closed caption handler

    ##1 WindowsMediaPlayer.isOnline = 在线
    返回当前计算机是否连接到了Internet上

    ##0 WindowsMediaPlayer.GetError = Notuseful
    获取错误对象

    ##1 WindowsMediaPlayer.status = 状态
    以文本型方式返回当前播放器的状态

    ##0 WindowsMediaPlayer.Getdvd = Notuseful
    获取DVD对象

    ##0 WindowsMediaPlayer.newPlaylist = Notuseful
    创建一个新的播放列表

    ##1 WindowsMediaPlayer.newPlaylist.bstrName = 播放列表名
    新的播放列表的名称

    ##1 WindowsMediaPlayer.newMedia = 创建媒体对象
    创建一个新的媒体对象

    ##1 WindowsMediaPlayer.newMedia.bstrURL = 媒体文件
    媒体文件名,例如:"c:\1.mp3","http://www.cnn.com/capsaddam.wmv"

    ##1 WindowsMediaPlayer.enabled = 可用
    返回或设置控件是否可用

    ##1 WindowsMediaPlayer.fullScreen = 全屏模式
    返回或设置控件是否使用全屏幕模式

    ##1 WindowsMediaPlayer.enableContextMenu = 菜单可用
    返回或设置在Windows Media Player控件界面中是否使用菜单

    ##1 WindowsMediaPlayer.uiMode = 界面模式
    返回或设置控件界面的模式,可以为以下文本型常量之一:"invisible"、#隐藏所有;
    "none"、#只显示视频或者音频效果;"mini"、#MINI模式;"full"、#完整模式;"custom"、#自定义效果

    ##1 WindowsMediaPlayer.stretchToFit = 自适应尺寸
    返回或设置视频大小是否适应控件大小

    ##1 WindowsMediaPlayer.windowlessVideo = 无窗口模式
    返回或设置控件播放视频是否在无窗口模式

    ##1 WindowsMediaPlayer.isRemote = 远程模式
    返回播放器是否在远程方式下运行

    ##0 WindowsMediaPlayer.GetplayerApplication = Notuseful
    获取播放程序对象

    ##1 WindowsMediaPlayer.openPlayer = 打开播放器
    使用指定的URL连接来打开Windows Media Player主程序

    ##1 WindowsMediaPlayer.openPlayer.bstrURL = URL
    例如:"c:\1.mp3","http://www.cnn.com/video.wmv"

    ##1 WindowsMediaPlayer.SetcurrentMedia = 置当前媒体
    设置当前媒体对象

    ##1 WindowsMediaPlayer.SetcurrentMedia.属性值 = 媒体对象
    媒体对象

    ##1 WindowsMediaPlayer.SetcurrentPlaylist = 置当前播放列表
    设置当前播放列表

    ##1 WindowsMediaPlayer.SetcurrentPlaylist.属性值 = 播放列表
    播放列表对象

    ##1 _WMPOCXEvents.OpenStateChange = 打开状态被改变
    当前打开状态被改变的时候触发此事件

    ##1 _WMPOCXEvents.OpenStateChange.NewState = 新的状态
    使用"打开状态"枚举常量

    ##1 _WMPOCXEvents.PlayStateChange = 播放状态被改变
    当播放状态属性被改变的时候触发此事件

    ##1 _WMPOCXEvents.PlayStateChange.NewState = 新的状态
    请参见"播放状态"枚举常量

    ##1 _WMPOCXEvents.AudioLanguageChange = 音频语言被改变
    当音频语言被改变的时候触发此事件

    ##1 _WMPOCXEvents.AudioLanguageChange.LangID = 语言标识
    新的语言的标识(LCID)

    ##1 _WMPOCXEvents.StatusChange = 状态被改变
    当前状态属性被改变的时候触发此事件

    ##0 _WMPOCXEvents.ScriptCommand = Notuseful
    Sent when a synchronized command or URL is received

    ##0 _WMPOCXEvents.NewStream = Notuseful
    Sent when a new stream is started in a channel

    ##0 _WMPOCXEvents.Disconnect = Notuseful
    Sent when the control is disconnected from the server

    ##1 _WMPOCXEvents.Buffering = 正在缓冲
    本时间在Windows Media Player控件缓冲或下载,并且在缓冲开始或结尾部分时触发。

    ##1 _WMPOCXEvents.Buffering.Start = 是否在开头
    如果为 真,正在缓冲开头,反之,为正在缓冲结尾

    ##1 _WMPOCXEvents.Error = 错误发生
    当发生错误的时候触发此事件

    ##0 _WMPOCXEvents.Warning = Notuseful
    Sent when the control encounters a problem

    ##0 _WMPOCXEvents.EndOfStream = Notuseful
    Sent when the end of file is reached

    ##1 _WMPOCXEvents.PositionChange = 位置被改变
    当播放位置被改变的时候触发此事件

    ##1 _WMPOCXEvents.PositionChange.oldPosition = 旧的位置

    ##1 _WMPOCXEvents.PositionChange.newPosition = 新的位置

    ##0 _WMPOCXEvents.MarkerHit = Notuseful
    Sent when a marker is reached

    ##0 _WMPOCXEvents.DurationUnitChange = Notuseful
    Indicates that the unit used to express duration and position has changed

    ##1 _WMPOCXEvents.CdromMediaChange = 光驱媒体更改
    本事件在CD/DVD光驱在弹出或插入时被触发

    ##1 _WMPOCXEvents.CdromMediaChange.CdromNum = 光驱序号
    光盘驱动器的序号

    ##0 _WMPOCXEvents.PlaylistChange = Notuseful
    Sent when a playlist changes

    ##0 _WMPOCXEvents.CurrentPlaylistChange = Notuseful
    Sent when the current playlist changes

    ##0 _WMPOCXEvents.CurrentPlaylistItemAvailable = Notuseful
    Sent when a current playlist item becomes available

    ##0 _WMPOCXEvents.MediaChange = Notuseful
    Sent when a media object changes

    ##0 _WMPOCXEvents.CurrentMediaItemAvailable = Notuseful
    Sent when a current media item becomes available

    ##0 _WMPOCXEvents.CurrentItemChange = Notuseful
    该事件在"WMP控制"对象的"当前项目"被改变的时候被触发

    ##0 _WMPOCXEvents.MediaCollectionChange = Notuseful
    Sent when the media collection needs to be requeried

    ##0 _WMPOCXEvents.MediaCollectionAttributeStringAdded = Notuseful
    Sent when an attribute string is added in the media collection

    ##0 _WMPOCXEvents.MediaCollectionAttributeStringRemoved = Notuseful
    Sent when an attribute string is removed from the media collection

    ##0 _WMPOCXEvents.MediaCollectionAttributeStringChanged = Notuseful
    Sent when an attribute string is changed in the media collection

    ##0 _WMPOCXEvents.PlaylistCollectionChange = Notuseful
    Sent when playlist collection needs to be requeried

    ##0 _WMPOCXEvents.PlaylistCollectionPlaylistAdded = Notuseful
    Sent when a playlist is added to the playlist collection

    ##0 _WMPOCXEvents.PlaylistCollectionPlaylistRemoved = Notuseful
    Sent when a playlist is removed from the playlist collection

    ##0 _WMPOCXEvents.PlaylistCollectionPlaylistSetAsDeleted = Notuseful
    Sent when a playlist has been set or reset as deleted

    ##0 _WMPOCXEvents.ModeChange = Notuseful
    Playlist playback mode has changed

    ##1 _WMPOCXEvents.MediaError = 媒体发生错误
    当媒体对象发生错误的时候触发此事件

    ##1 _WMPOCXEvents.MediaError.pMediaObject = 媒体对象
    发生错误的媒体对象

    ##0 _WMPOCXEvents.OpenPlaylistSwitch = Notuseful
    Current playlist switch with no open state change

    ##0 _WMPOCXEvents.DomainChange = Notuseful
    Send a current domain

    ##0 _WMPOCXEvents.SwitchedToPlayerApplication = Notuseful
    该事件在远程控件切换到完整的播放程序时被触发

    ##0 _WMPOCXEvents.SwitchedToControl = Notuseful
    该事件在远程控件切换回控件时被触发

    ##0 _WMPOCXEvents.PlayerDockedStateChange = Notuseful
    Sent when the player docks or undocks

    ##1 _WMPOCXEvents.PlayerReconnect = 播放器重新连接
    当控件重新连接到播放器的时候触发此事件

    ##1 _WMPOCXEvents.Click = 被单击
    当用户单击左键的时候触发此事件

    ##1 _WMPOCXEvents.Click.nButton = 鼠标按钮
    0、#左键;1、右键;2、中键;

    ##1 _WMPOCXEvents.Click.nShiftState = Shift键状态
    0、Shift键被按下;1、Ctrl键被按下;2、Alt键被按下;

    ##1 _WMPOCXEvents.Click.fX = 横坐标
    横坐标

    ##1 _WMPOCXEvents.Click.fY = 纵坐标
    纵坐标

    ##1 _WMPOCXEvents.DoubleClick = 鼠标双击
    当前鼠标双击的时候触发此事件

    ##1 _WMPOCXEvents.DoubleClick.nButton = 鼠标按键
    为以下常量之一:0、#左键; 1、#右键;2、#中键;

    ##1 _WMPOCXEvents.DoubleClick.nShiftState = Shift键状态
    为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下

    ##1 _WMPOCXEvents.DoubleClick.fX = 横坐标
    横坐标

    ##1 _WMPOCXEvents.DoubleClick.fY = 纵坐标
    纵坐标

    ##1 _WMPOCXEvents.KeyDown = 按下按键
    当按下键盘上的某键的时候触发此事件

    ##1 _WMPOCXEvents.KeyPress = 键输入
    当键盘上的某键被按下并抬起一次触发此事件

    ##1 _WMPOCXEvents.KeyPress.nKeyAscii = 键码
    对应Ascii码

    ##1 _WMPOCXEvents.KeyUp = 放开按键
    当放开键盘上的某个按键的时候触发此事件

    ##1 _WMPOCXEvents.KeyUp.nKeyCode = 键码
    对应Ascii码

    ##1 _WMPOCXEvents.KeyUp.nShiftState = Shift键状态
    为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下

    ##1 _WMPOCXEvents.MouseDown = 鼠标按键被按下
    当鼠标按键被按下的时候触发此事件

    ##1 _WMPOCXEvents.MouseDown.nButton = 鼠标按键
    为以下常量之一:0、#左键; 1、#右键;2、#中键;

    ##1 _WMPOCXEvents.MouseDown.nShiftState = Shift键状态
    为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下

    ##1 _WMPOCXEvents.MouseDown.fX = 横坐标
    横坐标

    ##1 _WMPOCXEvents.MouseDown.fY = 纵坐标
    纵坐标

    ##1 _WMPOCXEvents.MouseMove = 鼠标移动
    当鼠标移动的时候触发此事件

    ##1 _WMPOCXEvents.MouseMove.nButton = 鼠标按键
    为以下常量之一:0、#左键; 1、#右键;2、#中键;

    ##1 _WMPOCXEvents.MouseMove.nShiftState = Shift键状态
    为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下

    ##1 _WMPOCXEvents.MouseMove.fX = 横坐标
    横坐标

    ##1 _WMPOCXEvents.MouseMove.fY = 纵坐标
    纵坐标

    ##1 _WMPOCXEvents.MouseUp = 鼠标按键被抬起
    当鼠标按键被抬起的时候触发此时间

    ##1 _WMPOCXEvents.MouseUp.nButton = 鼠标按键
    为以下常量之一:0、#左键; 1、#右键;2、#中键;

    ##1 _WMPOCXEvents.MouseUp.nShiftState = Shift键状态
    为以下常量之一:0、#Shift键被按下;1、#Ctrl键被按下;2、#Alt键被按下

    ##1 _WMPOCXEvents.MouseUp.fX = 横坐标
    横坐标

    ##1 _WMPOCXEvents.MouseUp.fY = 纵坐标
    纵坐标

    ##0 IWMPCore2 = Notuseful

    ##1 IWMPCore2.close =
    Closes the media

    ##1 IWMPCore2.URL =
    Returns or sets the URL

    ##1 IWMPCore2.openState =
    Returns the open state of the player

    ##1 IWMPCore2.playState =
    Returns the play state of the player

    ##1 IWMPCore2.Getcontrols =
    Returns the control handler

    ##1 IWMPCore2.Getsettings =
    Returns the settings handler

    ##1 IWMPCore2.GetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPCore2.GetmediaCollection =
    Returns the media collection handler

    ##1 IWMPCore2.GetplaylistCollection =
    Returns the playlist collection handler

    ##1 IWMPCore2.versionInfo =
    Returns the version information for the player

    ##1 IWMPCore2.Getnetwork =
    Returns the network information handler

    ##1 IWMPCore2.GetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 IWMPCore2.GetcdromCollection =
    Get the CDROM drive collection

    ##1 IWMPCore2.GetclosedCaption =
    Returns the closed caption handler

    ##1 IWMPCore2.isOnline =
    Returns whether the machine is online.

    ##1 IWMPCore2.GetError =
    Returns the error object

    ##1 IWMPCore2.status =
    Returns status string

    ##1 IWMPCore2.Getdvd =
    Returns the DVD handler

    ##1 IWMPCore2.SetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPCore2.SetcurrentPlaylist =
    Returns/sets the current playlist

    ##0 IWMPCore = Notuseful
    本对象是Windows Media Player控件的核心部分,使用它可以取得大量常用的Windows Media Player提供的对象

    ##1 IWMPCore.close = 关闭WMP
    关闭Windows Media Player

    ##1 IWMPCore.URL = 媒体位置
    返回或设置媒体对象的位置,例如:"c:\1.mpg","c:\1.mp3"

    ##1 IWMPCore.openState =
    Returns the open state of the player

    ##1 IWMPCore.playState =
    Returns the play state of the player

    ##1 IWMPCore.Getcontrols =
    Returns the control handler

    ##1 IWMPCore.Getsettings =
    Returns the settings handler

    ##1 IWMPCore.GetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPCore.GetmediaCollection =
    Returns the media collection handler

    ##1 IWMPCore.GetplaylistCollection =
    Returns the playlist collection handler

    ##1 IWMPCore.versionInfo = 版本信息
    返回当前Windows Media Player的版本信息

    ##1 IWMPCore.Getnetwork =
    Returns the network information handler

    ##1 IWMPCore.GetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 IWMPCore.GetcdromCollection =
    Get the CDROM drive collection

    ##1 IWMPCore.GetclosedCaption =
    Returns the closed caption handler

    ##1 IWMPCore.isOnline =
    Returns whether the machine is online.

    ##1 IWMPCore.GetError =
    Returns the error object

    ##1 IWMPCore.status =
    Returns status string

    ##1 IWMPCore.SetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPCore.SetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 WMPOpenState = 打开状态
    本对象枚举了Windows Media Player在打开媒体文件时,所有可能的状态

    ##1 WMPOpenState.wmposUndefined = 不确定
    不确定的状态

    ##1 WMPOpenState.wmposPlaylistChanging = 播放列表被改变
    新的播放列表已被加载

    ##1 WMPOpenState.wmposPlaylistLocating = 正在定位播放列表
    正在定位播放列表

    ##1 WMPOpenState.wmposPlaylistConnecting = 正在连接播放列表
    正在连接服务器上的播放列表

    ##1 WMPOpenState.wmposPlaylistLoading = 正在加载播放列表
    正在加载播放列表

    ##1 WMPOpenState.wmposPlaylistOpening = 正在打开播放列表
    正在打开播放列表

    ##1 WMPOpenState.wmposPlaylistOpenNoMedia = 播放列表打开
    播放列表处于打开状态

    ##1 WMPOpenState.wmposPlaylistChanged = 播放列表被改变
    播放列表被改变

    ##1 WMPOpenState.wmposMediaChanging = 媒体被改变
    新的媒体文件已被加载

    ##1 WMPOpenState.wmposMediaLocating = 定位媒体
    正在定位媒体文件

    ##1 WMPOpenState.wmposMediaConnecting = 连接媒体
    正在连接服务器上的媒体文件

    ##1 WMPOpenState.wmposMediaLoading = 加载媒体
    正在加载媒体

    ##1 WMPOpenState.wmposMediaOpening = 正在打开媒体文件
    正在打开媒体文件

    ##1 WMPOpenState.wmposMediaOpen = 媒体被打开
    媒体已被打开

    ##1 WMPOpenState.wmposBeginCodecAcquisition = 开始获取编码器
    开始获取编码器

    ##1 WMPOpenState.wmposEndCodecAcquisition = 结束编码器获取
    结束编码器获取

    ##1 WMPOpenState.wmposBeginLicenseAcquisition = 开始许可证获取
    开始许可证获取

    ##1 WMPOpenState.wmposEndLicenseAcquisition = 结束许可证获取
    结束许可证获取

    ##1 WMPOpenState.wmposBeginIndividualization = 开始个性化设置
    开始个性化设置

    ##1 WMPOpenState.wmposEndIndividualization = 结束个性化设置
    结束个性化设置

    ##1 WMPOpenState.wmposMediaWaiting = 正在等待
    正在等待媒体文件

    ##1 WMPOpenState.wmposOpeningUnknownURL = 打开未知类型的URL
    正在打开一个未知类型的URL

    ##1 WMPPlayState = 播放状态
    本对象枚举了Windows Media Player在播放媒体文件时,所有可能的状态

    ##1 WMPPlayState.wmppsUndefined = 未知状态
    未知状态

    ##1 WMPPlayState.wmppsStopped = 播放暂停
    播放暂停

    ##1 WMPPlayState.wmppsPaused = 播放暂停
    播放暂停

    ##1 WMPPlayState.wmppsPlaying = 正在播放
    正在播放

    ##1 WMPPlayState.wmppsScanForward = 向前搜索
    向前搜索流媒体数据

    ##1 WMPPlayState.wmppsScanReverse = 向后搜索
    向后搜索流媒体数据

    ##1 WMPPlayState.wmppsBuffering = 正在缓冲
    媒体文件正在被缓冲

    ##1 WMPPlayState.wmppsWaiting = 等待加载
    等待加载流媒体

    ##1 WMPPlayState.wmppsMediaEnded = 播放结束
    播放结束

    ##1 WMPPlayState.wmppsTransitioning = 准备新媒体
    准备新的媒体文件

    ##1 WMPPlayState.wmppsReady = 播放准备就绪
    播放准备就绪

    ##1 WMPPlayState.wmppsReconnecting = 尝试重新连接
    尝试重新连接流媒体数据

    ##1 WMPPlayState.wmppsLast = 上一次状态
    状态没有改变

    ##1 IWMPControls = WMP控制
    本对象提供了控制媒体播放的各种方法,例如:播放、暂停......

    ##0 IWMPControls.GetisAvailable = Notuseful
    Returns whether or not the specified media functionality is available

    ##1 IWMPControls.play = 播放
    播放当前媒体项目

    ##1 IWMPControls.stop = 停止
    停止播放

    ##1 IWMPControls.pause = 暂停
    暂停当前正在播放的内容

    ##1 IWMPControls.fastForward = 快进
    快进

    ##1 IWMPControls.fastReverse = 快退
    快退

    ##1 IWMPControls.currentPosition = 当前位置
    返回或者设置从开始处到当前播放位置的长度,以秒为单位。

    ##1 IWMPControls.currentPositionString = 当前位置文本
    返回当前播放位置的文本表达。

    ##1 IWMPControls.next = 下一个
    将当前播放项目设为播放列表(PlayList)中的下一个项目

    ##1 IWMPControls.previous = 前一个
    与"下一个"命令作用正好相反

    ##1 IWMPControls.GetcurrentItem = 取当前项目
    获取当前媒体对象

    ##0 IWMPControls.currentMarker = Notuseful
    设置或返回当前标记号

    ##1 IWMPControls.playItem = 播放项目
    开始播放指定的媒体项目

    ##1 IWMPControls.playItem.pIWMPMedia = 媒体项目
    要播放的媒体项目("WMP媒体"对象)

    ##1 IWMPControls.SetcurrentItem = 置当前媒体
    设置当前媒体对象

    ##1 IWMPControls.SetcurrentItem.属性值 = 媒体对象
    要设置的"WMP媒体"对象

    ##1 IWMPMedia = WMP媒体
    本对象提供返回或设置一个多媒体剪辑的属性

    ##1 IWMPMedia.GetisIdentical = 判断相等
    判断参数所提供的媒体对象和本媒体对象是否是同样的

    ##1 IWMPMedia.GetisIdentical.pIWMPMedia = 媒体对象
    要判断的媒体对象("WMP媒体"对象)

    ##1 IWMPMedia.sourceURL = 源连接
    返回本媒体对象的原始URL连接

    ##1 IWMPMedia.name = 媒体名称
    返回媒体的名称

    ##1 IWMPMedia.imageSourceWidth = 源图像宽度
    返回图像的原始宽度,以象素为单位

    ##1 IWMPMedia.imageSourceHeight = 源图像高度
    返回图像的原始高度,以象素为单位

    ##1 IWMPMedia.markerCount = 标记数量
    返回文件中标记的数量

    ##1 IWMPMedia.getMarkerTime = 取标记时间
    通过序号获取标记时间

    ##1 IWMPMedia.getMarkerTime.MarkerNum = 序号
    标记序号

    ##1 IWMPMedia.getMarkerName = 取标记名
    通过标记序号获取标记名

    ##1 IWMPMedia.getMarkerName.MarkerNum = 序号
    标记序号

    ##1 IWMPMedia.duration = 播放位置
    以秒为单位返回或设置播放的位置

    ##1 IWMPMedia.durationString = 播放位置文本
    返回以文本方式表达的当前的播放位置,"HH:MM:SS"格式

    ##1 IWMPMedia.attributeCount = 属性的数量
    返回本媒体的属性的数量

    ##1 IWMPMedia.getAttributeName = 取属性名
    通过属性序号取得属性的名称,注意:属性序号必须在0 ~ 属性数量-1 的范围内

    ##1 IWMPMedia.getItemInfo = 取项目信息
    通过项目名获取项目信息

    ##1 IWMPMedia.getItemInfo.bstrItemName = 项目名
    项目名,可为下列文本型常量之一(更多项目名,请参见Windows Media Player 9 SDK 文档中的"Available Attributes"部分):
    "Author"、#本媒体剪辑的作者;"Bitrate"、#位比率(秒为单位);"Copyright"、#版权信息;"CurrenBitrate"、#当前位比率(秒为单位);"Description"、#媒体内容的描述;"Duration"、#持续时间(秒为单位);"FileSize"、#文件大小(Bytes为单位);
    "FileType"、#文件格式,例如wma,mp3;"SourceURL"、#原始地址;"Title"、#媒体内容的标题";

    ##1 IWMPMedia.setItemInfo = 置项目信息
    通过属性名设置项目信息

    ##1 IWMPMedia.setItemInfo.bstrItemName = 项目名
    项目的名称

    ##1 IWMPMedia.setItemInfo.bstrVal = 值
    要设置的值

    ##1 IWMPMedia.getItemInfoByAtom = 按序取项目信息
    按照序号获取项目信息

    ##0 IWMPMedia.isMemberOf = Notuseful
    Is the media a member of the given playlist

    ##0 IWMPMedia.isReadOnlyItem = Notuseful
    Is the attribute read only

    ##1 IWMPPlaylist = WMP播放列表
    本对象提供方法操作媒体剪辑列表

    ##1 IWMPPlaylist.count = 项目数量
    返回播放列表中项目的数量

    ##1 IWMPPlaylist.name = 名称
    返回播放列表名

    ##1 IWMPPlaylist.attributeCount = 属性数量
    返回播放列表中关联属性的数量

    ##1 IWMPPlaylist.GetattributeName = 取属性名
    通过序号获取属性名

    ##1 IWMPPlaylist.GetattributeName.lIndex = 序号
    属性的序号

    ##1 IWMPPlaylist.GetItem = 取媒体
    通过序号返回对应的媒体对象("WMP媒体"对象)

    ##1 IWMPPlaylist.GetItem.lIndex = 序号
    项目序号

    ##1 IWMPPlaylist.getItemInfo = 取项目信息
    通过项目名取得项目信息

    ##1 IWMPPlaylist.getItemInfo.bstrName = 项目名
    项目名

    ##1 IWMPPlaylist.setItemInfo = 置项目信息
    设置播放列表的项目信息

    ##1 IWMPPlaylist.setItemInfo.bstrName = 项目名
    项目名

    ##1 IWMPPlaylist.setItemInfo.bstrValue = 值
    要设置的值

    ##0 IWMPPlaylist.GetisIdentical = Notuseful
    Determines if the supplied object is the same as the this one

    ##1 IWMPPlaylist.clear = 清空列表
    清空播放列表中的全部内容

    ##1 IWMPPlaylist.insertItem = 插入项目
    在播放列表中指定位置插入新的项目

    ##1 IWMPPlaylist.insertItem.lIndex = 序号
    插入的序号

    ##1 IWMPPlaylist.insertItem.pIWMPMedia = 媒体对象
    要插入的媒体对象("WMP媒体"对象)

    ##1 IWMPPlaylist.appendItem = 追加
    向播放列表尾部追加项目

    ##1 IWMPPlaylist.appendItem.pIWMPMedia = 媒体对象
    要追加的媒体对象("WMP媒体"对象)

    ##1 IWMPPlaylist.removeItem = 移除
    通过媒体对象移除播放列表中的指定项目

    ##1 IWMPPlaylist.removeItem.pIWMPMedia = 媒体对象
    要移除的媒体对象("WMP媒体"对象)

    ##1 IWMPPlaylist.moveItem = 移动
    移动项目的位置

    ##1 IWMPPlaylist.moveItem.lIndexOld = 旧序号
    原始序号

    ##1 IWMPPlaylist.moveItem.lIndexNew = 新序号
    新的序号

    ##1 IWMPSettings = WMP设定
    本对象提供了可以改变Windows Media Player多个设定的方法

    ##0 IWMPSettings.GetisAvailable = Notuseful
    Returns whether or not the specified media functionality is available

    ##1 IWMPSettings.autoStart = 自动播放
    返回或设置媒体文件是否自动播放

    ##0 IWMPSettings.baseURL = Nutuseful
    Returns the base URL used for relative path resolution

    ##0 IWMPSettings.defaultFrame = Notuseful
    Returns the frame location that changes when a URL flip occurs

    ##0 IWMPSettings.invokeURLs = Notuseful
    Returns whether URL events should spawn a browser.

    ##1 IWMPSettings.mute = 静音
    返回或设置音频是否静音

    ##1 IWMPSettings.playCount = 播放次数
    返回或设置媒体对象播放的次数

    ##0 IWMPSettings.rate = Notuseful
    Returns current playback rate

    ##1 IWMPSettings.balance = 立体声平衡
    返回或设置音频左右声道的平衡,0为均衡,范围为:-100 ~ 100

    ##1 IWMPSettings.volume = 音量
    返回或设置音量,音量的范围为0 ~ 100

    ##0 IWMPSettings.getMode = Notuseful
    Returns the mode of the playlist

    ##0 IWMPSettings.setMode = Notuseful
    Sets the mode of the playlist

    ##1 IWMPSettings.enableErrorDialogs = 显示错误
    返回或设置是否自动显示错误对话框

    ##0 IWMPMediaCollection = Notuseful

    ##1 IWMPMediaCollection.add =
    Creates a new media object

    ##1 IWMPMediaCollection.getAll =
    Returns a collection of all the items

    ##1 IWMPMediaCollection.getByName =
    Returns a collection of items with the given name

    ##1 IWMPMediaCollection.getByGenre =
    Returns a collection of items with the given genre

    ##1 IWMPMediaCollection.getByAuthor =
    Returns a collection of items by a given author

    ##1 IWMPMediaCollection.getByAlbum =
    Returns a collection of items from the given album

    ##1 IWMPMediaCollection.getByAttribute =
    Returns a collection of items with the given attribute

    ##1 IWMPMediaCollection.remove =
    Removes an item from the media collection

    ##1 IWMPMediaCollection.getAttributeStringCollection =
    Returns the string collection associated with an attribute

    ##1 IWMPMediaCollection.getMediaAtom =
    Gets an atom associated with an item name which can be requested from an IWMPMedia out of this collection via getItemInfoByAtom

    ##1 IWMPMediaCollection.setDeleted =
    Sets the deleted flag on a media object

    ##1 IWMPMediaCollection.isDeleted =
    Gets the deleted flag on a media object

    ##0 IWMPStringCollection = Notuseful

    ##1 IWMPStringCollection.count =
    Returns the number of items in the string collection

    ##1 IWMPStringCollection.Item =
    Returns the string at the given index

    ##0 IWMPPlaylistCollection = Notuseful

    ##1 IWMPPlaylistCollection.newPlaylist =
    Creates a new playlist object

    ##1 IWMPPlaylistCollection.getAll =
    Returns a playlist array with all the playlists

    ##1 IWMPPlaylistCollection.getByName =
    Returns a playlist array with playlists matching the given name

    ##1 IWMPPlaylistCollection.remove =
    Removes an item from the playlist collection

    ##1 IWMPPlaylistCollection.setDeleted =
    Sets the deleted flag on a playlist object

    ##1 IWMPPlaylistCollection.isDeleted =
    Gets the deleted flag on a playlist object

    ##1 IWMPPlaylistCollection.importPlaylist =
    Imports a playlist object into the library

    ##0 IWMPPlaylistArray = Notuseful

    ##1 IWMPPlaylistArray.count =
    Returns the number of items in the playlist array

    ##1 IWMPPlaylistArray.Item =
    Returns the playlist object at the given index

    ##1 IWMPNetwork = WMP网络
    本对象提供关联Windows Media Player和网络连接的方法

    ##1 IWMPNetwork.bandWidth = 带宽
    返回地址属性所指向的流媒体的带宽

    ##1 IWMPNetwork.recoveredPackets = 被覆盖数据包数
    返回被覆盖的数据包数

    ##0 IWMPNetwork.sourceProtocol = Notuseful
    Returns the source protocol used to receive data.

    ##1 IWMPNetwork.receivedPackets = 已接收数据包
    返回已接收的数据包数

    ##1 IWMPNetwork.lostPackets = 丢包数
    返回丢包的数量

    ##1 IWMPNetwork.receptionQuality = 接收质量
    返回最近30秒中的接收质量

    ##1 IWMPNetwork.bufferingCount = 缓冲数量
    返回缓冲的数量

    ##1 IWMPNetwork.bufferingProgress = 缓冲进度
    返回缓冲已完成的百分比

    ##1 IWMPNetwork.bufferingTime = 缓冲时间
    以毫秒为单位返回或设置缓冲的时间,范围为:0 ~ 60秒,默认为5秒

    ##1 IWMPNetwork.frameRate = 实际帧数
    当前视频每百秒的帧数

    ##0 IWMPNetwork.maxBitRate = Notuseful
    Maximum possible video bit rate

    ##1 IWMPNetwork.bitRate = 位比率
    返回当前音频或视频流的位比率

    ##0 IWMPNetwork.getProxySettings = Notuseful
    Returns the proxy settings for the specified protocol

    ##0 IWMPNetwork.setProxySettings = Notuseful
    Sets the proxy settings for the specified protocol

    ##0 IWMPNetwork.getProxyName = Notuseful
    Returns the proxy name for the specified protocol

    ##0 IWMPNetwork.setProxyName = Notuseful
    Sets the proxy name for the specified protocol

    ##0 IWMPNetwork.getProxyPort = Notuseful
    Returns the proxy port for the specified protocol

    ##0 IWMPNetwork.setProxyPort = Notuseful
    Sets the proxy port for the specified protocol

    ##0 IWMPNetwork.getProxyExceptionList = Notuseful
    Returns the proxy exception list for the specified protocol

    ##0 IWMPNetwork.setProxyExceptionList = Notuseful
    Sets the proxy exception list for the specified protocol

    ##0 IWMPNetwork.getProxyBypassForLocal = Notuseful
    Returns whether or not to bypass the proxy for local addresses

    ##0 IWMPNetwork.setProxyBypassForLocal = Notuseful
    Sets whether or not to by pass the proxy for local addresses

    ##1 IWMPNetwork.maxBandwidth = 最大带宽
    返回设置允许的最大带宽

    ##1 IWMPNetwork.downloadProgress = 下载进度
    以百分比返回下载进度

    ##1 IWMPNetwork.encodedFrameRate = 帧数
    返回由本媒体文件创建者所提供的每秒的帧数

    ##1 IWMPNetwork.framesSkipped = 跳过帧数
    返回当回放时跳过的帧数

    ##1 IWMPCdromCollection = WMP光驱集
    本对象提供访问CD/DVD光驱集合的方法

    ##1 IWMPCdromCollection.count = 数量
    返回的CD/DVD光驱的数量

    ##1 IWMPCdromCollection.Item = 取项目
    使用光驱序号获取"WMP光驱"对象

    ##1 IWMPCdromCollection.Item.lIndex = 序号
    光驱的序号,0表示1,该参数必须在"数量"属性 - 1的范围内

    ##1 IWMPCdromCollection.getByDriveSpecifier = 取光驱
    使用具体的光盘标识符取得"WMP光驱"对象

    ##1 IWMPCdromCollection.getByDriveSpecifier.bstrDriveSpecifier = 盘符
    光盘的标识符,例如"f:",必须有";"号

    ##1 IWMPCdrom = WMP光驱
    本对象提供方法访问/操作CD/DVD光驱

    ##1 IWMPCdrom.driveSpecifier = 标识符
    返回光驱的标识符,例如"f:"

    ##1 IWMPCdrom.GetPlaylist = 取播放列表
    获取光驱上的播放列表,为"WMP播放列表"对象

    ##1 IWMPCdrom.eject = 弹出光驱
    弹出/关闭光驱,如果当前光驱为打开状态则关闭,反之则打开

    ##0 IWMPClosedCaption = Notuseful

    ##1 IWMPClosedCaption.SAMIStyle =
    Returns the previously set SAMI style

    ##1 IWMPClosedCaption.SAMILang =
    Returns the previously set SAMI language

    ##1 IWMPClosedCaption.SAMIFileName =
    Returns the previously set SAMI file name

    ##1 IWMPClosedCaption.captioningId =
    Returns the previously set Captioning ID

    ##0 IWMPError = Notuseful

    ##1 IWMPError.clearErrorQueue =
    Clears the error queue

    ##1 IWMPError.errorCount =
    Returns the number of error items

    ##1 IWMPError.GetItem =
    Returns an error item object

    ##1 IWMPError.webHelp =
    Launches WebHelp

    ##0 IWMPErrorItem = Notuseful

    ##1 IWMPErrorItem.errorCode =
    Returns the error code

    ##1 IWMPErrorItem.errorDescription =
    Returns a description of the error

    ##1 IWMPErrorItem.GeterrorContext =
    Returns context information for the error

    ##1 IWMPErrorItem.remedy =
    Returns remedy code for the error

    ##1 IWMPErrorItem.customUrl =
    Returns a custom url for this error (if avail)

    ##0 IWMPDVD = So_poor_to_give_up_this_object

    ##1 IWMPDVD.GetisAvailable =
    Returns whether or not the specified DVD functionality is available

    ##1 IWMPDVD.domain =
    Returns the current DVD domain

    ##1 IWMPDVD.topMenu =
    Displays the top menu of the DVD

    ##1 IWMPDVD.titleMenu =
    Displays the title menu of the current DVD title

    ##1 IWMPDVD.back =
    Navigates back one menu

    ##1 IWMPDVD.resume =
    Removes the menu from the screen and returns to playing the DVD

    ##0 IWMPPlayerApplication = Notuseful

    ##1 IWMPPlayerApplication.switchToPlayerApplication =
    Switches the display to player application

    ##1 IWMPPlayerApplication.switchToControl =
    Switches the display to control

    ##1 IWMPPlayerApplication.playerDocked =
    Returns a boolean value specifying whether or not the player is docked

    ##1 IWMPPlayerApplication.hasDisplay =
    Returns a boolean value specifying whether or not the control has display

    ##0 IWMPPlayer3 = Notuseful

    ##1 IWMPPlayer3.close =
    Closes the media

    ##1 IWMPPlayer3.URL =
    Returns or sets the URL

    ##1 IWMPPlayer3.openState =
    Returns the open state of the player

    ##1 IWMPPlayer3.playState =
    Returns the play state of the player

    ##1 IWMPPlayer3.Getcontrols =
    Returns the control handler

    ##1 IWMPPlayer3.Getsettings =
    Returns the settings handler

    ##1 IWMPPlayer3.GetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer3.GetmediaCollection =
    Returns the media collection handler

    ##1 IWMPPlayer3.GetplaylistCollection =
    Returns the playlist collection handler

    ##1 IWMPPlayer3.versionInfo =
    Returns the version information for the player

    ##1 IWMPPlayer3.Getnetwork =
    Returns the network information handler

    ##1 IWMPPlayer3.GetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 IWMPPlayer3.GetcdromCollection =
    Get the CDROM drive collection

    ##1 IWMPPlayer3.GetclosedCaption =
    Returns the closed caption handler

    ##1 IWMPPlayer3.isOnline =
    Returns whether the machine is online.

    ##1 IWMPPlayer3.GetError =
    Returns the error object

    ##1 IWMPPlayer3.status =
    Returns status string

    ##1 IWMPPlayer3.Getdvd =
    Returns the DVD handler

    ##1 IWMPPlayer3.enabled =
    Returns a boolen value specifying whether or not the control is enabled

    ##1 IWMPPlayer3.fullScreen =
    Returns a boolean value specifying whether or not the control is in full screen mode

    ##1 IWMPPlayer3.enableContextMenu =
    Returns a boolean value specifying whether or not the context menu is enabled on the control

    ##1 IWMPPlayer3.uiMode =
    Specifies the ui mode to select

    ##1 IWMPPlayer3.stretchToFit =
    Returns a boolen value specifying whether or not video is stretched

    ##1 IWMPPlayer3.windowlessVideo =
    Returns a boolen value specifying whether or not video is windowless

    ##1 IWMPPlayer3.SetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer3.SetcurrentPlaylist =
    Returns/sets the current playlist

    ##0 IWMPPlayer2 = Notuseful

    ##1 IWMPPlayer2.close =
    Closes the media

    ##1 IWMPPlayer2.URL =
    Returns or sets the URL

    ##1 IWMPPlayer2.openState =
    Returns the open state of the player

    ##1 IWMPPlayer2.playState =
    Returns the play state of the player

    ##1 IWMPPlayer2.Getcontrols =
    Returns the control handler

    ##1 IWMPPlayer2.Getsettings =
    Returns the settings handler

    ##1 IWMPPlayer2.GetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer2.GetmediaCollection =
    Returns the media collection handler

    ##1 IWMPPlayer2.GetplaylistCollection =
    Returns the playlist collection handler

    ##1 IWMPPlayer2.versionInfo =
    Returns the version information for the player

    ##1 IWMPPlayer2.Getnetwork =
    Returns the network information handler

    ##1 IWMPPlayer2.GetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 IWMPPlayer2.GetcdromCollection =
    Get the CDROM drive collection

    ##1 IWMPPlayer2.GetclosedCaption =
    Returns the closed caption handler

    ##1 IWMPPlayer2.isOnline =
    Returns whether the machine is online.

    ##1 IWMPPlayer2.GetError =
    Returns the error object

    ##1 IWMPPlayer2.status =
    Returns status string

    ##1 IWMPPlayer2.enabled =
    Returns a boolen value specifying whether or not the control is enabled

    ##1 IWMPPlayer2.fullScreen =
    Returns a boolean value specifying whether or not the control is in full screen mode

    ##1 IWMPPlayer2.enableContextMenu =
    Returns a boolean value specifying whether or not the context menu is enabled on the control

    ##1 IWMPPlayer2.uiMode =
    Specifies the ui mode to select

    ##1 IWMPPlayer2.stretchToFit =
    Returns a boolen value specifying whether or not video is stretched

    ##1 IWMPPlayer2.windowlessVideo =
    Returns a boolen value specifying whether or not video is windowless

    ##1 IWMPPlayer2.SetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer2.SetcurrentPlaylist =
    Returns/sets the current playlist

    ##0 IWMPPlayer = Notuseful
    本对象提供对Windows Media Player用户界面的基本控制。本对象是对WMP核心的一个补充

    ##1 IWMPPlayer.close =
    Closes the media

    ##1 IWMPPlayer.URL =
    Returns or sets the URL

    ##1 IWMPPlayer.openState =
    Returns the open state of the player

    ##1 IWMPPlayer.playState =
    Returns the play state of the player

    ##1 IWMPPlayer.Getcontrols =
    Returns the control handler

    ##1 IWMPPlayer.Getsettings =
    Returns the settings handler

    ##1 IWMPPlayer.GetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer.GetmediaCollection =
    Returns the media collection handler

    ##1 IWMPPlayer.GetplaylistCollection =
    Returns the playlist collection handler

    ##1 IWMPPlayer.versionInfo =
    Returns the version information for the player

    ##1 IWMPPlayer.Getnetwork =
    Returns the network information handler

    ##1 IWMPPlayer.GetcurrentPlaylist =
    Returns/sets the current playlist

    ##1 IWMPPlayer.GetcdromCollection =
    Get the CDROM drive collection

    ##1 IWMPPlayer.GetclosedCaption =
    Returns the closed caption handler

    ##1 IWMPPlayer.isOnline =
    Returns whether the machine is online.

    ##1 IWMPPlayer.GetError =
    Returns the error object

    ##1 IWMPPlayer.status =
    Returns status string

    ##1 IWMPPlayer.enabled =
    Returns a boolen value specifying whether or not the control is enabled

    ##1 IWMPPlayer.fullScreen =
    Returns a boolean value specifying whether or not the control is in full screen mode

    ##1 IWMPPlayer.enableContextMenu =
    Returns a boolean value specifying whether or not the context menu is enabled on the control

    ##1 IWMPPlayer.uiMode =
    Specifies the ui mode to select

    ##1 IWMPPlayer.SetcurrentMedia =
    Returns or sets the current media object

    ##1 IWMPPlayer.SetcurrentPlaylist =
    Returns/sets the current playlist

    ##0 IWMPErrorItem2 = Notuseful

    ##1 IWMPErrorItem2.errorCode =
    Returns the error code

    ##1 IWMPErrorItem2.errorDescription =
    Returns a description of the error

    ##1 IWMPErrorItem2.GeterrorContext =
    Returns context information for the error

    ##1 IWMPErrorItem2.remedy =
    Returns remedy code for the error

    ##1 IWMPErrorItem2.customUrl =
    Returns a custom url for this error (if avail)

    ##1 IWMPErrorItem2.condition =
    Returns condition for the error

    ##0 IWMPControls2 = Notuseful
    本对象继承自"WMP控制"对象,只有"step"方法是自有的,因此关于本对象方法与属性的用法您可以参阅"WMP控制"对象。

    ##1 IWMPControls2.GetisAvailable =
    Returns whether or not the specified media functionality is available

    ##1 IWMPControls2.play =
    Begins playing media

    ##1 IWMPControls2.stop =
    Stops play of media

    ##1 IWMPControls2.pause =
    Pauses play of media

    ##1 IWMPControls2.fastForward =
    Fast play of media in forward direction

    ##1 IWMPControls2.fastReverse =
    Fast play of media in reverse direction

    ##1 IWMPControls2.currentPosition =
    Returns the current position in media

    ##1 IWMPControls2.currentPositionString =
    Returns the current position in media as a string

    ##1 IWMPControls2.next =
    Sets the current item to the next item in the playlist

    ##1 IWMPControls2.previous =
    Sets the current item to the previous item in the playlist

    ##1 IWMPControls2.GetcurrentItem =
    Returns/Sets the play item

    ##1 IWMPControls2.currentMarker =
    Returns the current marker

    ##1 IWMPControls2.playItem =
    Sets the current item and plays it

    ##1 IWMPControls2.step =
    Advances the video one frame

    ##1 IWMPControls2.SetcurrentItem =
    Returns/Sets the play item

    ##0 IWMPMedia2 = Notuseful

    ##0 IWMPMedia2.GetisIdentical = Notuseful
    Determines if the supplied object is the same as the this one

    ##1 IWMPMedia2.sourceURL = 源连接
    返回本媒体对象的原始URL连接

    ##1 IWMPMedia2.name = 媒体名称
    返回媒体的名称

    ##1 IWMPMedia2.imageSourceWidth = 源图像宽度
    返回图像的原始宽度

    ##1 IWMPMedia2.imageSourceHeight = 源图像高度
    返回图像的原始高度

    ##1 IWMPMedia2.markerCount = 标记数量
    返回文件中标记的数量

    ##1 IWMPMedia2.getMarkerTime = 取标记时间
    通过序号获取标记时间

    ##1 IWMPMedia2.getMarkerTime.MarkerNum = 标记序号
    通过标记序号获取标记时间

    ##1 IWMPMedia2.getMarkerName = 取标记名
    通过标记序号获取标记名

    ##1 IWMPMedia2.getMarkerName.MarkerNum = 序号
    标记序号

    ##1 IWMPMedia2.duration = 播放位置
    以秒为单位返回或设置播放的位置

    ##1 IWMPMedia2.durationString = 播放位置文本
    返回以文本方式表达的当前的播放位置,"HH:MM:SS"格式

    ##1 IWMPMedia2.attributeCount = 属性数量
    返回当前媒体属性的数量

    ##1 IWMPMedia2.getAttributeName = 取属性名
    通过属性序号取得属性的名称,注意:属性序号必须在0 ~ 属性数量-1 的范围内

    ##1 IWMPMedia2.getItemInfo = 取项目信息
    通过项目名获取项目信息

    ##1 IWMPMedia2.getItemInfo.bstrItemName = 项目名
    项目名称

    ##1 IWMPMedia2.setItemInfo = 置项目信息
    通过属性名设置项目信息

    ##1 IWMPMedia2.setItemInfo.bstrItemName = 项目名
    项目的名称

    ##1 IWMPMedia2.setItemInfo.bstrVal = 值
    要设置的值

    ##1 IWMPMedia2.getItemInfoByAtom = 按序取项目信息
    按照序号获取项目信息

    ##1 IWMPMedia2.getItemInfoByAtom.lAtom = 序号
    项目序号

    ##0 IWMPMedia2.isMemberOf = Notuseful
    Is the media a member of the given playlist

    ##1 IWMPMedia2.isReadOnlyItem =
    Is the attribute read only

    ##0 IWMPMedia2.GetError = Notuseful
    Returns an error item pointer for a media specific error

    ##0 IWMPMedia3 = Notuseful

    ##1 IWMPMedia3.GetisIdentical =
    Determines if the supplied object is the same as the this one

    ##1 IWMPMedia3.sourceURL =
    Returns the media URL

    ##1 IWMPMedia3.name =
    Returns the name of the media

    ##1 IWMPMedia3.imageSourceWidth =
    Returns the original width of the source images

    ##1 IWMPMedia3.imageSourceHeight =
    Returns the original height of the source images

    ##1 IWMPMedia3.markerCount =
    Returns the number of markers in the file

    ##1 IWMPMedia3.getMarkerTime =
    Returns the time of a marker

    ##1 IWMPMedia3.getMarkerName =
    Returns the name of a marker

    ##1 IWMPMedia3.duration =
    Returns duration of current media

    ##1 IWMPMedia3.durationString =
    Returns duration of current media as a string

    ##1 IWMPMedia3.attributeCount =
    Returns the count of the attributes associated with this media

    ##1 IWMPMedia3.getAttributeName =
    Returns the name of the attribute whose index has been specified

    ##1 IWMPMedia3.getItemInfo =
    Returns the value of specified attribute for this media

    ##1 IWMPMedia3.setItemInfo =
    Sets the value of specified attribute for this media

    ##1 IWMPMedia3.getItemInfoByAtom =
    Gets an item info by atom

    ##1 IWMPMedia3.isMemberOf =
    Is the media a member of the given playlist

    ##1 IWMPMedia3.isReadOnlyItem =
    Is the attribute read only

    ##1 IWMPMedia3.GetError =
    Returns an error item pointer for a media specific error

    ##0 IWMPMetadataPicture = Notuseful

    ##0 IWMPMetadataText = Notuseful

    ##0 IWMPSettings2 = Notuseful

    ##1 IWMPSettings2.GetisAvailable =
    Returns whether or not the specified media functionality is available

    ##1 IWMPSettings2.autoStart =
    Returns whether media should automatically begin playing

    ##1 IWMPSettings2.baseURL =
    Returns the base URL used for relative path resolution

    ##1 IWMPSettings2.defaultFrame =
    Returns the frame location that changes when a URL flip occurs

    ##1 IWMPSettings2.invokeURLs =
    Returns whether URL events should spawn a browser.

    ##1 IWMPSettings2.mute =
    Returns whether audio should be muted.

    ##1 IWMPSettings2.playCount =
    Returns how many times media should play

    ##1 IWMPSettings2.rate =
    Returns current playback rate

    ##1 IWMPSettings2.balance =
    Returns current audio Balance

    ##1 IWMPSettings2.volume =
    Returns current audio volume

    ##1 IWMPSettings2.getMode =
    Returns the mode of the playlist

    ##1 IWMPSettings2.setMode =
    Sets the mode of the playlist

    ##1 IWMPSettings2.enableErrorDialogs =
    Returns whether error dialogs are shown by default when embedded

    ##1 IWMPSettings2.defaultAudioLanguage =
    Returns the LCID of default audio language

    ##1 IWMPControls3 = WMP控制3
    本对象继承自"WMP控制"对象,只有以下方法是自有的:
    因此关于本对象方法与属性的用法您可以参阅"WMP控制"对象。

    ##0 IWMPControls3.GetisAvailable =
    Returns whether or not the specified media functionality is available

    ##0 IWMPControls3.play =
    Begins playing media

    ##0 IWMPControls3.stop =
    Stops play of media

    ##0 IWMPControls3.pause =
    Pauses play of media

    ##0 IWMPControls3.fastForward =
    Fast play of media in forward direction

    ##0 IWMPControls3.fastReverse =
    Fast play of media in reverse direction

    ##0 IWMPControls3.currentPosition =
    Returns the current position in media

    ##0 IWMPControls3.currentPositionString =
    Returns the current position in media as a string

    ##0 IWMPControls3.next =
    Sets the current item to the next item in the playlist

    ##0 IWMPControls3.previous =
    Sets the current item to the previous item in the playlist

    ##0 IWMPControls3.GetcurrentItem =
    Returns/Sets the play item

    ##0 IWMPControls3.currentMarker =
    Returns the current marker

    ##0 IWMPControls3.playItem =
    Sets the current item and plays it

    ##0 IWMPControls3.step =
    Advances the video one frame

    ##1 IWMPControls3.audioLanguageCount = 音频语言数量
    返回音频所支持的语言的数量

    ##1 IWMPControls3.getAudioLanguageID = 取语言标识
    通过索引获取音频语言标别

    ##1 IWMPControls3.getAudioLanguageID.lIndex = 语言索引
    指定音频语言索引

    ##1 IWMPControls3.getAudioLanguageDescription = 取音频语言描述
    获取指定索引的音频语言的描述

    ##1 IWMPControls3.getAudioLanguageDescription.lIndex = 语言索引
    指定语言索引

    ##1 IWMPControls3.currentAudioLanguage = 音频语言
    返回或设置当前的音频语言

    ##1 IWMPControls3.currentAudioLanguageIndex = 音频语言索引
    获取或设置当前音频语言的索引

    ##1 IWMPControls3.getLanguageName = 取语言名
    使用标识符(LCID)获取音频语言名

    ##1 IWMPControls3.getLanguageName.lLangID = 索引
    索引,LCID

    ##1 IWMPControls3.currentPositionTimecode = 位置代码
    返回或设置当前媒体播放的位置/时间,使用时间代码格式,此属性当前支持SMPTE时间代码 ,例如:"01:00:30:05"

    ##0 IWMPControls3.SetcurrentItem =
    Returns/Sets the play item

    ##0 IWMPClosedCaption2 = Notuseful

    ##1 IWMPClosedCa

    生成xbm格式的验证码


    on error resume next
    dim i
    dim countdata
    countdata="1234567890"
    dim rou,chkcode,chklen
    chkcode=""
    chklen = 4
    randomize
    for i=1 to 4
       rou = int(rnd*10)
       chkcode = chkcode + cstr(rou)
    next

    dim strDigits
    strDigits = Array(_
             "0","0x3c","0x66","0x66","0x66","0x66","0x66","0x66","0x66","0x66","0x3c",_
             "1","0x30","0x38","0x30","0x30","0x30","0x30","0x30","0x30","0x30","0x30",_
             "2","0x3c","0x66","0x60","0x60","0x30","0x18","0x0c","0x06","0x06","0x7e",_
             "3","0x3c","0x66","0x60","0x60","0x38","0x60","0x60","0x60","0x66","0x3c",_
             "4","0x30","0x30","0x38","0x38","0x34","0x34","0x32","0x7e","0x30","0x78",_
             "5","0x7e","0x06","0x06","0x06","0x3e","0x60","0x60","0x60","0x66","0x3c",_
             "6","0x38","0x0c","0x06","0x06","0x3e","0x66","0x66","0x66","0x66","0x3c",_
             "7","0x7e","0x66","0x60","0x60","0x30","0x30","0x18","0x18","0x0c","0x0c",_
             "8","0x3c","0x66","0x66","0x66","0x3c","0x66","0x66","0x66","0x66","0x3c",_
             "9","0x3c","0x66","0x66","0x66","0x66","0x7c","0x60","0x60","0x30","0x1c")

    dim iCharWidth,iCharHeight,theBit,theNum,iRow,k,theOffset
    dim imageStr
    imageStr = ""

    iCharWidth = 8
    iCharHeight= 10*1
    Response.ContentType ="image/x-xbitmap"
    Response.Expires =0
    Response.Write "#define counter_width "&iCharWidth*chklen&chr(13) & chr(10)
    Response.Write "#define counter_height "&iCharHeight&chr(13) & chr(10)
    Response.Write "static unsigned char counter_bits[]={"
    for iRow=0 to iCharHeight-1
       for i=1 to chklen
          theBit=mid(chkcode,i,1)
          k=0
          do while k<ubound(strDigits)
              if strDigits(k) = theBit then exit do
              k=k+iCharHeight+1
          loop
          if k>=ubound(strDigits) then k=0
          theOffset = k + 1
          imageStr = imageStr + (strDigits(theOffset+iRow))&","
       next
    next

    imageStr = left(imageStr,(len(imageStr)-1))
    Response.Write imageStr

    Response.Write "};"
    session("chkCode") = chkcode

    VerifyCode gif验证码生成技术

    <%
    Class Fly38_VerifyCode
            Public GlobalColorTable(), LocalColorTable()
            Public TransparentColorIndex, UseTransparency
            Public GIF89a
            Public Comment

            Private FGroundColorIndex, BGroundColorIndex
            Private Image
            Private GlobalColorTableSize, GlobalColorTableFlag, LocalColorTableSize, LocalColorTableFlag
            Private Width_, Height_
            Private LeftPosition, TopPosition
            Private Bits, ColorResolution, CodeSize
            Private PixelAspectRatio
            Private SortFlag, InterlaceFlag
            Private Seperator, GraphicControl, EndOfImage
            Private Reserved

            Private Font
            Private Letter(19)

            Private Sub Class_Initialize()
                      Image = ""
       
                      GIF89a = False
      
                      ReDim GlobalColorTable(256)
                      GlobalColorTableSize = 7
                      GlobalColorTableFlag = True
      
                      GlobalColorTable(2) = RGB(255, 0, 0)
                      GlobalColorTable(3) = RGB(0, 255, 0)
                      GlobalColorTable(4) = RGB(0, 0, 255)
                      GlobalColorTable(5) = RGB(255, 255, 0)
                      GlobalColorTable(6) = RGB(0, 255, 255)
                      GlobalColorTable(7) = RGB(255, 0, 255)
      
                      ReDim LocalColorTable(0)
                      LocalColorTableSize = 0
                      LocalColorTableFlag = False
      
                      ColorResolution = 7
                      Bits   = 7
                      CodeSize  = 7
      
                      BGroundColorIndex = 0
                      FGroundColorIndex = 1
                      TransparentColorIndex = 0
                      UseTransparency  = False
      
                      LeftPosition = 0
                      TopPosition  = 0
                      Width_   = 20
                      Height_   = 20
      
                      Clear
      
                      PixelAspectRatio = 0
                      SortFlag   = False
                      InterlaceFlag  = False
                      Seperator   = Asc(",")
                      GraphicControl  = Asc("!")
                      EndOfImage   = Asc(";")
      
                      Comment = ""
      
                      Reserved = 0
      
                      Set Font = Server.CreateObject("Scripting.Dictionary")

                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00001111100000"
                      Letter(2)  = "00011111110000"
                      Letter(3)  = "00111000111000"
                      Letter(4)  = "00110000011100"
                      Letter(5)  = "01110000001100"
                      Letter(6)  = "01100000001110"
                      Letter(7)  = "01100000001110"
                      Letter(8)  = "11100000001110"
                      Letter(9)  = "11000000001110"
                      Letter(10) = "11000000001110"
                      Letter(11) = "11100000001110"
                      Letter(12) = "11100000001100"
                      Letter(13) = "11100000001100"
                      Letter(14) = "01100000001100"
                      Letter(15) = "01110000011100"
                      Letter(15) = "00111000011000"
                      Letter(16) = "00011111110000"
                      Letter(17) = "00001111100000"
                      Letter(18) = "00000000000000"
                      Font.Add "0", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00000001110000"
                      Letter(2)  = "00000001110000"
                      Letter(3)  = "00000011100000"
                      Letter(4)  = "00000011000000"
                      Letter(5)  = "00000011000000"
                      Letter(6)  = "00000011000000"
                      Letter(7)  = "00000111000000"
                      Letter(8)  = "00000111000000"
                      Letter(9)  = "00000111000000"
                      Letter(10) = "00000110000000"
                      Letter(11) = "00000110000000"
                      Letter(12) = "00000110000000"
                      Letter(13) = "00000110000000"
                      Letter(14) = "00000110000000"
                      Letter(15) = "00000110000000"
                      Letter(15) = "00000110000000"
                      Letter(16) = "00000110000000"
                      Letter(17) = "00000010000000"
                      Letter(18) = "00000000000000"
                      Font.Add "1", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00001111110000"
                      Letter(2)  = "00011111111000"
                      Letter(3)  = "00111000011100"
                      Letter(4)  = "01110000011100"
                      Letter(5)  = "01110000011000"
                      Letter(6)  = "01100000011000"
                      Letter(7)  = "00000000111000"
                      Letter(8)  = "00000001110000"
                      Letter(9)  = "00000001110000"
                      Letter(10) = "00000011000000"
                      Letter(11) = "00000111000000"
                      Letter(12) = "00001110000000"
                      Letter(13) = "00011000000000"
                      Letter(14) = "00011000000000"
                      Letter(15) = "00110000011100"
                      Letter(16) = "01101111111100"
                      Letter(17) = "01111111111110"
                      Letter(18) = "01111100000000"
                      Letter(19) = "00000000000000"
                      Font.Add "2", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00001111111000"
                      Letter(2)  = "00111111111000"
                      Letter(3)  = "01110000111100"
                      Letter(4)  = "01100000011000"
                      Letter(5)  = "01000000111000"
                      Letter(6)  = "00000000111000"
                      Letter(7)  = "00000001110000"
                      Letter(8)  = "00000011000000"
                      Letter(9)  = "00000111110000"
                      Letter(10) = "00000100111000"
                      Letter(11) = "00000000011100"
                      Letter(12) = "00000000011100"
                      Letter(13) = "00000000011100"
                      Letter(14) = "00000000011100"
                      Letter(15) = "00000000011000"
                      Letter(16) = "11100000111000"
                      Letter(17) = "11111111110000"
                      Letter(18) = "01111111100000"
                      Letter(19) = "00000000000000"
                      Font.Add "3", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00000000111000"
                      Letter(2)  = "00000001111000"
                      Letter(3)  = "00000011100000"
                      Letter(4)  = "00000111011100"
                      Letter(5)  = "00001110011100"
                      Letter(6)  = "00001100011000"
                      Letter(7)  = "00011000111000"
                      Letter(8)  = "00111000110000"
                      Letter(9)  = "01110000110000"
                      Letter(10) = "01100000110000"
                      Letter(11) = "01100000110000"
                      Letter(12) = "11000111111110"
                      Letter(13) = "11111111111100"
                      Letter(14) = "11111111100000"
                      Letter(15) = "11100001100000"
                      Letter(16) = "00000001110000"
                      Letter(17) = "00000000110000"
                      Letter(18) = "00000000110000"
                      Letter(19) = "00000000100000"
                      Font.Add "4", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00001100000100"
                      Letter(2)  = "00011111111110"
                      Letter(3)  = "00011111111100"
                      Letter(4)  = "00011110000000"
                      Letter(5)  = "00011000000000"
                      Letter(6)  = "00111000000000"
                      Letter(7)  = "00111000000000"
                      Letter(8)  = "00111111110000"
                      Letter(9)  = "00111111111000"
                      Letter(10) = "00000000011000"
                      Letter(11) = "00000000011000"
                      Letter(12) = "00000000011000"
                      Letter(13) = "00000000011000"
                      Letter(14) = "00000000011000"
                      Letter(15) = "00000000011000"
                      Letter(16) = "00000001111000"
                      Letter(17) = "01111111110000"
                      Letter(18) = "00111111000000"
                      Letter(19) = "00000000100000"
                      Font.Add "5", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00000011110000"
                      Letter(2)  = "00000111100000"
                      Letter(3)  = "00001110000000"
                      Letter(4)  = "00011100000000"
                      Letter(5)  = "00111000000000"
                      Letter(6)  = "00110000000000"
                      Letter(7)  = "00110000000000"
                      Letter(8)  = "01111111110000"
                      Letter(9)  = "01111111111000"
                      Letter(10) = "01110000011100"
                      Letter(11) = "01100000001100"
                      Letter(12) = "01100000001100"
                      Letter(13) = "01100000001100"
                      Letter(14) = "01100000001100"
                      Letter(15) = "01110000011100"
                      Letter(16) = "00110000011100"
                      Letter(17) = "00111111111000"
                      Letter(18) = "00011111110000"
                      Letter(19) = "00000000000000"
                      Font.Add "6", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00100111111110"
                      Letter(2)  = "01111111111100"
                      Letter(3)  = "01111110011100"
                      Letter(4)  = "00000000011000"
                      Letter(5)  = "00000000111000"
                      Letter(6)  = "00000000110000"
                      Letter(7)  = "00000000110000"
                      Letter(8)  = "00000000110000"
                      Letter(9)  = "00000001110000"
                      Letter(10) = "00000001100000"
                      Letter(11) = "00000001100000"
                      Letter(12) = "00000001100000"
                      Letter(13) = "00000001100000"
                      Letter(14) = "00000011100000"
                      Letter(15) = "00000011100000"
                      Letter(16) = "00000011100000"
                      Letter(17) = "00000001000000"
                      Letter(18) = "00000001000000"
                      Letter(19) = "00000000000000"
                      Font.Add "7", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00001111110000"
                      Letter(2)  = "00011111111000"
                      Letter(3)  = "00111000011000"
                      Letter(4)  = "00110000011000"
                      Letter(5)  = "01110000011100"
                      Letter(6)  = "01110000011000"
                      Letter(7)  = "00110000011000"
                      Letter(8)  = "00111101111000"
                      Letter(9)  = "00011111111000"
                      Letter(10) = "00111000111100"
                      Letter(11) = "01110000001100"
                      Letter(12) = "01110000001100"
                      Letter(13) = "01100000001110"
                      Letter(14) = "01100000001100"
                      Letter(15) = "01100000001100"
                      Letter(16) = "01110000011100"
                      Letter(17) = "00111111111100"
                      Letter(18) = "00011111110000"
                      Letter(19) = "00000000000000"
                      Font.Add "8", Letter
      
                      Letter(0)  = "00000000000000"
                      Letter(1)  = "00011111110000"
                      Letter(2)  = "00111111111000"
                      Letter(3)  = "01110000111000"
                      Letter(4)  = "01110000011100"
                      Letter(5)  = "01100000001100"
                      Letter(6)  = "01100000001100"
                      Letter(7)  = "01100000001100"
                      Letter(8)  = "01100000001100"
                      Letter(9)  = "01110000011100"
                      Letter(10) = "00111111111100"
                      Letter(11) = "00011111111100"
                      Letter(12) = "00000000011000"
                      Letter(13) = "00000000011000"
                      Letter(14) = "00000000111000"
                      Letter(15) = "00000001110000"
                      Letter(16) = "00000011100000"
                      Letter(17) = "00000111000000"
                      Letter(18) = "00011110000000"
                      Letter(19) = "00000000000000"
                      Font.Add "9", Letter
            End Sub
    Private Sub Class_Terminate()
                      Font.RemoveAll
                      Set Font = Nothing
            End Sub

            Public Property Get Width()
                      Width = Width_
            End Property

            Public Property Get Height()
                      Height = Height_
            End Property

            Public Property Get Version()
                      Version = "NetRube VerifyCode Class 1.0 Build 20041225"
            End Property

            Public Property Let BGroundColor(ByVal Color)
                      GlobalColorTable(0) = MakeColor(Color)
                      BGroundColorIndex = 0
            End Property

            Public Property Let FGroundColor(ByVal Color)
                      GlobalColorTable(1) = MakeColor(Color)
                      FGroundColorIndex = 1
            End Property

            Public Property Get Pixel(ByVal PX, ByVal PY)
                      If (PX > 0 And PX <= Width_) And (PY > 0 And PY <= Height_) Then
                               Pixel = AscB(MidB(Image, (Width_ * (PY - 1)) + PX, 1))
                      Else
                               Pixel = 0
                      End If
            End Property

            Public Property Let Pixel(ByVal PX, ByVal PY, PValue)
                      Dim Offset
      
                      PX  = Int(PX)
                      PY  = Int(PY)
                      PValue = Int(PValue)
      
                      Offset = Width_ * (PY - 1)
      
                      If (PX > 0 And PX <= Width_) And (PY > 0 And PY <= Height_) Then
                               Image = LeftB(Image, Offset + (PX - 1)) & ChrB(PValue) & RightB(Image, LenB(Image) - (Offset + PX))
                      End If
            End Property

            Public Sub Clear()
                      Image = String(Width_ * (Height_ + 1) / 2, ChrB(BGroundColorIndex) & ChrB(BGroundColorIndex))
            End Sub

            Public Sub Resize(ByVal NewWidth, ByVal NewHeight, RPreserve)
                      Dim OldImage, OldWidth, OldHeight
                      Dim CopyWidth, CopyHeight
                      Dim X, Y
      
                      If RPreserve Then
                               OldImage = Image
                               OldWidth = Width_
                               OldHeight = Height_
                      End If
      
                      Width_ = NewWidth
                      Height_ = NewHeight
      
                      Clear
      
                      If RPreserve Then
                               If NewWidth > OldWidth Then CopyWidth = OldWidth Else CopyWidth = NewWidth
                               If NewHeight > OldHeight Then CopyHeight = OldHeight Else CopyHeight = NewHeight
       
                               Width_ = NewWidth
                               Height_ = NewHeight
       
                               For Y = 1 To CopyHeight
                                        For X = 1 To CopyWidth
                                                 Pixel(X, Y) = AscB(MidB(OldImage, (OldWidth * (Y - 1)) + X, 1))
                                        Next
                               Next
                      End If
            End Sub

            Private Function ShiftLeft(SLValue, SLBits)
                      ShiftLeft = SLValue * (2 ^ SLBits)
            End Function

            Private Function ShiftRight(SRValue, SRBits)
                      ShiftRight = Int(SRValue / (2 ^ SRBits))
            End Function

            Private Function Low(LValue)
                      Low = LValue And &HFF
            End Function

            Private Function High(HValue)
                      High = ShiftRight(HValue, 8)
            End Function

            Private Function Blue(BValue)
                      Blue = Low(ShiftRight(BValue, 16))
            End Function

            Private Function Green(GValue)
                      Green = Low(ShiftRight(GValue, 8))
            End Function

            Private Function Red(RValue)
                      Red = Low(RValue)
            End Function

            Private Function MakeColor(MCValue)
                      MakeColor = CLng("&H" & Right(MCValue, 2) & Mid(MCValue, 4, 2) & Mid(MCValue, 2, 2))
            End Function

            Private Function GetWord(GWValue)
                      GetWord = ShiftLeft(AscB(RightB(GWValue, 1)), 8) Or AscB(LeftB(GWValue, 1))
            End Function

            Private Function MakeWord(MWValue)
                      MakeWord = ChrB(Low(MWValue)) & ChrB(High(MWValue))
            End Function

            Private Function MakeByte(MBValue)
                      MakeByte = ChrB(Low(MBValue))
            End Function

            Private Function UncompressedData()
                      Dim ClearCode, ChunkMax, EndOfStream
                      Dim UDData, UD, U
      
                      UncompressedData = ""
      
                      ClearCode   = 2 ^ Bits
                      ChunkMax   = 2 ^ Bits - 2
                      EndOfStream   = ClearCode + 1
      
                      UDData    = ""
      
                      For U = 1 To LenB(Image) Step ChunkMax
                               UDData = UDData & MidB(Image, U, ChunkMax) & ChrB(ClearCode)
                      Next
      
                      For U = 1 To LenB(UDData) Step &HFF
                               UD     = MidB(UDData, U, &HFF)
                               UncompressedData = UncompressedData & MakeByte(LenB(UD)) & UD
                      Next
      
                      UncompressedData = UncompressedData & MakeByte(&H00)
                      UncompressedData = UncompressedData & MakeByte(EndOfStream)
            End Function

            Private Function GetGColorTable()
                      Dim GGCT
      
                      GetGColorTable = ""
      
                      For GGCT = 0 To UBound(GlobalColorTable) - 1
                               GetGColorTable = GetGColorTable & MakeByte(Red(GlobalColorTable(GGCT)))
                               GetGColorTable = GetGColorTable & MakeByte(Green(GlobalColorTable(GGCT)))
                               GetGColorTable = GetGColorTable & MakeByte(Blue(GlobalColorTable(GGCT)))
                      Next
            End Function

            Private Function GetLColorTable()
                      Dim GLCT

                      GetLColorTable = ""
      
                      For GLCT = 0 To UBound(LocalColorTable) - 1
                               GetLColorTable = GetLColorTable & MakeByte(Red(LocalColorTable(GLCT)))
                               GetLColorTable = GetLColorTable & MakeByte(Green(LocalColorTable(GLCT)))
                               GetLColorTable = GetLColorTable & MakeByte(Blue(LocalColorTable(GLCT)))
                      Next
            End Function

            Private Function GlobalDescriptor()
                      GlobalDescriptor = 0
      
                      If GlobalColorTableFlag Then GlobalDescriptor = GlobalDescriptor Or ShiftLeft(1, 7)
                      GlobalDescriptor = GlobalDescriptor Or ShiftLeft(ColorResolution, 7)
                      If SortFlag Then GlobalDescriptor = GlobalDescriptor Or ShiftLeft(1, 3)
                      GlobalDescriptor = GlobalDescriptor Or GlobalColorTableSize
            End Function

            Private Function LocalDescriptor()
                      LocalDescriptor = 0
      
                      If LocalColorTableFlag Then LocalDescriptor = LocalDescriptor Or ShiftLeft(1, 7)
                      If InterlaceFlag Then LocalDescriptor = LocalDescriptor Or ShiftLeft(1, 6)
                      If SortFlag Then LocalDescriptor = LocallDescriptor Or ShiftLeft(1, 5)
                      LocalDescriptor = LocalDescriptor Or ShiftLeft(Reserved, 3)
                      LocalDescriptor = LocalDescriptor Or LocalColorTableSize
            End Function

            Private Property Get ImageData()
                      Dim Text, I
      
                      ImageData = GIFHeader
                      ImageData = ImageData & MakeWord(Width_)
                      ImageData = ImageData & MakeWord(Height_)
                      ImageData = ImageData & MakeByte(GlobalDescriptor)
                      ImageData = ImageData & MakeByte(BGroundColorIndex)
                      ImageData = ImageData & MakeByte(PixelAspectRatio)
                      ImageData = ImageData & GetGColorTable
      
                      If GIF89a Then
                               If UseTransparency Then
                                        ImageData = ImageData & MakeByte(GraphicControl)
                                        ImageData = ImageData & MakeByte(&HF9)
                                        ImageData = ImageData & MakeByte(&H04)
                                        ImageData = ImageData & MakeByte(&H01)
                                        ImageData = ImageData & MakeByte(&H00)
                                        ImageData = ImageData & MakeByte(TransparentColorIndex)
                                        ImageData = ImageData & MakeByte(&H00)
                               End If
       
                               If Comment <> "" Then
                                        ImageData = ImageData & MakeByte(GraphicControl)
                                        ImageData = ImageData & MakeByte(&HFE)
                                        Text = Left(Comment, &HFF)
                                        ImageData = ImageData & MakeByte(Len(Text))
                                        For I = 1 To Len(Text)
                                                 ImageData = ImageData & MakeByte(Asc(Mid(Text, I, 1)))
                                        Next
                                        ImageData = ImageData & MakeByte(&H00)
                               End If
                      End If
      
                      ImageData = ImageData & MakeByte(Seperator)
                      ImageData = ImageData & MakeWord(LeftPosition)
                      ImageData = ImageData & MakeWord(TopPosition)
                      ImageData = ImageData & MakeWord(Width_)
                      ImageData = ImageData & MakeWord(Height_)
                      ImageData = ImageData & MakeByte(LocalDescriptor)
                      ImageData = ImageData & MakeByte(CodeSize)
                      ImageData = ImageData & UncompressedData
                      ImageData = ImageData & MakeByte(&H00)
                      ImageData = ImageData & MakeByte(EndOfImage)
            End Property

            Public Sub ImgWrite()
                      Response.ContentType = "image/gif"
                      Response.BinaryWrite ImageData
            End Sub

            Private Function GIFHeader()
                      GIFHeader = ""
                      GIFHeader = GIFHeader & ChrB(Asc("G"))
                      GIFHeader = GIFHeader & ChrB(Asc("I"))
                      GIFHeader = GIFHeader & ChrB(Asc("F"))
                      GIFHeader = GIFHeader & ChrB(Asc("8"))
                      If GIF89a Then
                            GIFHeader = GIFHeader & ChrB(Asc("9"))
                    Else
                            GIFHeader = GIFHeader & ChrB(Asc("7"))
                    End If
                      GIFHeader = GIFHeader & ChrB(Asc("a"))
            End Function

            Public Sub VerifyCode(Text, VCColor)
                      Dim I1, I2, I3
                      Dim VCX, VCY, VCIndex
      
                      Resize 14 * Len(Text) + 10, UBound(Letter) + 10, False
      
                      Randomize
                      VCX = Int(Rnd * 10)
                      VCY = Int(Rnd * (Height_ - UBound(Letter)))
      
                      For I1 = 0 To UBound(Letter) - 1
                               For I2 = 1 To Len(Text)
                                        For I3 = 1 To Len(Font(Mid(Text, I2, 1))(I1))
                                                 VCIndex = CLng(Mid(Font(Mid(Text, I2, 1))(I1), I3, 1))
         
                                                 If VCIndex <> 0 Then
                                                          If VCColor Then
                                                                   Randomize
                                                                   VCIndex = Int(Rnd * 7)
                                                          End If
          
                                                          Pixel(VCX + ((I2 - 1) * Len(Letter(0))) + I3, VCY + I1) = VCIndex
                                                 End If
                                        Next
                               Next
                      Next
            End Sub

            Public Sub Noises(Amount, NColor)
                      Dim NI, NIndex
       
                      For NI = 1 To Amount
                               NIndex = 1
       
                               If NColor Then
                                        Randomize
                                        NIndex = Int(Rnd * 7)
                               End If
       
                               Pixel(Int(Rnd * Width_), Int(Rnd * Height_)) = NIndex
                      Next
            End Sub

    End Class
    %>

    用法

    <%
    Dim GBL_CookieName
    GBL_CookieName = "gbl_codename" '指定一个想对本站的cookie


    Call ShowCode(GBL_CookieName & Request("CodeName"))   'request("CodeName")指定一个相对验证码的cookie
    '验证码
    Sub ShowCode(ShowCodeName)
            Set img = New fly38_VerifyCode
            Randomize
            Dim code
            code = Int(Rnd * 9000 + 1000)
            Session(ShowCodeName) = code
            img.BGroundColor = "#FFFFFF" ' 图片背景颜色
            img.FGroundColor = "#FF0000" ' 前景(文本)颜色
            Call img.VerifyCode(code, False)  ' 处理验证码,第二个参数为是否显示彩色文本
            Call img.Noises(100, True)   ' 添加杂点,第一个参数为杂点数量,第二个参数为是否显示彩色杂点
            img.ImgWrite ' 输出图片
    End Sub
    %>

    无组件生成GIF验证码

     

    <%
    Option Explicit ' 显示声明

    Class Com_GifCode_Class
    '''''''''''''''''''''''''''''''''''''''''''''
    ' Author: Layen support@ssaw.net 84815733(QQ)
    ' Thanks: Laomi, Laomiao, NetRube
    ' 2006-01-02
    '''''''''''''''''''''''''''''''''''''''''''''
    Public Noisy, Count, Width, Height, Angle, Offset, Border

    Private Graph(), Margin(3)

    Private Sub Class_Initialize()
    Randomize
    Noisy = 16 ' 干扰点出现的概率
    Count = 4 ' 字符数量
    Width = 80 ' 图片宽度
    Height = 20 ' 图片高度
    Angle = 2 ' 角度随机变化量
    Offset = 20 ' 偏移随机变化量
    Border = 1 ' 边框大小
    End Sub

    Public Function Create()

    Const cCharSet = "123456789"

    Dim i, x, y

    Dim vValidCode : vValidCode = ""
    Dim vIndex

    ReDim Graph(Width-1, Height-1)

    For i = 0 To Count - 1
    vIndex = Int(Rnd * Len(cCharSet))
    vValidCode = vValidCode + Mid(cCharSet, vIndex+1 , 1)
    SetDraw vIndex, i
    Next

    Create = vValidCode

    End Function

    Sub SetDot(pX, pY)
    If pX * (Width-pX-1) >= 0 And pY * (Height-pY-1) >= 0 Then
    Graph(pX, pY) = 1
    End If
    End Sub

    Public Sub SetDraw(pIndex, pNumber)

    ' 字符数据
    Dim DotData(8)
    DotData(0) = Array(30, 15, 50, 1, 50, 100)
    DotData(1) = Array(1 ,34 ,30 ,1 ,71, 1, 100, 34, 1, 100, 93, 100, 100, 86)
    DotData(2) = Array(1, 1, 100, 1, 42, 42, 100, 70, 50, 100, 1, 70)
    DotData(3) = Array(100, 73, 6, 73, 75, 6, 75, 100)
    DotData(4) = Array(100, 1, 1, 1, 1, 50, 50, 35, 100, 55, 100, 80, 50, 100, 1, 95)
    DotData(5) = Array(100, 20, 70, 1, 20, 1, 1, 30, 1, 80, 30, 100, 70, 100, 100, 80, 100, 60, 70, 50, 30, 50, 1, 60)
    DotData(6) = Array(6, 26, 6, 6, 100, 6, 53, 100)
    DotData(7) = Array(100, 30, 100, 20, 70, 1, 30, 1, 1, 20, 1, 30, 100, 70, 100, 80, 70, 100, 30, 100, 1, 80, 1, 70, 100, 30)
    DotData(8) = Array(1, 80, 30, 100, 80, 100, 100, 70, 100, 20, 70, 1, 30, 1, 1, 20, 1, 40, 30, 50, 70, 50, 100, 40)

    Dim vExtent : vExtent = Width / Count
    Margin(0) = Border + vExtent * (Rnd * Offset) / 100 + Margin(1)
    Margin(1) = vExtent * (pNumber + 1) - Border - vExtent * (Rnd * Offset) / 100
    Margin(2) = Border + Height * (Rnd * Offset) / 100
    Margin(3) = Height - Border - Height * (Rnd * Offset) / 100

    Dim vStartX, vEndX, vStartY, vEndY
    Dim vWidth, vHeight, vDX, vDY, vDeltaT

    Dim vAngle, vLength

    vWidth = Int(Margin(1) - Margin(0))

    vHeight = Int(Margin(3) - Margin(2))

    ' 起始坐标
    vStartX = Int((DotData(pIndex)(0)-1) * vWidth / 100)

    vStartY = Int((DotData(pIndex)(1)-1) * vHeight / 100)

    Dim i, j
    For i = 1 To UBound(DotData(pIndex), 1)/2

    If DotData(pIndex)(2*i-2) <> 0 And DotData(pIndex)(2*i) <> 0 Then

    ' 终点坐标
    vEndX = (DotData(pIndex)(2*i)-1) * vWidth / 100

    vEndY = (DotData(pIndex)(2*i+1)-1) * vHeight / 100

    ' 横向差距
    vDX = vEndX - vStartX
    ' 纵向差距
    vDY = vEndY - vStartY

    ' 倾斜角度
    If vDX = 0 Then
    vAngle = Sgn(vDY) * 3.14/2
    Else
    vAngle = Atn(vDY / vDX)
    End If

    ' 两坐标距离
    If Sin(vAngle) = 0 Then
    vLength = vDX
    Else
    vLength = vDY / Sin(vAngle)
    End If

    ' 随机转动角度
    vAngle = vAngle + (Rnd - 0.5) * 2 * Angle * 3.14 * 2 / 100

    vDX = Int(Cos(vAngle) * vLength)

    vDY = Int(Sin(vAngle) * vLength)

    If Abs(vDX) > Abs(vDY) Then vDeltaT = Abs(vDX) Else vDeltaT = Abs(vDY)

    For j = 1 To vDeltaT
    SetDot Margin(0) + vStartX + j * vDX / vDeltaT, Margin(2) + vStartY + j * vDY / vDeltaT
    Next

    vStartX = vStartX + vDX

    vStartY = vStartY + vDY
    End If
    Next
    End Sub

    Public Sub Output()

    Response.Expires = -9999
    Response.AddHeader "pragma", "no-cache"
    Response.AddHeader "cache-ctrol", "no-cache"
    Response.ContentType = "image/gif"

    ' 文件类型
    Response.BinaryWrite ChrB(Asc("G")) & ChrB(Asc("I")) & ChrB(Asc("F"))
    ' 版本信息
    Response.BinaryWrite ChrB(Asc("8")) & ChrB(Asc("9")) & ChrB(Asc("a"))
    ' 逻辑屏幕宽度
    Response.BinaryWrite ChrB(Width Mod 256) & ChrB((Width \ 256) Mod 256)
    ' 逻辑屏幕高度
    Response.BinaryWrite ChrB(Height Mod 256) & ChrB((Height \ 256) Mod 256)

    Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(0)
    ' 全局颜色列表
    Response.BinaryWrite ChrB(255) & ChrB(255) & ChrB(255)

    Response.BinaryWrite ChrB(0) & ChrB(85) & ChrB(255)

    ' 图象标识符
    Response.BinaryWrite ChrB(Asc(","))

    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
    ' 图象宽度
    Response.BinaryWrite ChrB(Width Mod 256) & ChrB((Width \ 256) Mod 256)
    ' 图象高度
    Response.BinaryWrite ChrB(Height Mod 256) & ChrB((Height \ 256) Mod 256)

    Response.BinaryWrite ChrB(0) & ChrB(7) & ChrB(255)

    Dim x, y, i : i = 0
    For y = 0 To Height - 1
    For x = 0 To Width - 1
    If Rnd < Noisy / 100 Then
    Response.BinaryWrite ChrB(1-Graph(x, y))
    Else
    If x * (x-Width) = 0 Or y * (y-Height) = 0 Then
    Response.BinaryWrite ChrB(Graph(x, y))
    Else
    If Graph(x-1, y) = 1 Or Graph(x, y) Or Graph(x, y-1) = 1 Then
    Response.BinaryWrite ChrB(1)
    Else
    Response.BinaryWrite ChrB(0)
    End If
    End If
    End If
    If (y * Width + x + 1) Mod 126 = 0 Then
    Response.BinaryWrite ChrB(128)
    i = i + 1
    End If
    If (y * Width + x + i + 1) Mod 255 = 0 Then
    If (Width*Height - y * Width - x - 1) > 255 Then
    Response.BinaryWrite ChrB(255)
    Else
    Response.BinaryWrite ChrB(Width * Height Mod 255)
    End If
    End If
    Next
    Next
    Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(129) & ChrB(0) & ChrB(59)
    End Sub
    End Class

    Dim mCode
    Set mCode = New Com_GifCode_Class
    Session("GetCode") = mCode.Create()
    mCode.Output()
    Set mCode = Nothing
    %>

    正在使用的ASP验证码

    vColorData设定颜色
     
    <%
    Call Com_CreatValidCode()
    Sub Com_CreatValidCode() ' 禁止缓存
    Response.Expires = -9999
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "cache-ctrol","no-cache"
    Response.ContentType = "Image/BMP"
    Randomize
    Dim i, ii, iii
    Const cOdds = 10
    Const cAmount = 36 ' 文字数量
    Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ' 颜色的数据(字符,背景)
    Dim vColorData(2)
    a=Rnd * 200
    b=Rnd * 200
    c=Rnd * 200
    vColorData(0) = ChrB(a) & ChrB(b) & ChrB(c) '
    'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0) ' 蓝0,绿0,红0(黑色)0的位置颜色
    vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) ' 蓝250,绿236,红211(白色) 1的位置颜色 ' 随机产生字符
    Dim vCode(4), vCodes
    For i = 0 To 3
    vCode(i) = Int(Rnd * cAmount)
    vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1)
    Next
    session("code") = vCodes '记录入Session ' 字符的数据
    Dim vNumberData(36)
    vNumberData(0) = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111"
    vNumberData(1) = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111"
    vNumberData(2) = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011"
    vNumberData(3) = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111"
    vNumberData(4) = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011"
    vNumberData(5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111"
    vNumberData(6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111"
    vNumberData(7) = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111"
    vNumberData(8) = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111"
    vNumberData(9) = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111"
    vNumberData(10) = "1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011"
    vNumberData(11) = "1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111"
    vNumberData(12) = "1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111"
    vNumberData(13) = "1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111"
    vNumberData(14) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111"
    vNumberData(15) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111"
    vNumberData(16) = "1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111"
    vNumberData(17) = "1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011"
    vNumberData(18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111"
    vNumberData(19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111"
    vNumberData(20) = "1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011"
    vNumberData(21) = "1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011"
    vNumberData(22) = "1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011"
    vNumberData(23) = "1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111"
    vNumberData(24) = "1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111"
    vNumberData(25) = "1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111"
    vNumberData(26) = "1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011"
    vNumberData(27) = "1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011"
    vNumberData(28) = "1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111"
    vNumberData(29) = "1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111"
    vNumberData(30) = "1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111"
    vNumberData(31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111"
    vNumberData(32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111"
    vNumberData(33) = "1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011"
    vNumberData(34) = "1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111"
    vNumberData(35) = "1100000011110111011111111101111111101111111110111111110111111111011111111011111111101110111100000011"' 输出图像文件头
    Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
      ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_
      ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_
      ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)
    ' 输出图像信息头
    Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) &_
      ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_
      ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
      ChrB(0) & ChrB(0)
    For i = 9 To 0 Step -1  ' 历经所有行
      For ii = 0 To 3  ' 历经所有字
       For iii = 1 To 10 ' 历经所有像素
        ' 逐行、逐字、逐像素地输出图像数据
        If Rnd * 99 + 1 < cOdds Then ' 随机生成杂点
         Response.BinaryWrite vColorData(0)
        Else
         Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1))
        End If
       Next
      Next
    Next
    End Sub
    %>

    ASP 生成 彩色 可变长 数字 验证码程序

    本验证码生成程序特点如下:

    一、彩色;

    二、BMP 图像色深为 16 位,生成的图片体积更小;(4位长的验证码只有几百字节)

    三、长度可自定义;(1位至25位可固定设置,也可以自己改成动态)

    四、背景杂色深度可自定义;

    具体请看代码

    注:代码中并没有针对动网的 设置验证码 Session 的地方。想用的朋友自己根据需要改一下,位置就在代码中出现  Session("Num") 的那一行,改成自己需要的名称就可以了。

    下面是代码部分:

    Option Explicit
    Response.Expires = 0
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "cache-ctrol","no-cache"
    Response.ContentType = "Image/BMP"
    Randomize Timer

    Dim Text_Data(9),Text_Len,Int_Temp(),I,j,k,Int_Temp2

    ''***** 参数配置区 *****

    Text_Len = 4 ''验证码长度(支持1-25位)

    ''**********************

    ReDim Int_Temp( Text_Len - 1 )

    Text_Data(0)  = "00000000000001111000001100110000110111000011011100001100110000111011000011101100001100110000011110000000000000"
    Text_Data(1)  = "00000000000000011000000011100000111110000000011000000001100000000110000000011000000001100000000110000000000000"
    Text_Data(2)  = "00000000000001111000001100110000110011000000001100000001100000001100000001100000001100000000111111000000000000"
    Text_Data(3)  = "00000000000001111000001100110000110011000000001100000011100000000011000011001100001100110000011110000000000000"
    Text_Data(4)  = "00000000000001100000000110000000011011000001101100000110110000110011000011111110000000110000000011000000000000"
    Text_Data(5)  = "00000000000011111100001100000000110000000011000000001111100000000011000000001100000001100000111100000000000000"
    Text_Data(6)  = "00000000000000111000000011000000011000000011111000001100110000110011000011001100001100110000011110000000000000"
    Text_Data(7)  = "00000000000011111100000000110000000110000000011000000011000000001100000001100000000110000000011000000000000000"
    Text_Data(8)  = "00000000000001111000001100110000110011000011101100000111100000110111000011001100001100110000011110000000000000"
    Text_Data(9)  = "00000000000001111000001100110000110011000011001100001100110000011111000000011000000011000000011100000000000000"

    ''下面随机生成各位验证码
    Session("Num") = ""
    For I = 0 To Text_Len - 1
       Int_Temp(I) = Int(Rnd * 10)
       Session("Num") = Session("Num") + Mid("0123456789",Int_Temp(I)+1,1)
    Next

    ''下面输出文件头部分
    Int_Temp2 = (Text_Len - 1) \ 4 * 220 + ((Text_Len - 1) / 4 - (Text_Len - 1) \ 4 * 4) * 44
    Response.BinaryWrite ChrB(&H42) & ChrB(&H4D)
    Response.BinaryWrite ChrB(((Int_Temp2 + 206) / 256 - (Int_Temp2 + 206) \ 256) * 256) & ChrB((Int_Temp2 + 206) \ 256)   ''特殊位
    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H76) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H28) & ChrB(0) & ChrB(0) & ChrB(0)
    Response.BinaryWrite ChrB(Text_Len * 10)   ''特殊位
    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HB) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H1) & ChrB(0) & ChrB(&H4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
    Response.BinaryWrite ChrB(((Int_Temp2 + 88) / 256 - (Int_Temp2 + 88) \ 256) * 256) & ChrB((Int_Temp2 + 88) \ 256)   ''特殊位

    Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0)
    Response.BinaryWrite ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0)

    ''下面输出图片数据
    For i = 10 to 0 Step -1
       For j = 0 to Text_Len - 1
          For k = 1 to 9 Step 2
             If Mid(Text_Data(Int_Temp(j)) ,  i * 10 + k , 1) = "0" Then Int_Temp2 = Get_BackColor() * 16 Else Int_Temp2 = Get_ForeColor() * 16
             If Mid(Text_Data(Int_Temp(j)) ,  i * 10 + k + 1 , 1) = "0" Then Int_Temp2 = Int_Temp2 + Get_BackColor() Else Int_Temp2 = Int_Temp2 + Get_ForeColor()
             Response.BinaryWrite ChrB(Int_Temp2)
          Next
       Next
       Int_Temp2 = (Text_Len / 4 - Text_Len \ 4) * 4
       Select Case Int_Temp2
       Case 1
          Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0)
       Case 2
          Response.BinaryWrite ChrB(0) & ChrB(0)
       Case 3
          Response.BinaryWrite ChrB(0)
       End Select
    Next

    Function Get_BackColor()
    ''得到一个背景色
    If Int(Rnd * 30) = 0 Then ''注:此处的 Rnd * 30 是决定背景杂色的多少,值越大,则杂色越少,图片越容易看清楚
       Get_BackColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
    Else
       Get_BackColor = CInt(Mid("081515151515",Int(Rnd * 6) * 2 + 1,2))
    End If
    End Function

    Function Get_ForeColor()
    ''得到一个前景色
    Get_ForeColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
    End Function

    图片数据写入SQL

    这个不怎么了解,只能照抄了,很久没做这方面的东西都忘了。不知道能不能直接EXECUTE,有时间再看看。
     

    '取得客户端送出的数据字节大小
    frmsize=Request.TotalBytes
     
    '以二进制方式读取数据
    frmData=Request.BinaryRead(frmsize)
     
    '去掉实际数据前、后的边界字符串行
    bnCrLf=ChrB(13)&ChrB(10)
    divider=leftB(frmdata,CLng(InstrB(frmdata,bnCrLf))-1)
    dataStart=InstrB(frmData,bnCrLf&bncrlf)+4
    dataEnd=InstrB(datastart+1,frmData,divider)-dataStart
     
    '读出图象数据
    myData=Midb(frmdata,dataStart,dataEnd)
     
    '将图象数据存入数据库
    strSQL="SELECT * FROM tblImages"
    set rs=Server.CreateObject("ADODB.Recordset")
    rs.open strSQL,conn,1,3
    rs.addnew
    rs("picData").AppendChunk myData
    rs.Update
    counts=rs.recordCount+1
    rs.close
    conn.close
     

    strSQL="SELECT picData FROM tblImages WHERE id=" & sID
    Set rs=Server.CreateObject("ADODB.Recordset")
    rs.Open strSQL,conn,1,1
    Response.ContentType="image/*"
    dataSize=rs(0).actualSize
    Response.BinaryWrite rs(0).getChunk(dataSize)

    rs.Close
    conn.Close

    二进制编码转换函数

    据说第一个比第二个快30倍,我看应该没有,不过第二个实在很烂。
     
    第一个:
    Function bytes2BSTR(binstr)
    Dim BytesStream,StringReturn
    Set BytesStream = CreateObject("ADODB.Stream")
    With BytesStream
     .Type = 2
     .Open
    .WriteText binstr
    .Position = 0
    .Charset = "GB2312"
    .Position = 2
    StringReturn = .ReadText
    .close
    End With
    Set BytesStream = Nothing
    bytes2BSTR = StringReturn
    End Function
     
     
    第二个:
    Function bytes2BSTR(vIn)
    dim strReturn
    dim i1,ThisCharCode,NextCharCode
    strReturn = ""
    For i1 = 1 To LenB(vIn)
    ThisCharCode = AscB(MidB(vIn,i1,1))
    If ThisCharCode < &H80 Then
    strReturn = strReturn & Chr(ThisCharCode)
    Else
    NextCharCode = AscB(MidB(vIn,i1+1,1))
    strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
    i1 = i1 + 1
    End If
    Next
    bytes2BSTR = strReturn
    End Function

    URL解码函数

    server.URLEncode的逆操作函数,好象只能转英文和数字。
     
     
    Function URLDecode(enStr) 
      dim deStr
      dim c,i,v
      deStr=""
      for i=1 to len(enStr)
          c=Mid(enStr,i,1)
          if c="%" then
              v=eval("&h"+Mid(enStr,i+1,2))
              if v<128 then
                  deStr=deStr&chr(v)
                  i=i+2
              else
                  if isvalidhex(mid(enstr,i,3)) then
                      if isvalidhex(mid(enstr,i+3,3)) then
                          v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
                          deStr=deStr&chr(v)
                          i=i+5
                      else
                          v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
                          deStr=deStr&chr(v)
                          i=i+3 
                      end if 
                  else 
                      destr=destr&c
                  end if
              end if
          else
              if c="+" then
                  deStr=deStr&" "
              else
                  deStr=deStr&c
              end if
          end if
      next
      URLDecode=deStr
    end function
     
    function isvalidhex(str)
      isvalidhex=true
      str=ucase(str)
      if len(str)<>3 then isvalidhex=false:exit function
      if left(str,1)<>"%" then isvalidhex=false:exit function
      c=mid(str,2,1)
      if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
      c=mid(str,3,1)
      if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
    end function

    判断包含双字节字符的字符串长度函数

    这个好用,比LEN好多了
     
    '判断包含双字节字符的字符串长度
    Function getStrLen(str)
    dim x,y,i
    x = len(str)
    y = 0
    for i = 1 to x
    if asc(mid(str,i,1))<0 or asc(mid(str,i,1))>255 then
    y = y + 2 '双字节
    else
    y = y + 1'ascii码字符
    end if
    next
    getStrLen = y
    End Function
    '从指定(包含双字节字符的)字符串中第一个字符起的指定长度的字符串
    '指定的长度为单字节长度,即字节数
    Function leftString(str,length)
    dim x,y,i,s
    s=str
    x = len(str)
    y = 0
    if x >= 1 then
    for i = 1 to x
    if asc(mid(str,i,1)) < 0 or asc(mid(str,i,1)) >255 then
    y = y + 2
    else
    y = y + 1
    end if
    if y >= length then
    s = left(str,i) '字符串字节数
    exit for
    end if
    next
    end if
    leftString = s
    End Function

    汉字转拼音首字母函数

    先声明这个只对GB2312编码有用,因为他是根据ASCII编码来判断的,害我在UTF-8下面试了很久都不行!!UTF-8的暂时没有,勉强找到个是根据自定义表来判断的,很多都查不到,感觉没什么用,CSDN上问了都没人会……
     
    function getpychar(char)
    tmp=65536+asc(char)
    if(tmp>=45217 and tmp<=45252) then
    getpychar= "a"
    elseif(tmp>=45253 and tmp<=45760) then
    getpychar= "b"
    elseif(tmp>=45761 and tmp<=46317) then
    getpychar= "c"
    elseif(tmp>=46318 and tmp<=46825) then
    getpychar= "d"
    elseif(tmp>=46826 and tmp<=47009) then
    getpychar= "e"
    elseif(tmp>=47010 and tmp<=47296) then
    getpychar= "f"
    elseif(tmp>=47297 and tmp<=47613) then
    getpychar= "g"
    elseif(tmp>=47614 and tmp<=48118) then
    getpychar= "h"
    elseif(tmp>=48119 and tmp<=49061) then
    getpychar= "j"
    elseif(tmp>=49062 and tmp<=49323) then
    getpychar= "k"
    elseif(tmp>=49324 and tmp<=49895) then
    getpychar= "l"
    elseif(tmp>=49896 and tmp<=50370) then
    getpychar= "m"
    elseif(tmp>=50371 and tmp<=50613) then
    getpychar= "n"
    elseif(tmp>=50614 and tmp<=50621) then
    getpychar= "o"
    elseif(tmp>=50622 and tmp<=50905) then
    getpychar= "p"
    elseif(tmp>=50906 and tmp<=51386) then
    getpychar= "q"
    elseif(tmp>=51387 and tmp<=51445) then
    getpychar= "r"
    elseif(tmp>=51446 and tmp<=52217) then
    getpychar= "s"
    elseif(tmp>=52218 and tmp<=52697) then
    getpychar= "t"
    elseif(tmp>=52698 and tmp<=52979) then
    getpychar= "w"
    elseif(tmp>=52980 and tmp<=53640) then
    getpychar= "x"
    elseif(tmp>=53689 and tmp<=54480) then
    getpychar= "y"
    elseif(tmp>=54481 and tmp<=62289) then
    getpychar= "z"
    else
    getpychar=char
    end if
    end function
     
    function getpy(str)
    for i=1 to len(str)
    getpy=getpy&getpychar(mid(str,i,1))
    next
    msgbox getpy
    end function

    开始好好做BLOG了

    去年开了这个BLOG几乎没用过,哈哈是我太懒了。

     

    最近感觉需要的资料经常找不到,或者排版不好浪费时间所以决定找个BLOG放资料,国内的我可不敢

    用,好用的只有GOOGLE和MSN了。试了下GG的,很多方面都不错,强过MSN,但没有分类真的太不方

    便了,也许是由于GG做BLOG时间不长还不完善吧,于是就决定用这个啦^_^

     

    希望MSN的服务器不要老出问题(也许是国内ISP搞的鬼),我以后资料都放这啦!

    RealPlayer ActiveX

    clsid:CFCDAA03-8BE4-1lcf-B84B0020AFBBCCFA
    名称:rmocx.RealPlayer G2 Control.1
    注意版本是RealPlayer10
     

    参数:autostart 属性:True或是False 作用:指定是否自动播放指定的源文件
    参数:backgroundcolor 属性:任何用符号“#”开头的16进制数值或是任何预定义的颜色作用:指定图像窗口的背景颜色
    参数:center 属性:True或是False 作用:指定片断使用初始编码大小播放,并且在图像窗口的中央。
    参数:console 属性:任何字符串作用:可以将各种不同的RealPlayer控制聚集在网页上,这样它们可以交互使用或是保持独立,而且互相不影响
    参数:controls 属性:ImageWindow,All,ControlPanel,PlavButton,PlayOnlyButton, PauseButton,StopButton,FFCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider,PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar,StatusField,PositionField 作用:可以让你指定那些控制是可见的。
    参数:height 属性:任何整数值作用:指定RealPlayer元素的高度,单位:像素
    参数:id 属性:任何字符串作用:为标签中的RealPlayer元素指定名字。
    参数:imagestatus 属性:True或是False 作用:指定是否在图像窗口中显示状态信息,默认值是true
    参数:loop 属性:True或是False 作用:可以让你指定片断是否无限循环
    参数:maintainaspect 属性:True或是False 作用:默认RealPlayer拉伸所有的片断来充满整个图像窗口。
    参数:name 属性:任何字符串作用:为标签中的RealPlayer元素指定名字(在标签中使用id)
    参数:nojava 属性:True或是False 作用:避免启动Java虚拟机
    参数:nolabels 属性:True或是False 作用:可以禁止显示标题或是版权信息(realplayer5.0以上时,它是垃圾...)
    参数:nologo 属性:True或是False 作用:避免RealPlayer启动时在图像窗口中显示
    参数:numloop 属性:任何整数值作用:让你能够指定文件片循环的次数,不需要参数loop
    参数:prefetch 属性:True或是False 作用:指定在播放前,RealPlayer是否可以获得流描述信息,默认值是False
    参数:region 属性:任何字符串作用:同SMIL一起使用。允许你指定使用HTML代替SMIL
    参数:scriptcallbacks 属性:用逗号分割的列表作用:指定浏览器的回调监控(好高级的东东!)
    参数:shuffle 属性:True或是False 作用:同多文件片的ram文件或是SMIL文件一起使用。可以让RealPlayer随机播放列表中的文件
    参数:src 属性:任何合法的相对或是完整的URL 作用:指定播放的文件或是源文件的地址
    参数:type 属性:字符串作用:为嵌入插件指定MIME类型
    参数:width 属性:任何整数值作用:指定RealPlayer元素的宽度

     

    函数、方法和过程

    function GetSource: WideString;
    procedure SetSource(const lpszNewValue: WideString);
    function GetConsole: WideString;
    procedure SetConsole(const lpszNewValue: WideString);
    function GetControls: WideString;
    procedure SetControls(const lpszNewValue: WideString);
    function GetNoLabels: WordBool;
    procedure SetNoLabels(bNewValue: WordBool);
    function GetAutoStart: WordBool;
    procedure SetAutoStart(bNewValue: WordBool);
    function GetAutoGotoURL: WordBool;
    procedure SetAutoGotoURL(bNewValue: WordBool);
    function GetVolume: Smallint;
    procedure SetVolume(nVol: Smallint);
    function GetMute: WordBool;
    procedure SetMute(bMute: WordBool);
    function GetLoop: WordBool;
    procedure SetLoop(bVal: WordBool);
    function GetImageStatus: WordBool;
    procedure SetImageStatus(bEnable: WordBool);
    function GetPacketsTotal: Integer;
    function GetPacketsReceived: Integer;
    function GetPacketsOutOfOrder: Integer;
    function GetPacketsMissing: Integer;
    function GetPacketsEarly: Integer;
    function GetPacketsLate: Integer;
    function GetBandwidthAverage: Integer;
    function GetBandwidthCurrent: Integer;
    procedure DoPlayPause;
    procedure DoStop;
    procedure DoNextItem;
    procedure DoPrevItem;
    function CanPlayPause: WordBool;
    function CanStop: WordBool;
    function HasNextItem: WordBool;
    function HasPrevItem: WordBool;
    function HasNextEntry: WordBool;
    function HasPrevEntry: WordBool;
    procedure DoNextEntry;
    procedure DoPrevEntry;
    procedure AboutBox;
    procedure EditPreferences;
    procedure HideShowStatistics;
    function IsStatisticsVisible: WordBool;
    procedure DoGotoURL(const url: WideString; const target: WideString);
    procedure DoPlay;
    procedure DoPause;
    function GetPosition: Integer;
    function GetPlayState: Integer;
    function GetLength: Integer;
    function GetTitle: WideString;
    function GetAuthor: WideString;
    function GetCopyright: WideString;
    function GetClipWidth: Integer;
    function GetClipHeight: Integer;
    function CanPlay: WordBool;
    function CanPause: WordBool;
    procedure SetPosition(lPosition: Integer);
    function GetNumLoop: Integer;
    procedure SetNumLoop(lVal: Integer);
    function GetCenter: WordBool;
    procedure SetCenter(bVal: WordBool);
    function GetNoLogo: WordBool;
    procedure SetNoLogo(bVal: WordBool);
    function GetMaintainAspect: WordBool;
    procedure SetMaintainAspect(bVal: WordBool);
    function GetBackgroundColor: WideString;
    procedure SetBackgroundColor(const pVal: WideString);
    function GetStereoState: WordBool;
    function GetLiveState: WordBool;
    function GetShowStatistics: WordBool;
    procedure SetShowStatistics(bVal: WordBool);
    function GetShowPreferences: WordBool;
    procedure SetShowPreferences(bVal: WordBool);
    function GetShowAbout: WordBool;
    procedure SetShowAbout(bVal: WordBool);
    function GetOriginalSize: WordBool;
    procedure SetOriginalSize;
    function GetDoubleSize: WordBool;
    procedure SetDoubleSize;
    function GetFullScreen: WordBool;
    procedure SetFullScreen;
    function GetEnableContextMenu: WordBool;
    procedure SetEnableContextMenu(bVal: WordBool);
    function GetEnableOriginalSize: WordBool;
    procedure SetEnableOriginalSize(bVal: WordBool);
    function GetEnableDoubleSize: WordBool;
    procedure SetEnableDoubleSize(bVal: WordBool);
    function GetEnableFullScreen: WordBool;
    procedure SetEnableFullScreen(bVal: WordBool);
    function GetEnableMessageBox: WordBool;
    procedure SetEnableMessageBox(bVal: WordBool);
    procedure SetTitle(const pVal: WideString);
    procedure SetAuthor(const pVal: WideString);
    procedure SetCopyright(const pVal: WideString);
    function GetWantKeyboardEvents: WordBool;
    procedure SetWantKeyboardEvents(bWantsEvents: WordBool);
    function GetWantMouseEvents: WordBool;
    procedure SetWantMouseEvents(bWantsEvents: WordBool);
    function GetNumEntries: Smallint;
    function GetCurrentEntry: Smallint;
    function GetEntryTitle(uEntryIndex: Smallint): WideString;
    function GetEntryAuthor(uEntryIndex: Smallint): WideString;
    function GetEntryCopyright(uEntryIndex: Smallint): WideString;
    function GetEntryAbstract(uEntryIndex: Smallint): WideString;
    procedure SetCanSeek(bCanSeek: WordBool);
    function GetCanSeek: WordBool;
    function GetBufferingTimeElapsed: Integer;
    function GetBufferingTimeRemaining: Integer;
    function GetConnectionBandwidth: Integer;
    function GetPreferedLanguageString: WideString;
    function GetPreferedLanguageID: Integer;
    function GetUserCountryID: Integer;
    function GetNumSources: Smallint;
    function GetSourceTransport(nSourceNum: Smallint): WideString;
    function GetWantErrors: WordBool;
    procedure SetWantErrors(bVal: WordBool);
    function GetShuffle: WordBool;
    procedure SetShuffle(bVal: WordBool);
    function GetVersionInfo: WideString;
    function GetLastMessage: WideString;
    function GetLastErrorSeverity: Integer;
    function GetLastErrorRMACode: Integer;
    function GetLastErrorUserCode: Integer;
    function GetLastErrorUserString: WideString;
    function GetLastErrorMoreInfoURL: WideString;
    procedure SetPreFetch(bVal: WordBool);
    function GetPreFetch: WordBool;
    procedure SetRegion(const pVal: WideString);
    function GetRegion: WideString;
    function GetIsPlus: WordBool;
    function GetConsoleEvents: WordBool;
    procedure SetConsoleEvents(bVal: WordBool);
    function GetDRMInfo(const pVal: WideString): WideString;
    property ControlInterface: IRealAudio read GetControlInterface;
    property DefaultInterface: IRealAudio read GetControlInterface;

     

    由于时间关系先转载个,有空完善,官方SDK下载:http://forms.real.com/rnforms/resources/player/visualizationsdk/index.html

    Windows Media Player ActiveX(4)

    其实上面2篇我也是转载的,有时间我再自己完善下。这些都只是大概介绍下,详细的就要看MS的SDK了,下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=e43cbe59-678a-458a-86a7-ff1716fad02f&DisplayLang=en

    Windows Media Player ActiveX(3)

    CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6
     
    <param NAME="AutoStart" VALUE="-1">
        <!--是否自动播放-->
        <param NAME="Balance" VALUE="0">
        <!--调整左右声道平衡,同上面旧播放器代码-->
        <param name="enabled" value="-1">
        <!--播放器是否可人为控制-->
        <param NAME="EnableContextMenu" VALUE="-1">
        <!--是否启用上下文菜单-->
        <param NAME="url" value="/blog/1.wma">
        <!--播放的文件地址-->
        <param NAME="PlayCount" VALUE="1">
        <!--播放次数控制,为整数-->
        <param name="rate" value="1">
        <!--播放速率控制,1为正常,允许小数,1.0-2.0-->
        <param name="currentPosition" value="0">
        <!--控件设置:当前位置-->
        <param name="currentMarker" value="0">
        <!--控件设置:当前标记-->
        <param name="defaultFrame" value="">
        <!--显示默认框架-->
        <param name="invokeURLs" value="0">
        <!--脚本命令设置:是否调用URL-->
        <param name="baseURL" value="">
        <!--脚本命令设置:被调用的URL-->
        <param name="stretchToFit" value="0">
        <!--是否按比例伸展-->
        <param name="volume" value="50">
        <!--默认声音大小0%-100%,50则为50%-->
        <param name="mute" value="0">
        <!--是否静音-->
        <param name="uiMode" value="mini">
        <!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
        <param name="windowlessVideo" value="0">
        <!--如果是0可以允许全屏,否则只能在窗口中查看-->
        <param name="fullScreen" value="0">
        <!--开始播放是否自动全屏-->
        <param name="enableErrorDialogs" value="-1">
        <!--是否启用错误提示报告-->
        <param name="SAMIStyle" value>
        <!--SAMI样式-->
        <param name="SAMILang" value>
        <!--SAMI语言-->
        <param name="SAMIFilename" value>
        <!--字幕ID-->

    Windows Media Player ActiveX(2)

    clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95
     
    格式:<param name="xxx" value="xxx">
    0=否|false
    1|-1=是|true
     
        <param name="AudioStream" value="-1">
        <param name="AutoSize" value="-1">
        <!--是否自动调整播放大小-->
        <param name="AutoStart" value="-1">
        <!--是否自动播放-->
        <param name="AnimationAtStart" value="-1">
        <param name="AllowScan" value="-1">
        <param name="AllowChangeDisplaySize" value="-1">
        <param name="AutoRewind" value="0">
        <param name="Balance" value="0">
        <!--左右声道平衡,最左-9640,最右9640-->
        <param name="BaseURL" value>
        <param name="BufferingTime" value="15">
        <!--缓冲时间-->
        <param name="CaptioningID" value>
        <param name="ClickToPlay" value="-1">
        <param name="CursorType" value="0">
        <param name="CurrentPosition" value="0">
        <!--当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0-->
        <param name="CurrentMarker" value="0">
        <param name="DefaultFrame" value>
        <param name="DisplayBackColor" value="0">
        <param name="DisplayForeColor" value="16777215">
        <param name="DisplayMode" value="0">
        <param name="DisplaySize" value="0">
        <!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理-->
        <param name="Enabled" value="-1">
        <param name="EnableContextMenu" value="-1">
        <!-是否用右键弹出菜单控制-->
        <param name="EnablePositionControls" value="-1">
        <param name="EnableFullScreenControls" value="-1">
        <param name="EnableTracker" value="-1">
        <!--是否允许拉动播放进度条到任意地方播放-->
        <param name="Filename" value="/blog/01.wma" valuetype="ref">
        <!--播放的文件地址-->
        <param name="InvokeURLs" value="-1">
        <param name="Language" value="-1">
        <param name="Mute" value="0">
        <!--是否静音-->
        <param name="PlayCount" value="10">
        <!--重复播放次数,0为始终重复-->
        <param name="PreviewMode" value="-1">
        <param name="Rate" value="1">
        <!--播放速率控制,1为正常,允许小数-->
        <param name="SAMIStyle" value>
        <!--SAMI样式-->
        <param name="SAMILang" value>
        <!--SAMI语言-->
        <param name="SAMIFilename" value>
        <!--字幕ID-->
        <param name="SelectionStart" value="-1">
        <param name="SelectionEnd" value="-1">
        <param name="SendOpenStateChangeEvents" value="-1">
        <param name="SendWarningEvents" value="-1">
        <param name="SendErrorEvents" value="-1">
        <param name="SendKeyboardEvents" value="0">
        <param name="SendMouseClickEvents" value="0">
        <param name="SendMouseMoveEvents" value="0">
        <param name="SendPlayStateChangeEvents" value="-1">
        <param name="ShowCaptioning" value="0">
        <!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示-->
        <param name="ShowControls" value="-1">
        <!--是否显示控制,比如播放,停止,暂停-->
        <param name="ShowAudioControls" value="-1">
        <!--是否显示音量控制-->
        <param name="ShowDisplay" value="0">
        <!--显示节目信息,比如版权等-->
        <param name="ShowGotoBar" value="0">
        <!--是否启用上下文菜单-->
        <param name="ShowPositionControls" value="-1">
        <!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制-->
        <param name="ShowStatusBar" value="-1">
        <!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间-->
        <param name="ShowTracker" value="-1">
        <!--是否显示当前播放跟踪条,即当前的播放进度条-->
        <param name="TransparentAtStart" value="-1">
        <param name="VideoBorderWidth" value="0">
        <!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小-->
        <param name="VideoBorderColor" value="0">
        <!--显示黑色框的颜色, 为RGB值,比如ffff00为黄色-->
        <param name="VideoBorder3D" value="0">
        <param name="Volume" value="0">
        <!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640-->
        <param name="WindowlessVideo" value="0">
        <!--如果是0可以允许全屏,否则只能在窗口中查看-->

    Windows Media Player ActiveX(1)

    其实Media Player控件有2个:
    1,clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95
    名称:MediaPlayer.MediaPlayer.1
    这个好看点
     
    2,clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6
    名称:WMPlayer.OCX.7
    不太好看(主要是中文字体)
     
    2者功能各有不同,总体来说还是后者好用些。现在网上一大堆相关资料全都是你抄我我抄你,把2者都搞混了!所以经常看见有人问怎么怎么不行,其实是他们把前者(后者)的函数,方法和事件用在后者身上(前者),而帖的人又是抄来的什么都不懂结果都是不了了之。后面详细介绍下2者用法。