首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vbscript创建systray图标?

用vbscript创建systray图标?
EN

Stack Overflow用户
提问于 2017-01-07 08:59:55
回答 1查看 1.5K关注 0票数 0

我只能在这台计算机上使用vbscript,我想在系统托盘中显示一个图标。

我使用VBA找到了类似的问题和答案。Display new mail icon in Windows taskbar using VBScript

还有来自Microsoft的代码,它解释了如何在VBA How to use the System Tray directly from Visual Basic中执行此操作。

这些解决方案使用以下API调用

代码语言:javascript
复制
Public Declare Function Shell_NotifyIcon Lib "shell32" _
      Alias "Shell_NotifyIconA" _
      (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

问题是如何在vbscript中创建用户定义类型。

代码语言:javascript
复制
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 Type

VBScript只有一个用于所有变量的“变量”,没有一个类型语句来创建Shell_NotifyIcon需要的东西。

我在某处读到过使用class语句的可能性。

也许是这样的?

代码语言:javascript
复制
Class NOTIFYICONDATA
 cbSize 
 hwnd 
 uId 
 uFlags 
 uCallBackMessage 
 hIcon 
 szTip(64)
End Class

然而,我认为我的语法是错误的,或者类对象不是那样工作的。或者,因为该类的每个组件都是一个变体,而不是Shell_NotifyIcon期望的类型,所以它不能工作?

我不介意使用丑陋的has来强制vbscript引擎生成适当的内存对象来使用API调用,如果有任何方法的话?

(在后面的一集中,如果我设法创建了一个系统托盘图标,我希望从该图标获得单击事件并显示上下文菜单(vbscript缺少用于创建用户界面的表单对象,除了来自HTA对象的极其有限的表单,而我并不使用这些表单))

EN

回答 1

Stack Overflow用户

发布于 2017-01-08 19:16:52

正如@Lankymart所指出的,VBScript不能直接使用Windows。您可以编写一个向VBScript公开特定接口的COM包装器,但是也可以用VB6或VB.net实现整个应用程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41516696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档