[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 为什么wmp可以直接以ocx的方式创建?!

@echo off
if not exist vbPlay.vbs (
>vbPlay.vbs  echo Set Args=WScript.Arguments
>>vbPlay.vbs echo For i=0 to Args.Count-1
>>vbPlay.vbs echo Dim Wmp:Set Wmp=CreateObject^("WMPlayer.OCX"^):Wmp.Settings.Volume="100":Wmp.Url=Args^(i^)
>>vbPlay.vbs echo While Wmp.PlayState=9 or Wmp.PlayState=6 or Wmp.PlayState=3:WScript.Sleep 1000:Wend:Set Wmp=Nothing
>>vbPlay.vbs echo Next
)

vbs核心函数:
Set Wmp=CreateObject^("WMPlayer.OCX"^)
?!

用高级的核心函数不是这样的
// Type Lib: C:\Windows\system32\wmp.dll (1)
// LIBID: {6BF52A50-394A-11D3-B153-00C04F79FAA6}
// LCID: 0
// Helpfile:
// HelpString: Windows Media Player
// DepndLst:

建立的是这个接口
  IWMPPlayer4 = interface(IWMPCore3)
    ['{6C497D62-8919-413C-82DB-E935FB3EC584}']

why!@#!@#!@¥!@#!@#

迷之问题,因为wmp提供了COM自动化接口啊

TOP

人家注册的COM组件名叫这个
可以看看 demon 大神的文章:http://demon.tw/copy-paste/vbs-createobject-internal.html

TOP

回复 2# 老刘1号


字符串 "WMPlayer.OCX"
ocx的文件名既可以作为progid?
或者对象的名既为"WMPlayer.OCX"的话这个名称是怎么来的? (一楼我用高级语言生成的tlb文件里没有字符串"WMPlayer.OCX")

TOP

回复 3# CrLf

1.我没看出他哪里像大神了
他说的只不过是createobject所调用的函数罢了 (懂点api的都知道是怎么实现的)

2.关键是progid
字符串 "WMPlayer.OCX"
ocx的文件名既可以作为progid?
或者对象的名既为"WMPlayer.OCX"的话这个名称是怎么来的? (一楼我用高级语言生成的tlb文件里没有字符串"WMPlayer.OCX")

TOP

返回列表