VB程序启动后如何在通知区域显示

Nginx架构及配置详解 概述 Nginx采用C进行编写,是俄罗斯程序员开发的一款轻量级的可构建Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器的软件, Nginx服务器是一个高性能的HTTP和反向代理web服务器,同时也可提供了IMAP/POP3/SMTP服务。nginx常用作跑静态和做负载反向代理,动态php交给apache处理,因后者比较稳定,jsp交给tomcat、resin或jboss。n...... 阅读详情

'语言:Micrisift Visual Basic 6.0
'功能:向系统托盘区添加图标
'作者:黄旭东
'日期:2004-10-22
'版权:CopyRight 2001-2005 By Faib Studio
'网址:http://faib.yeah.net
'邮件:faib920@163.com

Option Explicit

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long

Private Const GWL_WNDPROC = (-4)
Private Const GWL_USERDATA = (-21)
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const NIF_INFO = &H10
Private Const NIIF_NONE = &H0
Private Const NIIF_WARNING = &H2
Private Const NIIF_ERROR = &H3
Private Const NIIF_INFO = &H1

Private Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uId As Long
    uFlags As Long
    uCallBackMessage As Long
    hIcon As Long
    szTip As String * 128
    dwState As Long
    dwStateMask As Long
    szInfo As String * 256
    uTimeoutOrVersion As Long
    szInfoTitle As String * 64
    dwInfoFlags As Long
End Type

Public Enum EnumTrayEvent
    fbmNone = &H0
    fbmOnLButtonUp = &H1
    fbmOnRButtonUp = &H2
    fbmOnMButtonUp = &H4
    fbmOnLButtonDown = &H8
    fbmOnRButtonDown = &H10
    fbmOnMButtonDown = &H20
    fbmOnLButtonDbClick = &H40
    fbmOnRButtonDbClick = &H80
    fbmOnMButtonDbClick = &H100
    fbmOnAllClickEvents = &H1FF
End Enum
Public Enum EnumTrayMessage
    fbmMouseMove = &H200
    fbmLButtonDown = &H201
    fbmLButtonUp = &H202
    fbmLButtonDbClick = &H203
    fbmRButtonDown = &H204
    fbmRButtonUp = &H205
    fbmRButtonDbClick = &H206
    fbmMButtonDown = &H207
    fbmMButtonUp = &H208
    fbmMButtonDbClick = &H209
End Enum
Enum EnumTitleIcon
   fbiNone = 0
   fbiInfo = 1
   fbiWarning = 2
   fbiError = 3
End Enum

Dim sIcon As StdPicture
Dim sVis As Boolean
Dim sForm As Form
Dim sMenu As Menu
Dim shWnd As Long
Dim sTip As String
Dim sStyle As EnumTrayEvent
Dim nTray As NOTIFYICONDATA
Dim proWnd As Long
Dim mHook As Long
Dim mVis As Boolean

Public Property Let HookAddress(ByVal NewVal As Long)
'hook地址
    mHook = NewVal
End Property

Public Property Get PopupStyle() As EnumTrayEvent
'返回/设置托盘菜单的动作模式
    PopupStyle = sStyle
End Property

Public Property Let PopupStyle(NewVal As EnumTrayEvent)
    sStyle = NewVal
End Property

Public Property Get Icon() As StdPicture
'图标
    Set Icon = sIcon
End Property

Public Property Set Icon(NewVal As StdPicture)
    If sIcon Is Nothing Then
        Set sIcon = NewVal
    Else
        If Not NewVal Is sIcon Then Set sIcon = NewVal
    End If
    If Not sVis Then Exit Property '如果没有显示则退出,否则修改图标
    Modify "Icon"
End Property

Public Property Get TrayForm() As Form
'主窗体
    Set TrayForm = sForm
End Property

Public Property Set TrayForm(NewVal As Form)
    If sForm Is Nothing Then
        Set sForm = NewVal
    Else
        If Not NewVal Is sForm Then Set sForm = NewVal
    End If
End Property

Public Property Get PopupMenu() As Menu
'弹出菜单
    Set PopupMenu = sMenu
End Property


