VB 版 (精华区)

应用程序编制实例之二
四、实例——使用Word for Windows应用程序
下面的实例,演示使用Word,模拟输入“电脑爱好者”的英文和中文。
Private Sub Form_Click()
x = Shell(″c:\msoffice\winword\winword.exe″, 1) '启动
 Word for Windows
SendKeys ″(Computer Fan)″, 1   '模拟输入英文″Computer Fan
SendKeys ″{Enter}″, True       '停留三秒
waittime (3)
SendKeys ″电脑爱好者{Enter}″, 1
waittime (3)
SendKeys ″%″, 1
waittime (2)
SendKeys ″(F)″, 1     '模拟按字母″F″,选择″文件(F)″菜单
waittime (2)
SendKeys ″(X)″, 1     '模拟按″X″选择,″退出″
SendKeys ″(N)″, 1   'WORD弹出一个对话框,询问文件是
    否存盘,模拟按″N″
End
End Sub
Private Sub waittime(xt As Single)
  Dim starttime As Single
  starttime = Timer
  Do Until (Timer - starttime) > xt
Loop
End Sub
总之,演示程序的编制主要是使用Shell、 AppActivate 和SendKeys函数或语句,并且
对应用
程序进行演示时,需全面掌握键盘的输入过程,以便模拟。下面为一演示计算器使用的
演示程
序。读者不妨一试。
Private Sub Form_Click()
x = Shell(″c:\winwords\calc.exe″, 1)  '启动计算器
SendKeys ″(2)″, 1   '模拟输入2
waittime (3)    '停留三秒
SendKeys ″(+)″, 1   '模拟输入″+″
waittime (3)
SendKeys ″(2)″, 1
waittime (2)
SendKeys ″(=)″, 1   '模拟输入″=″
waittime (3)
SendKeys ″4″, 1    '模拟得到结果
waittime (4)
SendKeys ″(F)″, 1     '模拟按字母″F″,选择″文件(F)″菜单
SendKeys ″(X)″, 1     '模拟按″X″,选择″退出″
End
End Sub
五、Windows 初始化文件的修改
Windows应用程序的初始化文件(INI)对应用程序缺省设置起着重要的作用,初始化文件
可以采
用文本编辑器修改,但这种方法容易出现错误,不易由用户操作。下面介绍用VB实现修
改初始
化文件的方法。
1初始化文件的结构与特点
Windows应用程序初始化文件中通常设置应用程序的运行环境,确定应用程序变量的缺省
设置,
初始化文件既包含Windows本身的两个INI文件,也包括应用程序的初始化文件。如:wi
n.ini、
system.ini、ucdos.ini、vb.ini等。
其中,ucdos.ini、 vb.ini分别为希望公司的UCDOS和VB的初始化文件,这些初始化文件
一般
都是由应用程序和关键词构成,文件中内容的格式采用下面的通用格式:
[程序名称]
关键词=取值
例如,在system.ini中有一段内容设置非WINDOWS应用程序的字体,即:
〔Non WindowsApp〕
FontChangeEnable=1
其中,Non WindowsApp为应用程序名,FontChangeEnable为关键词,1为取值。
2与初始化有关的API函数
Windows95中的动态链接库Kernel.exe包含了六个函数,可以对INI文件进行操作,其中
GetPro
fileInt、GetPrivateProfileInt、GetProfileString和GetPrivateString四个函数可以
从INI
文件中基于应用程序名和关键词的行获得信息。WritePrivateProfileString和WritePr
ofileS
tring两个函数可以在INI文件中修改或创建文件中的有关行。
在VB应用程序中应按下面的方式在全局模块中进行声明。
Declare Function GetProfilelnt Lib ″Kernel″ (ByVal lpAppName As String, By
Val lpK
eyName As String, ByVal nDefault As Integer) As Integer
Declare Function GetProfileString Lib ″Kernel″(ByVal lpAppName As String, 
lpKeyNa
me As Any, ByVal lpDefault As String, ByVal lpReturnedsring As String, ByVal
 nSize
As lnteger) As Integer
Declare Function WriteProfileString Lib ″Kernel″(ByVal lpApplicationName A
s Strin
g, lpKeyName As Any, lpString As Any) As lnteger
Declare Function GetPrivateProfilelnt Lib ″Kernel″ (ByVal lpApplicationNam
e As St
ring, ByVal lpKeyName As String, ByVal nDefault As lnteger, Byval lpFileName
 As Str
ing) As lnteger
Declare Function GetPrivateProfileString Lib ″Kernel″(ByVal lpApplicationN
ame As
String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString 
As Stri
ng, ByVal nSize As String, ByVal nSize As Integer, Byval lpFileName As Strin
g) As I
nteger
Declare Function WriteProfileString Lib ″Kernel″ (ByVal lpApplicationName 
As Stri
ng, lpKeyName As Any, lpString As Any) As lnteger
其中:lpApplicationName$为应用程序名称;
  lpKeyName$为关键词;
  nDefault%为关键词指定的缺省值;
  lpFileName$为初始化文件名称;
  lpDefault$为关键词指定的缺省字符串;
  lpReturnString$为接受返回值指定字符的缓冲变量;
      nSize%指定拷贝到缓冲变量的字符个数;
  lpString$为新的关键词指定字符串。
上面的声明可以从VB目录上的winapi中文件win32txt获得,可以通过剪贴板直接拷贝
到VB
中。
3修改初始化文件实例
Windows软件包程序管理器(PROGRAMEXE),初始化文件为PROGRAM.INI,缺省内容为
[Settings]
……
order=6 3 2 4 7 1
……
其中,order指定程序组的排列顺序,下面的程序把Order的值改为“2 3 4 1 7 6 5”,
并使用
SHELL函数启动程序管理器。
Private Sub form_Click()
lpAppName$ = ″Settings″
lpKeyName% = ″Order″
lpString$ = ″2 3 4 1 7 6 5 ″
lpFileName$ = ″progman.ini″
j% = WritePrivateProfileString(lpAppName$, lpKeyName$ =
″Order″, lpString$ = ″2 3 4 1 7 6 5″, lpFileName$)
j% = Shell(″progman.exe″, 1)
End Sub
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.335毫秒