使用VBA在Skype中发送消息

12

目标:当某个宏完成时,向Skype联系人发送消息。

来源:我搜索了一下,在stackoverflow上找到了一些尝试做同样事情的问题。这是我使用的代码的基础:Using Excel VBA to send Skype messages to Group Chat,还有这个https://www.mrexcel.com/forum/excel-questions/424432-sending-skype-message-through-excel-vba.html 这两个问题都使用了类似的代码。

问题:当我运行代码时,我得到以下错误:

运行时错误 '429':ActiveX 组件无法创建对象

在这行代码中:

Set aSkype = New SKYPE4COMLib.Skype

问题:这个API对于这种操作还有效吗?我该如何解决持续出现的错误?

代码:

Sub testingskype()

Dim aSkype As SKYPE4COMLib.Skype
Set aSkype = New SKYPE4COMLib.Skype
Dim oChat As Chat
Dim skUser As SKYPE4COMLib.User
    Set skUser = aSkype.User("user_name")
    Set oChat = aSkype.CreateChatWith(skUser.Handle)
    oChat.OpenWindow
    oChat.SendMessage "message"

End Sub

注意: 我在创建的每个模块中都使用了"Option Explicit"选项。


@PankajKushwaha 已经检查过了,我正在使用普通版的Skype。 - DGMS89
1
尝试使用 Set aSkype = CreateObject("SKYPE4COMLib.Skype")。这有什么区别吗? - LocEngineer
@LocEngineer 是的,有我不知道的不兼容问题吗? - DGMS89
请检查注册表键 HKCR\WOW6432Node\CLSID\{830690FC-BF2F-47A6-AC2D-330BCB402664}\InprocServer32 的默认路径是否为 C:\PROGRA~2\COMMON~1\Skype\SKYPE4~1.DLL 并且存在。 - Florent B.
1
要查看注册表,请从命令提示符中调用“reg QUERY HKCR\WOW6432Node\CLSID{830690FC-BF2F-47A6-AC2D-330BCB402664}\InprocServer32”,或执行“regedit”。 - Florent B.
显示剩余26条评论
2个回答

2

让我感到惊讶的是,当聊天自动化成为各处讨论的话题时,开发人员放弃了这个问题。

自2013年以来,“Skype for Business”基本上是一个重新品牌的Lync,因此理解这一点非常重要。

Skype <> "Skype for Business"

就像Java和JavaScript一样,完全不同,只是为品牌起的类似名称。


了解Skype开发者平台或简称Skype SDK非常重要,它是Office Skype、Skype Web、Skype for Business和Skype的总称。

Skype Developer Platform

在所有的API / SDK中,需要使用:

Lync 2013 SDK文档

由于这是Skype桌面版,Lync和所有后续SFB版本的唯一可用SDK。 持久聊天示例是开发类似于此问题解决方案的最佳选择。

0

这可能并没有太大的帮助,但我认为你在这里列出的代码不起作用,或者库没有添加到你的Excel中。

同样的代码可以在这里找到: https://stackoverflow.com/a/43172531/8716187

你是否下载并注册了Skype dll(错误似乎与未添加ActiveX控件有关)。如果你使用的是x64,它可能只是x32。

当你安装使用Skype4COM.dll依赖项的软件时,该软件应自动为你注册该文件。在某些情况下,你的DLL文件可能无法正确注册,因此会提供“Skype4COM.dll未注册”的错误。幸运的是,你可以使用一个名为“Microsoft Register Server”(regsvr32.exe)的内置实用程序来重新注册你的Skype4COM.dll文件。 如何从提升的命令提示符(Windows XP、Vista、7、8和10)中重新注册Skype4COM.dll:

点击开始按钮。

在搜索框中输入“command”... 不要按回车键!

同时按住CTRL-Shift键,然后按ENTER键。

你将看到一个权限对话框。

点击“是”。

输入以下命令:regsvr32 /u Skype4COM.dll。
按ENTER键。这将取消注册您的文件。
输入以下命令:regsvr32 /i Skype4COM.dll。
按ENTER键。这将重新注册您的文件。
关闭命令提示窗口。
重新启动与Skype4COM.dll错误相关联的程序。

https://www.solvusoft.com/en/files/missing-not-found-error/dll/windows/skype-for-com-api/skype4com/skype4com-dll/

祝好, WWC


谢谢您的回答。我已经尝试过那个方法,还尝试重新安装Skype和Office,但结果仍然相同。 - DGMS89

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接