Public Property Set PopupMenu(NewVal As Menu)
    If sMenu Is Nothing Then
        Set sMenu = NewVal
    Else
        If Not sMenu Is sMenu Then Set sMenu = NewVal
    End If
End Property

Public Property Get TipText() As String
'提示信息
    TipText = sTip
End Property

Public Property Let TipText(NewVal As String)
    sTip = NewVal
    If Not sVis Then Exit Property '如果没有显示则退出,否则修改提示信息
    Modify "Tip"
End Property

Public Property Get Visible() As Boolean
'是否显示
    Visible = sVis
End Property

Public Property Let Visible(NewVal As Boolean)
    If NewVal = sVis Then Exit Property '如果设置相同则退出
    sVis = NewVal
    If NewVal Then Show Else Hide
End Property

Public Sub Show() '显示
    If mVis Then Exit Sub
    With nTray
        .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        .cbSize = Len(nTray)
        .hWnd = sForm.hWnd
        .uId = vbNull
        .uCallBackMessage = fbmMouseMove
        .hIcon = sIcon.Handle
        .szTip = sTip & vbNullChar
    End With
    Shell_NotifyIcon NIM_ADD, nTray
    proWnd = SetWindowLong(sForm.hWnd, GWL_WNDPROC, AddressOf Wndproc)
    mVis = True: sVis = True
End Sub

Public Sub Hide() '移除
    If Not mVis Then Exit Sub
    SetWindowLong sForm.hWnd, GWL_WNDPROC, proWnd
    Shell_NotifyIcon NIM_DELETE, nTray
    mVis = False: sVis = False
End Sub

Public Sub ShowMessage(Title As String, Message As String, Optional TitleIcon As EnumTitleIcon = 0, Optional TimeOut As Long = 500)
    If Not sVis Then Exit Sub
    With nTray
        .uFlags = NIF_INFO Or NIF_MESSAGE
        .dwInfoFlags = NIIF_INFO
        .dwState = 0
        .hIcon = TitleIcon
        .dwStateMask = 0
        .szInfo = Message & vbNullChar
        .uTimeoutOrVersion = TimeOut
        .szInfoTitle = Title & vbNullChar
    End With
    Shell_NotifyIcon NIM_MODIFY, nTray
End Sub

Private Function Wndproc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    On Error Resume Next
    If Msg = fbmMouseMove Then
        Select Case lParam
        Case &H2
            Call Hide: Set sForm = Nothing: Set sIcon = Nothing
        Case fbmLButtonDbClick
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnLButtonDbClick) Then Popup
        Case fbmLButtonDown
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnLButtonDown) Then Popup
        Case fbmLButtonUp
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnLButtonUp) Then Popup
        Case fbmMButtonDbClick
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnMButtonDbClick) Then Popup
        Case fbmMButtonDown
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnMButtonDown) Then Popup
        Case fbmMButtonUp
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnMButtonUp) Then Popup
        Case fbmRButtonDbClick
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnRButtonDbClick) Then Popup
        Case fbmRButtonDown
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnRButtonDown) Then Popup
        Case fbmRButtonUp
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
            If sStyle <> fbmNone Then If CBool(sStyle And fbmOnRButtonUp) Then Popup
        Case fbmMouseMove
            If mHook <> 0 Then Wndproc = CallWindowProc(mHook, hWnd, lParam, wParam, lParam)
        End Select
    End If
    Wndproc = CallWindowProc(proWnd, hWnd, Msg, wParam, lParam)
End Function

Private Sub Modify(s As String)
    With nTray
        Select Case s
        Case "Icon"
            .hIcon = sIcon.Handle
            .uFlags = NIF_ICON
        Case "Tip"
            .uFlags = NIF_TIP
            .szTip = sTip & vbNullChar
        End Select
    End With
    Shell_NotifyIcon NIM_MODIFY, nTray
End Sub

Private Sub Popup()
'弹出菜单
    SetForegroundWindow sForm.hWnd
    sForm.PopupMenu sMenu
End Sub

