Vbs 脚本编程简明教程之一—为什么要使用Vbs?
在Windows 中,学习计算机 *** 作也许很简单,但是很多计算机工作是重复性劳动,例如你每周
也许需要对一些计算机文件进行复制、粘贴、改名、删除,也许你每天启动计算机第一件事情
就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造
一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据
按照某种规则排列起来……。这些事情重复、琐碎,使人容易疲劳。
第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,我也尝试
过使用计算机语言编写程序来解决这些问题,但是随之而来的命令、语法、算法、系统框架和
类库常常让我觉得这样是否有必要,难道就是因为猪毛比较难拔,所以我就要去学习机械,为
自己设计一个拔猪毛机(?)吗?
Vbs 是一种Windows 脚本,它的全称是:Microsoft Visual Basic Script Editon(微软公司可视化
BASIC 脚本版),VBS 是Visual Basic 的的一个抽象子集,是系统内置的,用它编写的脚本代码
不能编译成二进制文件,直接由Windows 系统执行(实际是一个叫做宿主host 的解释源代码并
执行),高效、易学,但是大部分高级语言能干的事情,它基本上都具备,它可以使各种各样的
任务自动化,可以使你从重复琐碎的工作中解脱出来,极大的提高工作效率。
我个人认为Vbs 脚本其实就是一种计算机编程语言,但是由于缺少计算机程序设计语言中的部
分要素,对于事件的描述能力较弱,所以称为脚本,它最方便的地方就是提供了对COM 对象
的简便支持。那么什么是COM 对象呢?
我这样理解,COM 对象就是一些具有特定函数功能项程序模块,他们一般以ocx 或者dll 作为
扩展名,你只要找到包含有你需要的功能的模块文件,并在脚本中规范的引用,就可以实现特
定的功能,也就是说Vbs 脚本就是调用现成的“控件”作为对象,用对象的属性和方法实现目的,
完全免去了编写代码、设计算法等等麻烦。说白了,我不是觉得拔猪毛麻烦么?我发觉xx 机(比
如真空离心器)有一个功能可以实现脱毛,ok,我把它拿来给猪脱毛。什么?大材小用?太浪
费资源了?天哪,那是计算机芯片的事情,死道友不死贫道,反正我的事情是方便快速的解决
了,这就行了。
最方便的是它甚至不需要专门的开发环境,在你的计算机中,只要有notepad,就可以编写Vbs
脚本了,并且可以直接执行。
===============================
Vbs 脚本编程简明教程之二—如何开始第一个Vbs 脚本?
就像多数计算机教程一样,我们从“Hello World!”程序开始我们的练习。什么?不知道是什
么意思?就是说大部分的计算机程序设计教程开篇入门都是编写一个小程序,执行这个程序的
结果就是在计算机的屏幕上或者dos 窗口中显示一行文字:Hello World!好了,我们开始吧。
打开你的“记事本”程序,在编辑窗口填写:
msgbox "He llo World!"
然后用鼠标单击“文件”菜单,单击“保存”,把“保存在”一栏设为桌面,在“文件名”一栏中填写
kkvbs,单击“保存”就可以了。然后最小化“记事本”窗口,在桌面上寻找你刚刚保存的kkvbs,
然后双击。看到d出的对话框了没有,单击“确定”,对话框消失了。难看了点,不过确实是你
编写的第一个脚本程序。
说明之一:上面的 *** 作中,保存位置放在桌面,仅仅是为了执行方便,你保存到其他的地方完
全没有问题,只要你知道你保存在什么地方就可以了,什么?是废话,自己保存的当然知道保
存在那里了。不,自己保存的文件自己找不到的人我见的多了去了。文件名你可以随意填写,
不一定非要写kk,只要符合Windows 的文件命名规则就可以了,但是扩展名必须是vbs,什么
不知道什么是扩展名?就是文件名中“”后的那部分,简单说,就是vbs 脚本文件命名时必须是:
xxxvbs,其中xxx 你随意。
说明之二:在记事本编辑窗口中写的这行是什么意思?
Msgbox 是VBS 内建的函数,每一个函数都可以完成一定的功能,你只需要按照语法要求,在
函数的相应部分填写相应的内容就可以了,这部分内容我们称为参数,当然函数执行的结果我
们称为返回值,一个函数可以有返回值也可以没有,可以有参数也可以没有。你不用了解函数
是怎么运作的,只要了解这个函数能干什么就行了。
Msgbox 语法:msgbox "对话框内容", , "对话框的标题"
你不妨用记事本打开刚才的文件在编辑窗口中输入:
msgbox "He llo World!" , , "系统提示"
执行一下,看看效果和位置。
说明之三:如果执行失败,看看你的标点符号,所有的标点符号必须是在英文状态下输入的。
当然,这个脚本实在是太简单了,甚至连最简单的交互都没有,所以你可以把脚本这样修改一
下:
Dim name
name=Inputbox("请输入你的名字:","名称")
Msgbox name, , "您的名字是"
保存执行一下,看到d出的对话框了么?填入你的名字,点确定,看到结果了吗?
说明之一:第一句是定义变量,dim 是定义变量的语句
其格式为:dim 变量1,变量2……,
Vbs 只有一种变量类型,所以不用声明变量类型。系统会自动分辨变量类型。
说明之二:inputbox 是VBS 内建的函数,可以接受输入的内容,其语法格式为:
Inputbox("对话框内容","对话框标题")
第二句的意思是接受用户的输入,并把输入结果传递给变量name。
好了,到此脚本基本的输入输出函数都有了,已经可以完成一些比较简单的功能了,你可以编
写一个简单的脚本,然后拷贝的“程序”—>“启动”中,然后重新启动计算机看看结果。
要在微信小程序的Word文档中添加,首先进入编辑模式,然后点击“插入”按钮,在d出的选项中选择“”,然后选择相应的本地或者从相册选择。上传后,可以将其拖拽或者调整大小、位置。另外,还可以调整属性,包括对齐方式、文字环绕等。添加好后,记得保存并分享文档。需要注意的是,微信小程序Word文档仅适用于微信公众平台注册账号的用户使用。
您正在看的汇编语言是:hello,world!win32汇编小程序。
首先我们看一个“复杂”的Win32汇编程序
程序用来显示一个消息框
--------------------------------------------------
;文件名:3asm
386
model flat ,stdcall
NULL equ 0
MB_OK equ 0
ExitProcess PROTO :Dword
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:Dword
includelib kernel32lib
includelib user32lib
data
szText db "Hello, world!",0
szCaption db "Win32Asm",0
code
start:
push MB_OK
lea eax,szCaption
push eax
lea eax,szText
push eax
push NULL
call messageboxa
xor eax,eax
push eax
call exitprocess
end start
--------------------------------------------------
编译链接:
分下面两步进行:
ml /c /coff 3asm
link /subsystem:Windows /libpath:d:\masm7\lib 3obj
第一步编译生成3obj文件
/c 表示只编译,不链接
/coff 表示生成COFF格式的目标文件
第二步链接生成3exe文件
/subsystem:windows 表示生成Windows文件
/libpath:d:\masm7\lib 表示引入库的路径为:d:\masm7\lib。
在安装Masm32后,引入库位于Masm32\Lib目录下。
也可设置环境变量Lib的值:在dos提示符下键入Set Lib=d:\masm7\lib,这样“链接”就可简单写成:
link /subsystem:Windows 3obj,试想一下,在程序调试过程中,修改源程序是常用的事啦,每次编译链接都要带/libpath:那该有多烦人呢。当然,我们也可在源程序中直接给出引入库的位置,这样,链接时就方便啦,如下:
includelib d:\masm7\lib\kernel32lib
includelib d:\masm7\lib\user32lib
--------------------------------------------------
执行:在dos提示符下键入3,回车,出现一个消息框,哈哈,真正的Win32程序!
--------------------------------------------------
深入分析:
看一下源程序,有这么两行:call messageboxa\call exitprocess。大家一看都知道,这是子程序调用,但是我们并没写这样的子程序,事实上,这些是API函数。作为函数,我们在调用时可能需要传送给函数一些参数,程序怎么知道传送的参数有哪些,类型是什么呢?就是通过函数原型定义,如下所示:
ExitProcess PROTO :Dword
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:Dword
可以看出,ExitProcess有一个参数,MessageBoxA有四个参数,这些参数都是Dword类型。
在Win32中,参数的传递都是通过堆栈来完成的。象MessageBoxA这个函数有四个参数,究竟是左边的先压入堆栈还是右边的先入栈呢?model flat,stdcall给出了答案。stdcall 指定参数是从右到左压入堆栈的,且调整堆栈是在子程序返回时完成的。在源程序中不需要用“add sp,值”来保持堆栈平衡。对MessageBox,在API手册中是这样定义的:
int MessageBox(
HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType &n
您正在看的汇编语言是:hello,world!win32汇编小程序。
bsp; // style of message box
)
;所以会有我们的程序段:
push MB_OK
lea eax,szCaption
push eax
lea eax,szText
push eax
push NULL
call messageboxa
看看上面的程序,不难想到,假如在写程序时,少往堆栈里压入一个数据,那将是一个致命的错误。能不能将这种检查参数个数是否匹配的工作交给计算机来完成呢?这是可以的,INVOKE指令可以帮助我们完成这样的工作。假如你的参数个数不正确,连接器将给出错误提示。所以,极力建议你使用invoke代替call来调用子程序,当然,这不是绝对的。使用invoke上面的指令就可简写成下面的样子,看起来简炼多啦,查错也方便啦!
invoke messageboxa, NULL,addr szText,addr szCaption,MB_OK
另外,像NULL,MB_OK都是一些常量,这样的常量有很多,还有很多的结构,如果在我们的程序中一开始都写这么多的东西,可能一下子就把你吓怕啦,也容易出错,更不便于看程序的主要部分。hutch整理的Windowsinc包含了WIN32编程所需要的常量和结构体的定义,我们可简单的用一个include指令将这些常量和结构的定义插入到我们的文件中:
include d:\masm32\include\Windowsinc
但是Windowsinc中并不包含函数原型的声明,还要从其他的头文件中得到函数原型的声明,比如:messageboxa的原型声明在user32inc文件中,exitprocess在kernel32inc文件中。这些头文件都放在 \masm32\include文件夹下。
还有,要用Windowsinc,必须使用option casemap:none,它的意思是告诉 MASM 要区分符号的大小写,譬如:start和START是不一样的。否则,一个小小的程序,可能会出成百上千的错误呀!
其他的,就不再细说啦,到此,上面的程序可重新修改如下:
-----------------------------------------------------------------
;最终的结果
386 ;表示要用到386指令
model flat,stdcall ;32位程序,要用flat啦!;stadcall,标准调用
option casemap:none ;区别大小写
include Windowsinc ;包括常量及结构定义
include kernel32inc ;函数原型声明
include user32inc
includelib kernel32lib ;用到的引入库
includelib user32lib
data;数据区,定义2个字符串
szText db "Hello, world!",0
szCaption db "Win32Asm",0
code ;代码开始执行处
start:
invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK
;调用MessageBoxAPI函数
invoke ExitProcess,NULL ;程序退出
end start;结束
------------------------------------
编译链接:
ml /c /coff /I d:\masm7\include 3asm ;注意开关符识别大小写
link /subsystem:Windows /libpath:d:\masm7\lib 3obj
/I d:\masm7\include 表示inc文件的位置,也可设置环境变量Set include=d:\masm7\include来简化 *** 作,也可在程序中明确指出inc的位置。
前面讲的都是用两条指令来完成编译链接,实际上用一条指令也可完成,如下:
ml /coff /I d:\masm7\include 3asm /link /subsystem:Windows /libpath:lib
若inc及引入库在源程序中都明确指出其位置,则可简化为:
ml /coff 3asm /link /subsystem:
将word文档发给微信好友的方法如下:
1、从微信的官方下载微信电脑板,进行安装。安装完成后,双击启动微信电脑版程序。
2、登录微信电脑版程序后,进入微信电脑版的界面。
3、在微信电脑的版的界面,找到微信好友。打开聊天界面,在聊天的界面点击发送文件按钮。
4、点击发送文件按钮,进入电脑的本地文件查找需要发送的word文档。
5、word文档选择完成后,点击打开按钮。
6、点击打开按钮后,word文档进入聊天窗口的发送窗口。
7、整个word文档上传完成后,点击发送按钮。
8、点击发送按钮后,就可以看到微信的好友已经收到word文档了。
以上就是关于word-利用vbs写一个脚本全部的内容,包括:word-利用vbs写一个脚本、微信小程序word文档怎么添加图片、用汇编语言编写一个小程序(比如hello,word!)请懂的人帮忙提供源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)