中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-23 22:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 好久未到,发一个托盘气泡提示的脚本,无须.NET环境 查看 3,152 回复 17
楼 主 好久未到,发一个托盘气泡提示的脚本,无须.NET环境 发表于 2007-08-29 15:19 ·  中国 山东 淄博 联通
中级用户
★★
积分 272
发帖 99
注册 2006-06-02 09:12
20年会员
UID 56414
状态 离线
此工具已经有新版本,详见此处(精确计时,图标支持,转义字符支持)

Data = "4D5A00000000000000000000504500004C010200534C58210000000000000000E0000F010B01000000000000000600000000000054010000001000000C00000000004000001000000002000004000000000000000400000000000000004000000002000000000000020000000000100000100000000010000010000000000000100000000000000000000000983200008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000001000000000000000000000000000000000000000000000E00000C0000000000000000000100000003000001903000000020000000000000000000000000000E00000C08725DC324000619455A4B680FF1373F933C9FF13731633C0FF13731FB68041B010FF1312C073FA753AAAEBE0FF530802F683D901750EFF5304EB24ACD1E8742D13C9EB189148C1E008ACFF53043B43F8730A80FC05730683F87F77024141958BC5B600568BF72BF0F3A45EEB9F5EAD97AD50FF5310958B074078F37503FF630C5055FF5314ABEBEE33C941FF1313C9FF1372F8C302D275058A164612D2C34B45524E454C33322E646C6C00004D3815403259096724454CFF027F65C711B3270CF49B4887C17F6874C4703A712FEE691D2E62610E6475C3636F6DF373011C6C79782C2042D79A53AF0B4D2E02C20325730E0842616C2E6F206E54697020E8653A7874B75B14576C955D0E086DE76F75C728637329331D49906EA7266444F9433853853C01C71805E012FCE801C114FF15241001A3E4911FB9700633C0890DE81BC844EC981425A3F0DD1354F405117813227CC448C41406A2F82B30C390038B44241D0856579D7C800C33C983F8030A893D8014252035017727FF248560115834EB6822B4081B02B5E216910C03080A8C44018B2A3518942268E00A51FFD657A3150C0F866A0220335F5EE61432A134091C2428507C9B55845EC3F083FE01FA278ECA40D285F67E23008A0C3A80F9307C17C00A397F120FBE1FC98D04C7423BD6604441D07C68E499BB9410534301C383EC18384224185355B250BB28B80B9352BD9864BE084C500E14AA66003A3BC50F8E52A3B31F4E04CC3D202F51296890AD0880130CFFD7451C1283C40C011202C6057F170C5AA18414560852278484146C0381C3087EE28B7F461F8D4C241050CD5146F554F6600A52E84D14311B8BD861F41F2019047E5552100ACE6A1854EAFE8BB50026FD037E2F3312EDEB2B085620455C0A0558A459D6F12C5D110C8ED6C16818E8DCFD8E7C5553ED258B8A1E086AFA910450275D6A5B3D2CB85701EBE54BF678A9A8113AA691111422DC8F010E2C1510EBCB538ED72D7011DC73746272166E412E054578C3EE50F16F63FD73C73B1D47FD7C43716D5C61E81D4C693E3857074B45524E3F6033322E646CE309994144546BD46F706757406465771D145F7358721A7466D29E1AE25E142CFA686065125F4E6F7412696679843D506F5DB354D8417267337657514842C463D001EABAF6000000F03200000000000000000000F2010000F032000000000000000000000000000000000000000000000010400000304000C814400000000000E032400080000000007D0000C0324000E8014000DC014000DE014000C0114000FA32000008330000000000004C6F61644C69627261727941000047657450726F634164647265737300"

Function ExtractFile(FileName)
With CreateObject("ADODB.Stream"):.Type = 1:.Open:.Write StrToByte(data):.SaveToFile FileName, 2:.Close:End With
End Function

ExtractFile "C:\BalloonTip.exe"
WScript.CreateObject("WScript.Shell").Run "cmd.exe /c C:\BalloonTip.exe ""How are you?"" Hello 3000 1", 0

Function StrToByte(str)
Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.loadXML "<?xml version=""1.0""?>"
Set pic = xmldoc.createElement("pic")
pic.dataType = "bin.hex"
pic.nodeTypedValue = str
StrToByte = pic.nodeTypedValue
End Function


上面的vbs脚本中实际上包含了一个小工具

使用格式为

BalloonTip Text Title Timeout IconIndex

参数均是可选的,第一个是气泡的内容,第二个是气泡的标题,第三个是气泡持续的时间,默认是3000毫秒,第四个是可选的图标样式,可选值为0(无图标),1(信息图标),2(警告图标),3(错误图标),默认是0

这个工具是托盘图标存在期间不会退出,如果需要删除临时文件需要等待它自己完成自己的工作退出之后

