用VB也可以做绿色软件
VB6.0程序设计教案_4.6
4.6 制作颜色编辑器一、复习列表框控件(ListBox)、组合框控件(ComboBox)的常用属性和常用方法及常用事件?二、本节重点1、掌握滚动条(HScrollBar、VScrollBar)的常用属性;,2、掌握滚动条(HScrollBar、VScrollBar)的常用事件。
三、提问:1、同学们在使用软件时,常见的有哪些软件里有使用滚动条?目前所使用的Word软件的右侧,也是滚动条。
2、滚动条有作用:滚动条可以作为输入设备,或者速度、数量的指示器来使用。
例如可以用来控制计算机游戏的音量,或者是查看计时处理中已用的时间等。
导入上一章讨论了Visual Basic中学习了列表框控件和组合框控件的应用。
本节课我们来通过制作小程序,学习滚动条的常用属性和事件。
四、内容学习滚动条的属性常用属性:1)LargeChange:返回或设置当用户单击滚动条和滚动箭头之间的区域时滚动条控件的Value属性值的改变量。
2)SmallChange:返回或设置当用户单击滚动箭头时滚动条控件的Value 属性值的改变量。
3)Max:返回或设置当滚动框处于顶部或最右位置时,一个滚动条位置的Value属性的最大设置值。
4)Min:返回或设置当滚动框处于处于顶部或最右位置时,一个滚动条位置的Value属性的最小设置值。
5)Value:返回或设置滚动条的当前位置,其返回值始终介于Max和Min 属性值之间,包括这两个值。
使用滚动条作为数量或速度的指示器或者作为输入设备时,可以利用Max和Min属性设置控件的适当变化范围。
为了制定滚动条内所示的变化量,在单击滚动条要使用LargeChange属性,在单击滚动条两端的箭头时,要使用SmallChange属性。
滚动条的Value属性或递增或递减,增减的量是通过LargeChange和SmallChange属性设置的值。
在运行时,在0与32767之间设置Value属性的值,就可以将滚动框定位。
教你如何制作和利用VB资源文件
教你如何制作和利用VB资源文件本文介绍了 Visual Basic 中资源文件的多种使用技巧:①开发中英(简、繁)双版本的技巧;②实现“绿色”软件;③直接播放声音文件;④保存各类图标、光标图片等等。
--------------------------------------------------------------------------------在 Visual Basic 中资源文件的多种使用技巧一、开发中英(简、繁)双版本现在比较流行的软件都会有中文版、英文版、繁体版等等多个版本,并可以根据系统的语言自动显示相适应的版本,那么这个功能在 VB 是如何实现得呢的:1、首先通过 API 函数GetSystemDefaultLCID 判断系统的语言Option ExplicitDim lang As StringPrivate Declare Function GetSystemDefaultLCID Lib"kernel32" () As LongPrivate Sub Form_Load()Dim LocaleID As LongLocaleID = GetSystemDefaultLCIDSelect Case LocaleIDCase &H404MsgBox "当前系统为:中文繁体", , "语言"Case &H804MsgBox "当前系统为:中文简体", , "语言"lang = "1"Case &H409MsgBox "当前系统为:英文", , "语言" lang = "2"End SelectEnd Sub2、然后程序就可以加载保存在资源文件(这里我们就是使用的这种方法)、注册表、INI 文件、文本文件或其他文件中的各类字符串,以达到达到实现多种语言的目的。
利用VB做精美桌面
【VB】利用VB做美化界面如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更好,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不好,看看VB是怎么利用别的东西来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name: LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name 属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button Then Exit Sub ’如果按钮被按下就退出该过程For Count = 0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor = LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label 控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)Text1.BorderStyle = 0End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)DoEventsText1.BorderStyle = 1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As LongPrivate Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus() As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体 Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" ()As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long’这个该不要俺多介绍了吧Public Const HTCAPTION = 2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN = &HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在ToolSign的 AutoQuit属性的Public Const EXIT_FORCE = 2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE = 1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit = EXIT_CUSTOM.ParentsHWND = hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width = WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System = New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC, 60, Width, Height, Left, TopSet System = NothingEnd Sub。
系统维护软件说明书
使用说明一、系统基本信息查看本程序是用VB 编写我已经使用VB-PowerWrap 打包软件把软件所要调用的动态链接库资源和控件资源集合到可执行文件里我目的是打造一个可到处运行的免安装绿色软件。
本软件不需要安装只要双击就可以运行。
1、定位到文件功能可以打开进程文件所在目录。
2、复制路径到粘贴板这功能是为了方便用户对可疑进程名字复制并到百度或google搜索相关信息和网络鉴别3、线程信息可以查看当前进程的内部线程信息来判别当前进程是否为网络进程4、刷新进程这功能目的是为了在某种情况下进程信息显示更新速度跟不上而设置的。
5、关闭本软件这个功能是为了结束当前软件而设置由于本软件是对系统进程进行操作的软件权限比较高某些系统用户环境下由于权限不够无法对本软件进行关闭这个功能却可以通过本身的权限去结束自己。
6、强行结束进程双击运行后你上一部分是当前操作系统进程列表如图可用鼠标选择其中一个进程即可在下部的表格内显示当前选中的进程所调用的动态链接库资源和文件内部资源。
当选择某个进程后可以用鼠标右键来查看当前进程的各种信息和对进程进行强行结束操作此操作必须在对进程比较熟悉的情况下操作这个功能是基于破坏性的操作本软件的设计没有对系统进程进行保护设置所以可以强行结束系统内核进程任务管理器不可以目的也是对付一些高权限病毒而已。
所以操作要谨慎否则会导致系统运行不稳定甚至蓝屏。
这个界面的每个进程信息和动态链接库信息都是专为查可疑进程而设计的。
其中进程列表部分当前进程ID和父进程ID可以通过这两项参数查看进程的父进程如果发现某非系统默认进程或者某可疑进程是继承了高权限的系统进程smss和csrrs甚至System这样的进程即为可疑度很高的进程因为某些病毒为了能获得高权限必须HOOK这些系统内核进程。
版本、公司签名、产品信息当查看某进程时发现进程调用的动态链接库资源的文件版本信息公司签名还有产品信息缺乏是有可疑的。
如果以上三项信息都缺乏的话可疑度相当高。
如何利用VisualBasic开发身份证号码批量验证工具软件
如何利用VisualBasic开发身份证号码批量验证工具软件导读:本文如何利用VisualBasic开发身份证号码批量验证工具软件,仅供参考,如果觉得很不错,欢迎点评和分享。
如何利用Visual Basic开发身份证号码批量验证工具软件作者/刘小龙通过对身份证号码实际应用中存在的问题进行详细分析,我们发现每学年的学籍建档、国家助学金申报等方面都离不开身份证号码。
同时,人工核对信息工作量大,也易出错,势必对工作造成一定的影响。
为此,我们运用大学学习的一些VB知识,根据身份证号码编码规则编写了《身份证号码批量验证工具》软件,使身份证号码核对工作变得简单、轻松。
一、软件的设计步骤二、软件详细设计1. 解决方案与软件特色本程序使用VB在Windows XP环境开发,解决了身份证号码验证过程中存在的易出错、工作量大的问题,支持Excel文件批量验证及信息追加,绿色免安装、小巧、实用性强。
2. 具体设计下面就根据软件的操作流程图进行介绍软件的功能和实现原理:(1)操作流程图。
参数设置说明:身份证号码、性别、出生年月所在列均以阿拉伯数字表示,性别、出生年月信息的追加属于选择项。
(2)身份证号码校验值计算函数代码。
Public Function sfzjym(num As String)As StringDim n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,y,s As Integern1=Val(Mid$(num,1,1))*7n2=Val(Mid$(num,2,1))*9n3=Val(Mid$(num,3,1))*10n4=Val(Mid$(num,4,1))*5n5=Val(Mid$(num,5,1))*8n6=Val(Mid$(num,6,1))*4n7=Val(Mid$(num,7,1))*2n8=Val(Mid$(num,8,1))*1n9=Val(Mid$(num,9,1))*6n10=Val(Mid$(num,10,1))*3n11=Val(Mid$(num,11,1))*7n12=Val(Mid$(num,12,1))*9n13=Val(Mid$(num,13,1))*10n14=Val(Mid$(num,14,1))*5n15=Val(Mid$(num,15,1))*8n16=Val(Mid$(num,16,1))*4n17=Val(Mid$(num,17,1))*2y=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11+n12+n13+n 14+n15+n16+n17s=y Mod 11Select CasesCase 0sfzjym=“1”Case 1sfzjym=“0”Case 2sfzjym=“X”Case 3sfzjym=“9”Case 4sfzjym=“8”Case 5sfzjym=“7”Case 6sfzjym=“6”Case 7sfzjym=“5”Case 8sfzjym=“4”Case 9sfzjym=“3”Case 10sfzjym=“2”End SelectEnd Function函数参数为18位身份证号码,返回值为身份证号码的校验值,即身份证号码最后一位,整个计算过程严格按照GB11643-1999 《公民身份号码》中的规定完成。
10款屏幕取色器颜色拾取工具
10款屏幕取⾊器颜⾊拾取⼯具10款屏幕取⾊器/颜⾊拾取⼯具Picker The Color Picker可以让您在你的屏幕上随时随地挑选你最喜爱的颜⾊。
然后再加⼊到调⾊板和保存,以便⽇后使⽤。
该⼯具⽀持的颜⾊代码包括RGB和⼗六进制的HEX代码,你还可以很容易复制颜⾊代码到剪贴板。
该⼯具适⽤于Windows 2000/XP/2003和Vista操作系统。
下载地址:The Color Picker.exe 2.eyedroppereyedropper是⼀个⾮常⼩巧的屏幕取⾊器,也是帕兰最常⽤的⼀个。
仅仅25KB,取⾊⽐较精准,分别显⽰颜⾊的RGB值、CMYK值和HEX值,还显⽰当前光标的屏幕坐标值。
下载地址:eyedropper.exe3.废客取⾊器取出屏幕上⼀个点的⾊值,分别以VB代码和⽹页代码显⽰⾊值。
下载地址:废客取⾊器4.万能取⾊器万能取⾊器,选取屏幕上⼀切看得见的颜⾊,也可以⾃⼰调配颜⾊,绝对⽅便实⽤,是编写⽹页和程序时选择颜⾊的绝配⼯具。
下载地址:万能取⾊器 V1.5 5.闹猴屏幕取⾊精灵IdealGetcolor(也叫闹猴屏幕取⾊精灵) 1.2 是⼀款⽐较强⼤的屏幕取⾊⼯具,⽽且软件体积也相对⽐较⼩. 操作⽅便、简单易⽤, 很直观!它⽀持多种格式输出, 包括: HTML、RGB、HSL(Win)、HEX、HSV/HSB. 可以⼀次收藏9个或更多的颜⾊,并且能够将每次的收藏的颜⾊保存历史颜⾊⽂件(*.nhc),⽅便您随时选⽤不同的⽅案!“放⼤镜区”,可以使⽤您的取⾊更加便捷、⾼效.可以有不同程度的放⼤( “放⼤3倍”, “放⼤9倍”). 软件有两种取⾊⽅式: 1, ⽤户使⽤⾃定义快捷键(缺省ALT+C)获取⿏标指针所在位置颜⾊2, ⽤户通过拖动\”调⾊盘\”⾊块到指定位置获取颜⾊同时⽤户也可以通过调⾊板的功能修改选取后的颜⾊下载地址: IdealGetcolor V1.26.取⾊精灵(ElfRGB)取⾊精灵专门为⽹页制作、程序界⾯设计⽽编写的⼩软件。
cuptower用户手册
cuptower用户手册CUP-TOWER用户手册CUP-TOWER User MnulZG石油大学(XX)20XX-12序言塔设备是炼油、石化、化工等部门广泛应用的工艺设备,其主要功能是通过汽(或气)液或液液两相的接触,实现物料的提纯和分离,达到流体间传质与传热的目的。
塔器通过壳体和壳体内的内件实现物料分离,具有结构简单、效率高、操作方便和稳定可靠等特点。
蒸馏、汲取、解吸、汽提、萃取等过程一般均在塔设备中进行。
塔设备的设计过程不仅受到具体参数、工艺要求等的制约,还受到设计人员实际经验和研发手段的制约。
传统的设计过程存在对人员要求高、工作量大、效率低、难以保证数据的准确性、信息不能共享等诸多不利因素。
目前常用的设计软件虽然较好地解决了传统设计的缺陷,但仍然存在一些缺点,如平XX老、塔板类型较少、图形化功能较差、人机对话不方便、设计过程中无法干预及通用性不强等。
针对上述问题,我们对各类板式塔、筛板萃取塔、散装填料塔、规整填料塔、和填料萃取塔的设计进行全面分析,通过工程经验与实验总结规律,开发了一种全新的塔设备计算软件CUP-TOWER。
该软件具有设计和校核的功能,支持多种方式的输入、输出,支持负荷性能图和塔板布置图(CD)的自动生成,能够帮助用户直观的分析塔设备的操作情况,具有较高的有用价值。
CUP-TOWER 用户手册目录第1章系统安装和启动(1)1.1 软件环境(1)1.2 使用许可(1)1.3 安装(2)第2章功能概览(3)第3章组件分类介绍(7)3.1 板式塔(7)3.2 筛板萃取塔(15)3.3 规整填料塔(19)3.4 散装填料塔(23)3.5 填料萃取塔(26)第4章其它(31)4.1 软件升级(31)4.2 软件版本和非法破解(31)4.3 联系方式(32)第1章系统安装和启动1.1 软件环境CUP-TOWER 适用于MS Win7/XP/2000/20XX/Vist,每当OS 升级时,如果有兼容性问题,CUP-TOWER 会进行兼容性升级。
NI VISION VB
第一章_NI_Vision_Assistant概述.pdfNI_Vision_Builder_AI入门教程__第二章_配置界面.docNI_Vision_Builder_AI入门教程____第四章_图像增强.docNI_Vision_Builder_AI入门教程__第五章_视觉助手(一).docNI_Vision_Builder_AI入门教程___第六章_视觉助手(2).docNI_Vision_Builder_AI入门教程___第七章_视觉助手3___灰度选板.doc第一章NI Vision Assistant概述NI公司的视觉开发模块是专为开发机器视觉和科学成像应用的工程师及科学家而设计。
该模块包括NI Vision Builder和IMAQ Vision两部分。
NI Vision Builder是一个交互式的开发环境,开发人员无需编程,即能快速完成视觉应用系统的模型建立;IMAQ Vision是一套包含各种图像处理函数的功能库,它将400多种函数集成到LabVIEW和Measurement Studio,LabWindows/CVI,Visual C++及Visual Basic开发环境中,为图像处理提供了完整的开发功能。
NI视觉开发模块供从事开发机器视觉和科学图像应用的科学家、工程师和技术人员使用。
NI视觉开发模块包括NI Vision Assistant--供需要不通过编程就实现将LabVIEW应用快速成型的直观环境;以及IMAQ视觉--拥有强大视觉处理函数的库。
与其它视觉产品不同,NI Vision Assistant和IMAQ视觉的紧密协同工作简化了视觉软件的开发。
NI Vision Assistant 可自动生成LabVIEW程序框图,该程序框图中包含NI Vision Assistant建模时一系列操作的相同功能。
您可以将程序框图集成到自动化或生产测试应用中,用于运动控制、仪器控制和数据采集等。
VB爱好者乐园(VBGood)软件发布区VisualTkinter(使用VB6设计Pyth。。。
VB爱好者乐园(VBGood)软件发布区VisualTkinter(使⽤VB6设计Pyth。
⼀句话介绍:这是⼀个VB6的IDE插件(Addin),使⽤VB6的IDE直接设计Python的界⾯。
Python和VB都是能让⼈快乐的编程语⾔,我使⽤了Python之后,很多⾃⼰使⽤的⼯具都使⽤Python开发或改写了,因为最终实现的Python代码实在太短了,有时候Python⼀⾏代码就可以实现VB⼀个函数的功能。
Python就是这种让⼈越⽤越开⼼的语⾔。
不过说实在,使⽤Python开发GUI界⾯还是⿇烦了⼀些了,⾃带的标准库Tkinter简单是简单,不过对于习惯了VB拖拉控件完成界⾯设计的偶来说,还是不够⼈性化。
⾄于PyQt/wxPython等GUI库,尽管有可视化设计⼯具,但总感觉做⼀般的轻量级应⽤是杀鸡⽤⽜⼑,⽽且不够环保,不够低碳,要带⼀个很⼤的库,需要⽬标机器上夜同样安装了PyQt/wxPython,做不了绿⾊软件。
所以最终的结果是我更喜欢Tkinter,⽤起来很简单,绿⾊环保,真正的跨平台,⼀个PY或PYC⽂件到处运⾏。
很多⼈都认为TK的界⾯不够美观,不过导⼊Python⾃带的TTK主题库后,界⾯⾮常Native,不输PyQt/wxPython。
此Addin默认启⽤TTK⽀持,也可选择关闭。
总⽽⾔之,轻量级GUI,TK+TTK⾜够。
使⽤此ADDIN,你可以不⽤写⼀句代码就可以⽣成⼀个完整可运⾏的Python的GUI界⾯,⽀持2.X和3.X。
将压缩包解压到你希望的⽬录,然后执⾏Setup.exe完成注册插件过程,打开VB6就可以⽤了。
在VB窗体上设计完成界⾯后(你可以⼤胆的设置各控件的属性,ADDIN尽量将其翻译为tkinter的控件属性),点⼯具栏上的VisualTkinter(图标为⼀⽚⽻⽑),再点'⽣成代码'按钮,即可⽣成可运⾏的Python代码,可以拷贝⾄剪贴板或保存⾄⽂件。
vb界面美化
2010-11-02 22:45【转】vb界面美化vb界面如何美化一、网上搜索VB皮肤控件,一般为了更加美化都是做异性窗体,用图片做背景,然后去掉窗体边框,设置窗体颜色为透明,这个在这里就不详细说,还要加上拖动无边框窗体的代码,这样就可以了,至于其他按钮也可以用图片代替下面这个图片是我做的仿酷狗播放器,全是由图片构成的二、利用VB做美化界面如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更好,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不好,看看VB是怎么利用别的东西来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name: LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label 控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR =&HE0E0E0 ’正常时Label控件的背景色Private Const LBL_WHEN_MOUSE_MOVE =&HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN =&H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count =0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1 LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor =LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button Then Exit Sub ’如果按钮被按下就退出该过程For Count = 0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor =LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor =LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.BorderStyle = 0End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)DoEventsText1.BorderStyle = 1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByValhwnd As Long) As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus() As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体 Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long’这个该不要俺多介绍了吧Public Const HTCAPTION = 2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN =&HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在ToolSign的 AutoQuit属性的Public Const EXIT_FORCE = 2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE = 1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit = EXIT_CUSTOM.ParentsHWND =hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width = WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library 然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System = New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC, 60, Width, Height, Left, TopSet System = NothingEnd Sub三、能够美化VB6软件界面的软件/s?wd=actskin4下载这个SDK,里面有个控件很不错,三行代码改外观:/u/20090303/02/fb11597e-66af-4f65-adb1-91014add6 89a.html这个SDK带了皮肤编辑器,默认有XP,OFFICE2007,VISTA等几种皮肤,当然也可以自己编辑个性皮可以用皮肤软件,像VBcrazy说的SkinSharp。
vb颜色大全
不用来大全吧,有三原色: Red, Green, Blue就可组合出各种颜色, vb中的六位十六进制的颜色代码从右到左依次是红,绿,蓝,各占两位, 如: &H000000 墨
&H0000FF 红
&H00FF00 绿
&HFF0000 蓝
&HFFFFFF 白
两位十六进制00~FF有256个值,任意组合.
第一种:
打开画图板,颜色里面调出你要的颜色以后,记下红绿蓝的数值
然后vb中用xxx.forecolor(或者backcolor之类)=rgb(红,绿,蓝) 这种办法好处就是很简单不好之处就是不能在设计的时候更改
第二种:
打开画图板,调好颜色以后记下红绿蓝
打开计算器分别翻译成16进制
然后vb中用xxx.forecolor = &H蓝绿红
例如蓝色255 16进制就是FF
红色0 16进制是0
绿色128 16进制是80
然后颜色就是&HFF8000 (0要补齐)
第三种:
打开专业的制图软件(photoshop/fireworks)
直接获取16进制颜色比如说#AABBCC
然后对应的VB中颜色就是&HCCBBAA。
Radmin生成器源码——附详细注释
'====================以上为API函数声明、常数声明及数据类型声明====================
Private Function GetProcessPID(sEXEName As String, Optional ByVal ID As Long = 1) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
dwIndex As Long
uType As Long
uDhcpEnabled As Long
如何把软件制作成免安装软件
通常大多数绿色软件是通过VC或者JAVA建立的,这些程序在打包已经把需要用的DLL文件打包在一起,所以软件开发出来的程序,则需要特定的DLL文件了,如VB6需要用MSVBVM60.DLL、VB6.OLE等,通常这些DLL文件在安装时会安装在WINDOWS下的SYSTEM32目录。
如何把软件变成绿色软件?
其实很简单的 ,利用安装程序释放出的临时文件,就 可以很简单的提取出所谓的 绿色软件。
我们下载某个软件的安装程序,我以TTPlayer(千千静听)为例子,运行安装程序,在出现安装向导界面的时候,它会叫你点下一步,这里我们不要点,打开临时文件目录(这目录看大家自己放在哪了,Windows 2000\ XP\2003的默认地址是 C:\ Documents and Settings\你的用户名\),打开临时文件目录,进入名为 sfx**.tmp的子目录(**为随机字符),找到TTPlayer的主程序,ttplayer.exe(如果安装的是其它软件,找到相应的主程序即可),下面将files目录下的所有文件复制到硬盘的 任意位置并直接运行主程序(既.exe)就可以了!这就是绿色软件了
如果你没有任何工具来搜集对应程序所需要的DLL文件,制作绿色软件有一个比较简单的方法,步聚如下:
首先准备两个WINDOWS操作系统(最好是两台电脑,如果没有的话就用“虚拟主机”这个软件建立一个),一个是新装的1号机,一个是己经有对应DLL文件的2号机。在1号机建一个TEST目录,把你需要制作的那个程序从2号机复制到1号机的TEST目录下,再运行它,一般会提示缺少了DLL文件,你就再把那个DLL文件从2号机复制过来到那个TEST目录,这样直到所有DLL文件都找到,你的绿色软件就制作完成了。
绿色软件制作_批处理教程
现在再回过头来说说“流行的软件中真正纯绿的软件不是很多”。
A、有些功能是非通过写注册表来实现不可,最最常见的就是文件关联、鼠标右键菜单。(呵呵,这种操作可以说,稍熟编程的人都会)。但是很少有个人编写者考虑到别人不用他的程序时,要怎么让使用者方便地复位这些文件关联,方便地清理右键菜单。
B、部分程序编写者喜欢把注册信息放在注册表中。(为什么喜欢?就因为注册表是庞大的参数库,他们以为,要从这样一个大参数库找出他们写入的一个信息是大海捞针。事实上,的确很多朋友是难以找出来的,话又说回来,会者不难,难者不会,在这儿我也不细说了)
winamp绿色版似乎要好一些(本人的感觉),如果你设定了一些文件的关联,如双击*.mp3等文件winamp就会自动打开播放的话,你强行删去winamp所在目录,这部分文件的关联信息也会成为垃圾留在注册表中。
(上面两个只是举例,解决办法很多对电脑熟悉的朋友是会的,在这儿,我们并不讨解决办法,另外,应该说,上面两程序是很规范的东西,它们的这些动作是无可厚非的)
D、只有那些其功能可以不涉及更改系统默认行为的软件才可能在真正意义上做到纯绿。((也许我罗嗦了)系统默认行为包括“文件关联”,“右键菜单”,“控制面版”里的项目,真实或虚拟的硬件驱动以及其它我想不起来或是我也不知道的东西……)。当然了,还要编写者有真正的为使用者着想的精神,有较好的技术。
六、有部分并非纯绿的软件,伪装成纯绿的,在运行过程中向注册表写东西,向关键目录区写东西,甚至更改重要文件。这不是纯绿软件,只能说是伪纯绿。又及,很多网上流行的软件,号称纯绿版,实际上只是一些原版本经过稍许改进等,原软件并不设计为纯绿,在运行过程中还是会写注册表(甚至写关键win目录),也不是严格意义上的纯绿。
4、为什么现在流行的软件中真正纯绿的软件不是很多呢?这个问题很不好回答。在这儿可以非常遗憾的ห้องสมุดไป่ตู้诉大家,有些朋友在网上下载的winrar绿色版、winamp绿色版等等,都不是真正意义上的纯绿软件。
cad中如何使用vba
第一课:入门1.为什么要写这个教程市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。
其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。
2.什么是Autocad VBA?VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。
3、VBA有多难?相信大家都知道Basic是的含义。
应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。
4、怎样学习VBA?介绍大家一个学习公式:信心+恒心=开心。
仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。
本教程将陆续发布在CAD世界论坛上,您不需要付费就可以学习。
本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。
我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。
5、现在我们开始编写第一个程序:画一百个同心圆第一步:复制下面的红色代码第二步:在模型空间按快捷键Alt+F8,出现宏窗口第三步:在宏名称中填写C100,点“创建”、“确定”第四步:在Sub c100()和End Sub之间粘贴代码第五步:回到模型空间,再次按Alt+F8,点击“运行”Sub c100()Dim cc(0 To 2) As Double '声明坐标变量cc(0) = 1000 '定义圆心座标cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 '开始循环Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆Next iEnd Sub也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。
VB编程实现XP风格之终结篇
VB编程实现XP风格之终结篇(本文发表于《软件报》2006年第17期)网上讨论编程实现XP风格已经很久了,但对于VB编程实现XP风格,却终没有一个完美的解决方案。
笔者通过N个日夜的刻苦钻研终于揭开其中奥秘。
下面分为三个方面与大家共享之。
一.用manifest文件实现XP风格正常情况下,在Windows XP系统中,用VB6开发的应用程序只有窗口标题条具备XP风格,窗体上的按钮、文本框等控件仍然显示Windows传统风格。
如图1所示:通过查阅MSDN里的Visual Style章节知道,Windows XP通过Comctl32.dll(版本6)来加载具备XP风格的组件,应用程序则通过一个XML资源文件来通知系统来做这些。
XML文件的内容如下:<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?> <assembly xmlns=”urn:schemas-microsoft-com:asm.v1″manifestVersion=”1.0″> <assemblyIdentity name=”XP style manifest” processorArchitecture=”x86″ version=”1.0.0.0″ type=”win32″/> <dependency> <dependentAssembly> <assemblyIdentity type=”win32″ name=”mon-Controls” version=”6.0.0.0″ processorArchitecture=”x86″ publicKeyToken=”6595b64144ccf1df” language=”*” /> </dependentAssembly> </dependency> </assembly>假设你最终编译的程序名是abc.exe,工作目录是d:\vbxp。
《VB程序设计》实例教学
259教法研究2020年第10期作为一名计算机科学与技术本科毕业的学生,对于程序设计的学习深有体会。
大学的程序设计教学,老师总是会一开始就给你讲枯燥乏味、长篇累牍的数据类型、运算符、表达式等,往往一下子就把部分学生的学习热情浇灭了,学习的兴趣没了,接下去更复杂的程序结构、数组、函数、数据结构……,更是越学越糟糕。
对于所有的学习,兴趣才是首要,也是最重要的。
新课程明确了计算思维是计算机科学技术的核心,本文结合自己在《VB程序设计》实例教学中的一些作法,和大家一起来交流探讨。
1 趣味实例,兴趣盎然VB作为一个可视化的编程工具,比C++和其他的一些纯代码界面的程序设计软件,我认为对于初学程序设计的学生来说,还是比较容易上手的。
但可视化如果不能启发兴趣,学生可能还是无法喜欢并学好。
因为可视化毕竟大部分程序的实现还是需要写代码。
启发学生的学习兴趣就显得尤其重要。
在第一节课,我就给学生展示了一个VB程序制作的简易计算器,并把这个“计算器”软件发给学生自己体检,学生都很好奇激动。
问学生想不想自己也能做出一个计算器呢?学生的回答都很肯定,也很有激情。
VB最大的特点也就是它友好的窗体界面,要学好VB,首先就是来认识窗体,认识窗体不能像讲word那样,介绍各窗体工具栏的名称。
我就通过实例让学生明白窗体的作用、工具栏的作用等。
比如用一个简单的窗体输出实例,一行的代码,简单易上手,让学生明白两个知识点,窗体的作用可以显示,窗体的输出命令是“print”。
2 控件知识,融会贯通VB的控件对于程序的实现有很大的作用,各控件的作用各不相同,如果纯理论讲解,命令按钮是实现鼠标点击(Click)事件,学生也是听得云里雾里。
给学生讲一个程序,按下命令按钮实现改变窗体的大小,让学生体会,原来命令按钮就像一个开关,按下这个开关,就能让程序实现我想要做的事情——改变窗体大小。
文本框的作用,我用了最经典的简单加法计算器来讲解,拖出五个文本框和一个命令按钮,其中两个个文本框用来输入加数,两个用来显示加号和等号,按下命令按钮后,在和的文本框中得到并显示结果。
VAB教程
目录0、序言 (1)VBA教程1:基本编程元素 (5)VBA教程2:对象 (11)VBA教程3:开始编写完整的程序 (18)VBA教程4:操作文件 (22)VBA教程5:事件 (34)VBA教程6:用户窗体 (37)VBA教程7:根据Excel数据制作展示PPT (41)VBA教程8:提取Word中未样式化的标题 (51)VBA教程9:操纵数据库 (55)VBA教程10:操作Windows API (61)0、序言某圣贤说过,人和动物的最大之不同在于人知道怎么利用工具。
VBA就是一种工具,一种可以创造工具的工具。
VBA提供了给你充分的自由,做几乎任何其他编程语言或者环境能做的事情,避免重复的手动劳动。
当然,有太多人对编程充满了敬畏,认为编程是类似周小川做金融决策,或者爱因斯坦在思考问题那样很玄幻、难以理解的事情,更不用说运用了。
但其实,这更多的是误解(我觉得这些误解源自于国内的编程教科书上那些高深莫测的概念和诘屈聱牙的讲解)。
事实上,20多年来编程正朝着越来越人性化,越来越容易学的方向发展。
VBA,确切的说是VB(我在下面会解释这个微妙的差别)是众多语言中最容易学的,正如其名字一样,又”Visual”,又”Basic”。
所以大可不必担心诸如“我没有编程基础”之类的心理障碍。
VBA的全称是Visual Basic for Applications的简称。
其意思是开发环境被整合到了某个应用程序的Visual Basic语言。
在本教程中特指整合在MS Office中的VBA。
(其余的还有比如VBA for AutoCAD, VBA for CorelDraw)我简单的将一门编程语言分为两个大的部分,第一部分是其语法。
语法规定了编程指令执行的顺序和内存的使用方式。
尽管如此,语法本身不能解决任何实际的问题,这就好比你知道了英语语法,但是不懂单词和短语,就不能正确沟通一样;另一个部分我称之为“库”,就是其他人写好了的,可以完成一定功能的东西。
绿色软件制作
2“绿化”。对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲述。
3 测试。”绿化“后的测试最好到你个全新安装的操作系统中测试,而且如果你要在多个操作系统中使用这个软件的话,还要在其他的操作系统中测试,有的软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行”绿化“过程,最后综合为一个完整的适应多个操作平台的绿色软件。
3 反编译安装程序。这个方法需要动脑筋,就是根据安装程序所用的制作工具,选择相应的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多使用专门的安装工具制作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。当然专门的安装工具很多,有许多安装程序没有相应的反编译程序,这种时候,就无法使用这个方法了。
2 安装然后卸载。也是比较容易的方法,完全是体力劳动,就是指直接安装这个软件,然后把程序复制出来,最后卸载安装程序。如果这个软件的安装程序的作用仅仅是复制文件和生成快捷键等工作,那么就属于绿色安装,可以使用这个方法。最后测试软件的功能是否正常,如果功能正常,那么“绿化”就成功了,如果使用不正常,那么就换别的方法。
如果你没有任何工具来搜集对应程序所需要的DLL文件,制作绿色软件有一个比较简单的方法,步聚如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用VB编写绿色软件我认为的绿色软件就是免安装,短小精干的软件,目前的大部分共享软件都属于此类(或向绿色软件靠拢)。
连比较大的phoshop软件也把一些注册项放到一个专门的注册文件(reg文件)里,到时重装的操作系统,只需把reg文件导入的注册表即可。
此外比如金山软件,基本上都是不用安装,即可运行。
目前绝大部分的共享软件都是用delphi做的,虽然它的pascal语法让人别扭,可大家还是坚持用,最好的理由就是,它做绿色软件很方便,一个Exe文件基本上什么都搞定了。
用VC做共享软件吧,如果是基于API开发(非MFC)总是有点杀鸡焉用牛刀的感觉(目前的机器配置都比较高,共享软件一般都是应用方面的小程序,不像服务器,对性能要求那么高,再说,用VC开发,周期也相对较长)。
MFC虽然开发相对比较快速,但是也存在一个运行库问题,做成动态链接吧,windows 9X系列的用户无法使用,编译成静态链接吧,软件尺寸一下扩充了1M多,在网络带宽还不富裕的情况下,还是少用为妙。
用VB做绿色软件,也有很多这方面的介绍,不过一个稍微复杂的程序,也带上好多嫁妆:vb运行库,ocx控件等等,如果软件中还使用了数据库(如ADO,DAO等),那能不能做成绿色软件还是个未知数。
不过VB易上手,开发软件较为快速,如果API技术掌握的较好的话,大部分软件都可以较好的实现。
如果用VB做共享软件,开发即轻松,又可以增加额外收入,何乐而不为呢?可是上面所说的问题该如何解决呢?结合我的体会和开发了部分绿色软件的基础上我谈谈我的看法,不当之处,请方家斧正。
第一、针对运行库的问题可以这样解决。
目前大部分的用户都是Win2000、XP平台,而win2000以上的平台微软已为我们把运行库添加到系统目录了。
(关于这一点,delphi用户很不满,认为这是不公平竞争,VB的运行库、MFC的运行库都集成到系统了,这样delphi至少在软件大小上已远远的落后VB 和MFC开发的软件了),所以这部分用户不用考虑运行库的问题,对9x系列的用户,可以把VB运行库放在网上,需要的话让用户直接从网上下载。
如果你觉得不介意软件尺寸的话,也可以把运行库和你的软件一起发布(直接把运行库放到当前软件的同一目录即可)。
目前虽说微软不支持VB了,但是只要Windows的后续版本照样集成VB运行库,用VB开发共享软件还是大有前景的(微软上百兆.net平台都敢集成,更何况区区1.25M的VB运行库呢?我对此乐观:)第二、如果用VB开发共享软件,我建议仅用VB的基本控件,此外不要用DAO,ADO等数据库操作控件(或引用),如果操作数据,我建议自己定义数据库格式(可以仿照dBase等数据库格式),在数据量不算大的情况下(比如1万条记录以下),完全可以这样做,目前的用户机器都比较高档,没必要考虑太多的性能问题。
这样的话仅需要运行库即可运行VB程序,在Win2000以上系统,直接就可以运行。
第三、软件界面为了美观,直接用image控件贴图即可,这种方式我一直爱用。
对多语言版本,可以采用读取ini文件方式,也可以直接读取VC编译的纯资源文件。
第四、软件开发完毕后,最好用exe压缩软件压缩一下,这样有两个好处,一是对被人破解加了一个障碍,二是,软件尺寸大大减小,利于发布。
第五、至于加密,那是仁者见仁,智者见智的事了,这里我就没必要多谈了。
随着计算机的不断发展,操作系统的不断更新,硬盘容量、内存容量及相应的存取速度不断提高,使得开发出来的应用程序不再只是单一的可执行文件,特别是Windows应用程序,微软在Windows中引入了一个非常好但管理不方便的新东西──动态链接库DLL。
这样开发出来的应用程序本身变小了,可相应辅佐运行的DLL文件变多了,而且在Windows中开发的程序,特别是用VB开发的程序往往要用到第三方控件OCX。
这样,开发出来的程序就不容易管理,而且Windows应用程序一般都需要安装。
而卸载往往又不彻底,常常会保留一些所谓的共享文件。
安装一个、两个这样的程序倒无妨,安装多了Windows 的系统文件夹就会急剧膨胀。
绿色软件就是在这种情况下诞生的,它的特点是程序不用安装,拷贝或解压到一个目录下就可以运行,卸载只要删除整个目录就OK了。
下面我们来谈谈怎样用VB 6.0编写一个绿色软件。
首先,用VB编写好应用程序。
需注意的是,一些用不着的第三方控件最好不要保留在工程中,这样开发出来的程序相对较小,并生成EXE文件。
其次,程序编好后,退出开发环境,启动VB 6.0中文版工具──Package & Deployment向导。
用向导将应用程序打包。
完成后用Winzip 8.0或其他能打开并能解压CAB文件的压缩工具打开安装目录下的SETUP.CAB,并解压到一个临时目录,删除St6unst.exe和Setup1.exe文件(特别注意Msvbvm60.dll和Asycfilt.dll必须带上,否则程序无法运行)。
再次,将应用程序本身要调用到的下级目录一起拷贝到这个临时目录中。
如没有则跳过这一步。
最后,将这个临时目录中的文件整理一下。
如果你认为这些文件大了些,你可以用ASPACK或其他一些可执行文件压缩工具将这个目录中的可执行文件、DLL文件、OCX文件压缩一下,用VB编写的程序一般经压缩后大小只有原来的30%。
如果运行稳定就可以将BAK文件删除,不行则恢复到原来的面貌。
现在你可以将这个目录改成你所需的名字,打包就可以发行了。
它能在没安装VB的机器中正常运行,怎么样,去Try一下吧,自己也来开发绿色软件。
运行环境:Windows98、Visual Basic6.0 中文版(Visual Basic5.0原理基本相同)、Aspack (可选)。
之三:现在非常流行“绿色”软件,不需要什么安装程序只要一个EXE 文件就可以运行程序了,而在VB 的编程中有许多地方需要调用第三方的控件(很难用API 函数搞定所有的功能),这就需要制做一个安装程序,把所需要的控件、DLL 文件或其他文件打包进去了,那么在VB 中怎么用变通的方法实现“绿色”软件呢,请看示例:1、主程序.EXE用VB6.0 编写的程序,调用了Winsock 控件,如果在没有安装VB5.0、6.0 的机器上运行则会出现错误,导致程序运行失败,这时如果按一般的方法,只有把这个程序用VB5.0、6.0 的安装程序进行打包,不然只有用用2的方法来解决了。
2、注册程序.EXE用VB6.0 编写的程序,使用资源文件的方法,把Winsock 控件封装到本程序中,在运行主程序.EXE之前,先运行本程序,通过API函数GetSystemDirectory取得系统的Winddows\System的目录,然后把Winsock控件复制到该目录下,并用Shell来完成控件的注册。
⑴启动VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”⑵在VB 资源编辑器窗口中,点击“添加自定义资料”,增加Winsock 控件(C:\Winddows\System\nsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:类型:“OCX”标识号:101语言:中文(中国)⑶保存资源文件,写如下代码:Option ExplicitPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA"(ByVal lpBuffer As String, ByVal nSize As Long) As LongConst MAX_PATH = 260 注释:定义足够长的字符串Private Sub Form_Load()Dim TempFile() As ByteDim FileNum As IntegerDim TempDir As StringTempDir = GetWinSysDir 注释:自定义函数取得系统的Winddows\System 的目录TempFile = LoadResData(101, "OCX") 注释:用以从资源(.res) 文件装载若干可能类型的数据,并返回一个Byte 数组FileNum = FreeFileOpen TempDir & "\nsck.ocx" For Binary Access Write As #FileNum 注释:新建文件(把Winsock 控件复制到指定目录下)Put #FileNum, , TempFileClose #FileNum注释:Shell "regsvr32 " & TempDir & "\nsck.ocx ", vbNormalFocus 注释:注册控件,有弹出对话框Shell "regsvr32 " & TempDir & "\nsck.ocx /s", vbNormalFocus 注释:注册控件,无弹出对话框MsgBox "注册成功,现在本程序可正常运行了!!", vbOKOnly, "注册控件"Unload MeEnd SubPublic Function GetWinSysDir() 注释:定义读取Winddows\System 的所在目录的函数Dim S As String, Length As LongS = String(MAX_PATH, 0) 注释:赋值Length = GetSystemDirectory(S, MAX_PATH) 注释:S为取得目录,MAX_PATH 为长度S = Left(S, InStr(S, Chr(0)) - 1) 注释:去掉多余的空格GetWinSysDir = SEnd Function注释:补充:S 和MAX_PATH 的值是可以随便赋的,注释:如: Dim S As String * 20注释:Length = GetSystemDirectory(S, 20)3、补充说明在用VB6.0 保存上述两个程序后,请再使用VB5.0 重新打开这两个程序,并编译为主程序.EXE、注册文件.EXE。
(用VB5.0 编译的程序,在Win98、2000 下不需要任何DLL 文件)4、程序运行将主程序.EXE、注册文件.EXE两个文件,复制到任意机器上,先运行注册文件.EXE注册第三方的控件,再运行主程序.EXE,就不会有任何的错误了,一个变通的“绿色”软件就完成了。