VB版控制任务栏和托盘图标显示/隐藏的实现方法 Windows任务栏是操作系统用户界面的关键组成部分,提供快速访问到正在运行的程序和系统功能的途径。任务栏通常包括以下几个核心元素:开始按钮:这是任务栏最左侧的图标,点击后会弹出开始菜单,用户可以通过它访问到系统设置、应用程序、文件等资源。快速启动栏:位于开始按钮右侧,通常包含用户经常使用的程序或系统的快捷方式。任务栏按钮区域:显示当前打开的窗口或应用程序的按钮,帮助用户切换和管理不同的任务。通知区域。 阅读详情

相关推荐

用VB在任务栏右侧通知栏中加上程序图标

大家都知道杀毒软件在运行时,只有在任务栏右侧的通知栏中有程序图标,而在任务栏中间的活动区却没有图标。<br>那么如何让自己的VB程序像杀毒软件一样,也压入任务栏右侧的通知栏当中呢?本资源包含的源程序代码将为您解答。<br>本资源压缩包内包含实现此功能的所有代码(不含控件),简单修改即可适应您的要求。

[VB.NET]在系统栏显示图标

在系统栏显示图标 实例说明在本实例中,我们将制作一个能够在系统栏显示图标的应用程序。运行程序后,可以选择是显示还是隐藏任务栏的图标。程序运行界面如图98-1所示。图98-1 运行结果技术要点l 使用NotifyIcon控件l 显示/隐藏图标<!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 0

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 1313

vb 如何让软件运行时只在任务栏里显示小图标

vb 如何让软件运行时只在任务栏里显示小图标

vb.net显示系统通知

MessageSystem.send(“heloworld”)

qq_36916968的博客 1万+

VB为程序设置托盘图标及文字提示

内容索引:VB源码,系统相关,任务栏,托盘,图标   VB将图标添加到TaskBar的程序,同其他用VB编写的程序不同,这个程序可以相应鼠标事件,(其它的很多程序只能将一个图标放在TaskBar上),将DialogProc函数设置为Form2的窗口处理函数并且保存原来窗口处理函数句柄。并为图标添加右键菜单,添加鼠标提示文字。

VB做的系统气泡提示框

一个很不错的气泡提示框,很实用! 大家下载学习吧!

通过Web Service发送手机短信

1.方案分析通过编程实现短信息的发送是一件比较繁琐的事情,目前,解决方法是通过计算机和手机的连线,使用手机编程语言编写相关的短信程序来实现,而这种方法不仅需要耗费时间和精力,还需要有必备的硬件设施,并且必须具备手机编程的相关知识。本实例通过Web Service技术中接口实现远程访问现有的短信发送服务器,并通过调用服务器的方法来发送短信。利用新浪网提供的Web Serv

我在哈佛念过佛、我在牛津放过牛、我在剑桥建过桥、我在麻省理工理过发。- 程序员之家 929

[vb.net 2010]rtx自动发送通知提醒

vs2010下开发的rtx自动发送通知提醒 用于自己使用的,根据某数据的完成情况发送未完成和重复的记录提醒

通过Web Service发送手机短信

原文地址:http://apps.hi.baidu.com/share/detail/34609503   随着网络信息时代的到来,网络技术已经越来越受人们的欢迎。网民可以通过网络技术非常方便地进行沟通,网络QQ、E-mail、网络电话、网络短信等服务为广大网民提供了更加方便快捷的沟通方式。本节将通过实例,使读者简单了解利用Web Service发送手机短信。 1.方案分析 通过编程实现短信息

424

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1048

安卓逆向实战:用Batch Apktool 3.8.0快速汉化APK的完整流程

本文详细解析了如何使用Batch Apktool 3.8.0进行安卓APK汉化的完整流程,包括环境配置、反编译、资源解析、深度汉化、重构建与签名优化等关键步骤。通过这款集成化逆向工具,开发者可以高效完成APK汉化,提升工作效率。

s1t2u3的博客 1098

如何在 Delphi 与 .NET Web Service 之间互相传输DataSet (2)

====================================================== 注:本文源代码点此下载 ====================================================== 评论 1262325 #1楼 2006-08-14 10:49 浪子 请教一个问题,可以序列化成xml嘛? 回复 引用 查看

javazhuanzai的专栏 385

LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战

惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6

weixin_28684655的博客 595

编程实现短信发送三种方式

