批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[原创] VBS针对MSGBOX的动态修改

仅仅只是针对MSGBOX的动态修改演示效果。非技术和实用性讨论
  1. option explicit
  2. Dim Msg,t
  3. set Msg=new Message
  4. Msg string(13,chr(8)),64,"test" '设定窗口定长字串
  5. t=10
  6. do
  7. msg.Change t & "秒后自动退出..." '动态修改窗口
  8. wsh.Sleep 1000
  9. t=t-1
  10. loop until t=0 or not Msg.Exist '计时器结束或窗口不存在
  11. Msg.Enter '按下确定
  12. class Message
  13. dim api,m(1),h
  14. dim WM_SETTEXT,BM_CLICK,WM_GETTEXT
  15. Public Default sub Show(byval var,byval dflags,byval title)
  16. dim wsc,p,i
  17. set api=CreateObject("VBScript.API")
  18. set wsc=CreateObject("wscript.shell")
  19. WM_SETTEXT = &HC:BM_CLICK = &HF5
  20. WM_GETTEXT = &HD
  21. if title=empty then title=wsh.scriptfullname
  22. if instr(title,"\") then _
  23. title=mid(title,instrrev(title,"\")+1)
  24. wsc.run "mshta vbscript:""<script language=vbs>msgbox "_
  25. &string(2,chr(34))&var&string(2,chr(34))&",64,"_
  26. &string(2,chr(34))&title&string(2,chr(34))_
  27. &":self.close</script>""",0
  28. set wsc=nothing
  29. do
  30. h=api.findwindow(vbnullstring,title)
  31. loop until api.iswindow(h)>0
  32. p=api.enumsubhwnd(h,"","*")
  33. for each i in p
  34. select case ucase(api.getclassname(i))
  35. case "BUTTON"
  36. m(1)=i
  37. case "STATIC"
  38. m(0)=i
  39. end select
  40. next
  41. End Sub
  42. public Sub Change(byval var)
  43. dim result
  44. api.sendmessagestring m(0),WM_SETTEXT,0,var
  45. end sub
  46. public sub Enter
  47. api.SetForegroundWindow m(1)
  48. api.sendmessagelong m(1),BM_CLICK,0,0
  49. end sub
  50. public Function Exist
  51. exist=api.iswindow(h)
  52. end Function
  53. Private Sub Class_Terminate
  54.         set api=nothing
  55.     End Sub
  56. end class
复制代码
2

评分人数

在WIN10中测试未通过,17行不能创建对象。 不使用外置程序应该也能实现吧?直接另外生成个VBS并运行显示内容,每秒杀掉并重新显示。

TOP

回复 2# 9zhmke


    我测试win 7 8 10都可以,说明不是我的问题是你自己不会弄

TOP

同2楼

没有这个对象CreateObject("VBScript.API")

win7x64
看了注册表,没有这个对象
哦,有附件,看下

QQ 20147578

TOP

类库很丰富啊
常用的API都封装起来了
好评好评
老刘的博客:https://OldLiu.CnBlogs.com/

TOP

vbsedit可以查看方法,至于说明如何使用,这个要百度。使用方法就不举例了,千万行都写不完!

TOP

返回列表