在Windows XP SP2下测试通过,不保证其他平台有效

[ Last edited by my3439955 on 2009-3-13 at 22:20 ]
2 发表于 2007-08-29 15:57 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
收藏一下先
以前有人发过需要.net framework支持的版本
3 发表于 2007-08-29 17:05 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
比我发的TrayBalloon小多了1.27KB=。=果然有个icon就是浪费……
4 发表于 2007-08-29 18:23 ·  中国 福建 三明 电信
高级用户
★★
论坛上抢劫的
积分 551
发帖 246
注册 2006-09-21 12:35
19年会员
UID 63270
状态 离线
data后面那一串的是什么意思啊?
5 发表于 2007-08-29 20:44 ·  中国 四川 攀枝花 电信
初级用户
积分 34
发帖 17
注册 2007-06-29 21:46
18年会员
UID 92719
性别 男
来自 介休
状态 离线
看不懂最上面的date后面的一大串是什么意思
我的C:没有这个BalloonTip.exe啊
是不是最上面就是创建了这个程序呢?

偶是小菜,别笑我
6 发表于 2007-08-29 20:49 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
用UE打开那个ballontip文件看看……
7 发表于 2007-08-29 20:56 ·  中国 四川 攀枝花 电信
初级用户
积分 34
发帖 17
注册 2007-06-29 21:46
18年会员
UID 92719
性别 男
来自 介休
状态 离线
不好玩,你在C盘上面的用16进制生成的那个BalloonTip.exe双击就是在给你打广告~_~!

[ Last edited by vive666888 on 2007-8-29 at 08:57 PM ]
8 发表于 2007-08-29 20:59 ·  中国 四川 攀枝花 电信
初级用户
积分 34
发帖 17
注册 2007-06-29 21:46
18年会员
UID 92719
性别 男
来自 介休
状态 离线
Originally posted by slore at 2007-8-29 08:49 PM:
用UE打开那个ballontip文件看看……


我没有UE,我用winhex打开后看到是一样的,请问那这个ballontip.exe是用什么编写的呢?
9 发表于 2007-08-29 22:15 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
什么写的,不知道……
这么小可能是直接汇编的

=.=广告倒是可以修改掉o(∩_∩)o
10 发表于 2007-08-29 22:45 ·  中国 四川 攀枝花 电信
初级用户
积分 34
发帖 17
注册 2007-06-29 21:46
18年会员
UID 92719
性别 男
来自 介休
状态 离线
Originally posted by slore at 2007-8-29 10:15 PM:
=.=广告倒是可以修改掉o(∩_∩)o


怎么修改掉啊,我不会哦
11 发表于 2007-08-30 00:18 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
脱掉壳用UE可以看到那些字符串=。=脱壳后20KB……(原来1.27KB)
12 发表于 2007-08-30 13:46 ·  中国 浙江 湖州 电信
初级用户
积分 58
发帖 27
注册 2007-07-27 01:53
18年会员
UID 94107
性别 男
状态 离线
这个体积小,要支持的!!!
13 发表于 2007-08-30 15:09 ·  中国 山东 淄博 联通
中级用户
★★
积分 272
发帖 99
注册 2006-06-02 09:12
20年会员
UID 56414
状态 离线
一些说明:

1.广告不广告的我认为没什么,为了缩小程序体积,我没有添加版本信息,于是就使用了"广告".直接运行的时候出现的气泡也是告诉大家使用格式的.在脚本中使用的时候加上哪怕仅仅一个参数,所谓的广告也就没有了

2.程序是加了壳的,加壳前2KB.未加壳的也可以发布,但是现在没有带在身上.需要的话大家可以修改这个程序,不用理会什么版权不版权的

3.程序是VC环境下用纯API写的,使用WinMainCRTStartup函数代替了传统的WinMain函数作为入口,因此程序体积大减.

4.托盘的具体图标,我并非不想加上,但是加来加去都没有成功.我猜想对于一个没有窗体的程序,托盘图标是不可能的吧?

5.由于程序本身的原因,直接点击运行会使系统使用等待状态光标.但是在命令行下运行就不会出现这个问题了,因此我在最上面的脚本中调用cmd来运行程序.这样做的另一个好处是可以在使用气泡后删除先前释放的可执行文件

6.谢谢大家关注
14 发表于 2007-08-30 16:05 ·  中国 江苏 无锡 电信
初级用户
积分 92
发帖 42
注册 2007-08-14 09:14
18年会员
UID 95100
性别 男
来自 重庆市巫山县
状态 离线
呵呵。高手。
不过我是没看明白啊。
拾人牙慧者!
15 发表于 2007-09-04 09:51 ·  中国 山东 淄博 联通
中级用户
★★
积分 272
发帖 99
注册 2006-06-02 09:12
20年会员
UID 56414
状态 离线
不过好象还没见到过使用气泡提示的脚本
论坛跳转: