网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.字符串中包含双引号.
.用VB开发应用程序如何使用INI文件.
.如何访问文本文件(2)----用Micro.
.标量变量和数组变量.
.让用户自行输入方程式,并计算其.
.应用VB4.0实现工业控制的实时曲线.
.利用IE控件访问Internet.
.如何取得中英混合字符串的长度.
.StatusBar显示数据库的属性.
.用VB尝试新的界面风格.
.用VB在AutoCADR14中写Text的方法.
.函数名巧做局部变量.
.VisualBasic属性、方法和事件一.
.操作VB中的无边框窗体.
.递归过程在VB中的应用实例.
.如何自动移动Mouse.
.用VB编写入侵监听程序(下).
.按下某组键(HotKey)便执行某程式.
.VisualBasic产生渐层的Form背景.
.用VB进行移位操作.

API函数在VB开发中的应用

发表日期:2006-2-27


VB作为快速开发Windows下的编程工具,已经为越来越多的开发者采用。但如果要开发出专业的Windows软件,还需采用大量的API函数,以下结合笔者开发管理软件的经验谈几点体会。
  程序中判定Windows的版本
  众所周知,Windows3.x各版本或多或少会有些差别,为了使开发程序避免出现莫名其妙的错误,最好在程序运行前自动判定Windows的版本。采用API提供的函数getversion很容易实现这一点。函数声明如下:
DeclareFunctionGetVersionLib"Kernel"()AsInteger
  此函数没有参数,返回值为Windows的版本号,其中版本号的低位字节为Windows的主版本号,版本号的高位字节返回Windows的次版本号。判别过程如下:
PrivateSubForm_Load()
DimverAsInteger
DimmajorAsInteger
DimminorAsInteger
Ver=GetVersion()
major=verAnd&HFF
minor=(verAnd&HFF00)\256
Ifmajor<>3Andminor<>10Then
MsgBox"版本不正确!"
ExitSub
EndIf
EndSub
  程序中判断Windows的安装目录
  一般VB开发出来的程序包含vbrun300.dll等辅助文件和.vbx文件,它们均需安装到Windows目录(c:\windows)或Windows的系统目录(c:\windows\system)下,但因为用户安装Windows时可能会改变Windows的目录名(如c:\windows),使用安装软件后,不能正确运行.API中提供的GetwinDowsdirectory或GetSystemDirectory较好地解决了这个问题。函数声明如下:

DeclareFunctionGetSystemDirectoryLib"Kernel"(ByVallpBufferAs
String,ByValnSizeAsInteger)AsInteger

  其中参数lpbuffer为字串变量,将返回实际Windows目录或Windows的系统目录,nsize为lpbuffer的字串变量的大小,函数返回值均为实际目录的长度。检查函数如下:

Functioncheckdir()AsBoolean
DimwindirAsString*200
DimwinsysAsString*200
DimwinlAsInteger
DimwinsAsInteger
Dims1AsString
Dims2AsString
winl=GetWindowsDirectory(windir,200)
winl=GetSystemDirectory(winsys,200)
s1=Mid$(windir,1,winl)
s2=Mid$(winsys,1,wins)
IfWins=0Orwins=0Then
checkdir=False
ExitFunction
EndIf
Ifs1<>"C:\WINDOWS"Ors2<>"C:\WINDOWS\SYSTEM"Then
checkdir=False
ExitFunction
EndIf
checkdir=True
EndFunction

shell出现的问题
  通常编程时要调用外部程序,VB提供了shell()函数,但是如果shell调用的外部程序找不到,则运行的程序失去控制,VB给出提示"filenotfound",改变这种现象,要在程序中加入onerrorgoto,比较麻烦,API函数中的winexec很好地解决了这个问题。函数声明如下:

DeclareFunctionWinExecLib"Kernel"(ByVallpCmdLineAsString,
ByValnCmdShowAsInteger)AsInteger

  其中lpCmdline为调用的外部文件名,NcmdShow为外部程序的运行状态,如隐藏窗口、最小化窗口等等。如返回值大于32表示执行功能,否则返回错误码。例程如下:

subcommand1_click
dsiasinteger
i=winexec("notepad.exe","c:\wst.txt",9)
'参数9即SW_RESTORE,也就是激活并显示窗口
ifi>32then
msgbox"调用正确!!"
else
msgbox"调用错误!!"
endif
endsub->

上一篇:SendMessage函数巧应用 人气:3478
下一篇:用SendMessage函数实现VB程序的查询功能 人气:3020
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