方案一: 利用sina webservice发送短信 通过编程实现短信息的发送是一件比较繁琐的事情,目前,解决方法是通过计算机和手机的连线,使用手机编程语言编写相关的短信程序来实现,而这种方法不仅需要耗费时间和精力硬件设施,并且必须具备手机编程的相关知识。本实例通过Web Service技术中接口实现远程访问现有的短信发送服务器,并通过调用服务器的方法来发送短信。 利用新浪网提

Mr__XiaoBai的专栏 2292

ISO 26262中的失效率计算:Mission profile的使用

Mission profile:任务剖面,即产品在完成规定任务这段时间内所经历的时间和环境的时序描述;集成电路在工作时环境温度是在不停变化的,同时也存在运行状态和非运行状态;为此标准提出了根据任务剖面(Mission profile)以及集成电路的实际结温来评估热幅度变化、循环温度幅值等因素的影响;汽车电子元器件相关的Mission profile参考IEC TR 62380:Table 11。

weixin_47071127的博客 4808

【Unity 反向运动学插件】Final IK 一套完整的IK解决方案

Final IK是Unity中一套完整的反向运动学解决方案,提供多种IK算法(CCD、FABRIK等)和功能模块,包括全身IK、VR驱动、武器瞄准、视线跟随等。其核心是通过数学方法计算关节旋转,使末端骨骼精确到达目标位置。系统支持多约束求解、旋转限制、动画烘焙及交互系统,采用模块化设计,兼顾性能与扩展性,适用于动作游戏、VR等需要高质量角色控制的场景,是Unity生态中最成熟的IK工具链之一。

2403_88403568的博客 1002

PHP如何向.NET接口webservice发送xml请求

<br />首先,我明白PHP可以使用soapclient 生成实例 调用.NET中暴露的接口方法。<br />PHP向.NET的webservice发送请求,.NET中接口方法的参数是分别写的,PHP中需要将参数当做一个数组。但如果.NET中某个参数是xml字符串,在PHP中怎么写才能正确发送请求呢?<br />请教一下上述代码用PHP实现应该如何写,最关键的就是最后一个参数xml,PHP传参数时必写入数组,但是xml作为数组元素<br />帮我写一段wml代码,通过输入框输入内容补全一个网址,我的发帖记

h57020877的专栏 3424

YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析

(0, 1), (0, 2), (1, 3), (2, 4), # 脖子和头部(3, 5), (5, 6), (5, 7), (7, 9), (5,11),# 左臂(4,6), (6, 12), (6,8) ,(8,10),# 右臂(11, 12), (11, 13), (13, 15), #左腿(12, 14), (14, 16) #右腿keypoints是检测到的人体关键点数据,frame是图像帧,boxes是检测到的边界框信息。定义了人体关键点之间的连接关系,用于绘制人体骨架。

yolo模型训练找我,AI游戏合作找我 2310

VB6 中实现图标显示在系统右下角托盘的方法

VB6 中实现图标显示在系统右下角托盘的方法

James.Duan@优快云 6901

二叉树三种遍历(动态图+代码深入理解)

文章目录一、图示理解(图片是一位前辈所留,在此感谢)1、先序遍历2、中序遍历3、后序遍历4、层序遍历二、深入理解三种遍历让我们来理解一下绕着外围跑一整圈的真正含义是:遍历所有结点时,都先往左孩子走,再往右孩子走。下面做一个实例吧三、代码实现加以理解以下是C语言全部代码实现下面是同样的例子用c++实现,大家可以参考一下 一、图示理解(图片是一位前辈所留,在此感谢) 1、先序遍历 先序遍历可以想象成,...

流楚丶格念的博客 3万+

STM32_HAL库—PWM产生指定个数

(一)CubeMX设置: 1. 晶振配置(72M) 2. 引脚配置 3. 中断配置 4. 配置及实现方式 由上推出公式: 机器周期: (72MHz / 36) = 2MHz = 0.5us PWM周期: 0.5 * 100 = 50us = 20kHz 5. 主函数调用PWM函数 HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_2); //此处一句后可直接进入中断 6. PWM溢出回调函数 void HAL_TIM_PWM_PulseFinished

5525
上一篇: 用Visual Basic设计抽奖程序
下一篇: VB程序启动后如何在通知区域显示
vbcrack
博客等级 码龄22年 8粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值