找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19640|回复: 4

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

[复制链接]
发表于 2018-6-3 02:36:22 | 显示全部楼层 |阅读模式
@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!@#!@#!@¥!@#!@#
发表于 2018-6-4 11:20:55 | 显示全部楼层
迷之问题,因为wmp提供了COM自动化接口啊
发表于 2018-6-4 11:31:45 | 显示全部楼层
人家注册的COM组件名叫这个
可以看看 demon 大神的文章:http://demon.tw/copy-paste/vbs-createobject-internal.html
 楼主| 发表于 2018-6-4 22:31:15 | 显示全部楼层
回复 2# 老刘1号


字符串 "WMPlayer.OCX"
ocx的文件名既可以作为progid?
或者对象的名既为"WMPlayer.OCX"的话这个名称是怎么来的? (一楼我用高级语言生成的tlb文件里没有字符串"WMPlayer.OCX")
 楼主| 发表于 2018-6-4 22:32:35 | 显示全部楼层
回复 3# CrLf

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

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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:49 , Processed in 0.018881 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表