我只能在这台计算机上使用vbscript,我想在系统托盘中显示一个图标。
我使用VBA找到了类似的问题和答案。Display new mail icon in Windows taskbar using VBScript
还有来自Microsoft的代码,它解释了如何在VBA How to use the System Tray directly from Visual Basic中执行此操作。
这些解决方案使用以下API调用
Public Declare Function Shell_NotifyIcon Lib "shell32" _
Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean问题是如何在vbscript中创建用户定义类型。
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End TypeVBScript只有一个用于所有变量的“变量”,没有一个类型语句来创建Shell_NotifyIcon需要的东西。
我在某处读到过使用class语句的可能性。
也许是这样的?
Class NOTIFYICONDATA
cbSize
hwnd
uId
uFlags
uCallBackMessage
hIcon
szTip(64)
End Class然而,我认为我的语法是错误的,或者类对象不是那样工作的。或者,因为该类的每个组件都是一个变体,而不是Shell_NotifyIcon期望的类型,所以它不能工作?
我不介意使用丑陋的has来强制vbscript引擎生成适当的内存对象来使用API调用,如果有任何方法的话?
(在后面的一集中,如果我设法创建了一个系统托盘图标,我希望从该图标获得单击事件并显示上下文菜单(vbscript缺少用于创建用户界面的表单对象,除了来自HTA对象的极其有限的表单,而我并不使用这些表单))
发布于 2017-01-08 19:16:52
正如@Lankymart所指出的,VBScript不能直接使用Windows。您可以编写一个向VBScript公开特定接口的COM包装器,但是也可以用VB6或VB.net实现整个应用程序。
https://stackoverflow.com/questions/41516696
复制相似问题