二、判断
Windows的安装路径
在我们开发的软件中,有时会直接调用 Windows提供的小应用程序,如计算器、计事本等;或需要把一些特殊的文件放到 Windows或SYSTEM的路径下。通常, Windows都安装在C:\ WINDOWS目录下,但用户可以任意修改 Windows的主目录名,因此,在我们的软件中,就需要判断 Windows的安装路径。
对于这个问题, Windows提供了两个API函数:
Get WindowsDirectory和GetSystemDirectory,可以返回 Windows目录和SYSTEM目录的名称。
为此,编制一个通用函数GetWinDir,它返回 Windows的安装目录名称。类似,可以写出GetSysDir,略。
在*.BAS模块文件中声明API函数
Declare Function Get WindowsDirectory Lib "Kernel" (ByVal IpBuffer As S tring,ByV al nSize As Integer) as IntegerFunction GetWinDir () As String Dim Windir$ Windir$=Space$(144)‘144是 WINDOWS目录名称理论上的最大长度。
lf Get WindowsDirectory(Windir$,144)=0Then MsgBox"不能确定 WINDOWS的安装路径",16 GetWinDir="" Else Windir$=ALLTrim$(Windir$)
if Right$(Windir$,1)<>“”then Windir$=Windir$+“”‘加上反斜杠GetWinDir=Windir$ End lf End Function其中ALLTRIM是用来去掉字符串中空字符的函数FunctionALLTrim(FatStr$)AsString' this Function delete Space char in string of FatStr$
Dim SlimStr$,I%
SlimStr$=FatStr$ I%=lnStr(SlimStr$,Chr$(0))‘空格的位置IfI%
Then SlimStr$=Left$(SlimStr$,I%-1) SlimStr$=LTrim$(RTrim$)(SlimStr$))
AIITrim$=SlimStr$ End Function
三?在关掉窗体前提示保存数
据一般说来,通常用5种方式可以关闭一个应用程序:
1.用户选择了当前窗体Control Box中的[关闭]命令2.激发程序中的结束命令代码(如End,Unload) 3.退出 Windows 4.在 Windows的任务列表中关闭应用程序。
2.多文档操作时,关闭主MDI窗体,引起子MDI窗体关闭。在关闭一个应用程序前,我们要给用户一个机会,提示“是否保存数据”,或者取消“关闭”的操作。在VB中,窗体的关闭引发的是Form_Unload事件,我们可以对该事件进行编程,来控制“关闭”操作。假设现已有一个过程FileS ave用来保存文件,则可以这样来编写程序。
Sub Form_Unload(CancelAs lnteger) select cast Msagbox (“是否保存数据?”,3+32)
‘Yes,No,Cnacel三种选择case 6‘YES FileSave‘保存数据case2‘cancel Cancel=TRUE‘取消关闭操作case else‘NO‘不保存,执行关闭操作End select End Sub上面代码中的Cancel变量,是Form_unload事件本身的固有传出变量,它给 Windows控制过程传递消息,从而控制程序的走向。
上面三个例子,只是软件完善过程中的一些小问题,要使软件稳定可靠,需要做大量细致认真的工作。有些问题,我们可以通过发掘VB本身的潜力,深入掌握一些过程的操作技巧来解决;而有些较复杂的问题,涉及到Window s底层方面的操作,采用 Windows的API函数,可以很容易实现。当然这需要对 Windows的函数和机理有一定的了解。随着 Windows编程水平的提高,我们会逐渐学会并喜欢利用A PI函数来辅助完成程序编码。[@more@]
在我们开发的软件中,有时会直接调用 Windows提供的小应用程序,如计算器、计事本等;或需要把一些特殊的文件放到 Windows或SYSTEM的路径下。通常, Windows都安装在C:\ WINDOWS目录下,但用户可以任意修改 Windows的主目录名,因此,在我们的软件中,就需要判断 Windows的安装路径。
对于这个问题, Windows提供了两个API函数:
Get WindowsDirectory和GetSystemDirectory,可以返回 Windows目录和SYSTEM目录的名称。
为此,编制一个通用函数GetWinDir,它返回 Windows的安装目录名称。类似,可以写出GetSysDir,略。
在*.BAS模块文件中声明API函数
Declare Function Get WindowsDirectory Lib "Kernel" (ByVal IpBuffer As S tring,ByV al nSize As Integer) as IntegerFunction GetWinDir () As String Dim Windir$ Windir$=Space$(144)‘144是 WINDOWS目录名称理论上的最大长度。
lf Get WindowsDirectory(Windir$,144)=0Then MsgBox"不能确定 WINDOWS的安装路径",16 GetWinDir="" Else Windir$=ALLTrim$(Windir$)
if Right$(Windir$,1)<>“”then Windir$=Windir$+“”‘加上反斜杠GetWinDir=Windir$ End lf End Function其中ALLTRIM是用来去掉字符串中空字符的函数FunctionALLTrim(FatStr$)AsString' this Function delete Space char in string of FatStr$
Dim SlimStr$,I%
SlimStr$=FatStr$ I%=lnStr(SlimStr$,Chr$(0))‘空格的位置IfI%
Then SlimStr$=Left$(SlimStr$,I%-1) SlimStr$=LTrim$(RTrim$)(SlimStr$))
AIITrim$=SlimStr$ End Function
三?在关掉窗体前提示保存数
据一般说来,通常用5种方式可以关闭一个应用程序:
1.用户选择了当前窗体Control Box中的[关闭]命令2.激发程序中的结束命令代码(如End,Unload) 3.退出 Windows 4.在 Windows的任务列表中关闭应用程序。
2.多文档操作时,关闭主MDI窗体,引起子MDI窗体关闭。在关闭一个应用程序前,我们要给用户一个机会,提示“是否保存数据”,或者取消“关闭”的操作。在VB中,窗体的关闭引发的是Form_Unload事件,我们可以对该事件进行编程,来控制“关闭”操作。假设现已有一个过程FileS ave用来保存文件,则可以这样来编写程序。
Sub Form_Unload(CancelAs lnteger) select cast Msagbox (“是否保存数据?”,3+32)
‘Yes,No,Cnacel三种选择case 6‘YES FileSave‘保存数据case2‘cancel Cancel=TRUE‘取消关闭操作case else‘NO‘不保存,执行关闭操作End select End Sub上面代码中的Cancel变量,是Form_unload事件本身的固有传出变量,它给 Windows控制过程传递消息,从而控制程序的走向。
上面三个例子,只是软件完善过程中的一些小问题,要使软件稳定可靠,需要做大量细致认真的工作。有些问题,我们可以通过发掘VB本身的潜力,深入掌握一些过程的操作技巧来解决;而有些较复杂的问题,涉及到Window s底层方面的操作,采用 Windows的API函数,可以很容易实现。当然这需要对 Windows的函数和机理有一定的了解。随着 Windows编程水平的提高,我们会逐渐学会并喜欢利用A PI函数来辅助完成程序编码。[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-925195/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8781179/viewspace-925195/