|
|
|
VB问题全功略(39) |
[上一页](39)[下一页] |
191、一个快速注册 DLL
及 OCX 的方法 192、如何在程序中设定打印机的打印方向? 193、如何更改在 VB
编辑环境中文件存取的预设路径? 194、如何抓出
Access 的 Table 栏位中的【叙述】部份呢? 195、如何叫出 IP
组态视窗?
191、一个快速注册 DLL 及 OCX 的方法
有时候我们在 VB 中要引用某一个 DLL 或 OCX
时,会出现文件未注册的讯息,这时,我们可以使用人工注册的方法,也就是直接在命令列中使用 regsvr32.exe
来做,做法如下:
文件注册:C:\Windows\System\Regsvr32.exe
C:\Windows\System\Test.ocx 取消注册:C:\Windows\System\Regsvr32.exe /u
C:\Windows\System\Test.ocx
这些动作我们也可以直接写到程序中,使用 Shell
来执行,但是我现在要说的,都不是上面提到的方法!
注意看罗!方法如下:
1、在资源管理器中找到
C:\Windows\System\Regsvr32.exe 并【复制】 ( 按鼠标右键选复制 ) 2、将目录移到
C:\Windows\SendTo 后,执行【贴上快捷方式】 ( 按鼠标右键选贴上快捷方式
) 3、将快捷方式名称改成【REGISTER】 4、OK
现在,如果您想替某一个文件做注册动作,例如:C:\Windows\System\Test.ocx,您只要打开资源管理器,找到
C:\Windows\System\Test.ocx,按鼠标右键选【传送到】【REGISTER】即可完成注册动作了!
注:有一个地方要注意的是,Regsvr32.exe
只能注册 32 位的文件!如果要用它来注册 16 位的文件,会有错误讯息产生。
192、如何在程序中设定打印机的打印方向?
当您在使用
VB6 中的 DataReport
时,有没有遇到过一种情形:系统设定的打印机打印方向预设是直印,而您的报表却是横式的,但是您却无法更改印表机的打印方向,除非您到控制台的打印机中去更改预设为横印!
如果您不希望使用者自行去更改打印机的设定,您就必须在程序中帮他设定好,以下的模组文件
Orient.bas 就是用来设定打印机的直印或横印的,说明如下:
Sub
ChngPrinterOrientationLandscape(ByVal frm As Form):设定为直印 Sub
ChngPrinterOrientationPortrait(ByVal frm As
Form):设定为横印
在程序中使用方式如下:
1、设定为直印:ChngPrinterOrientationPortrait
Me 2、设定为横印:ChngPrinterOrientationLandscape Me
193、如何更改在 VB 编辑环境中文件存取的预设路径?
我开发系统时,会将所有系统的原始程序码存放在固定的目录下,例如
c:\work,而各系统的目录就是:
人事系统:c:\work\employee 会计系统:c:\work\account 销售系统:c:\work\sale
所以我会希望在
VB 的编辑环境中,每次做开档、存档时的预设路径是 c:\work,但是 VB
预设的路径却不是如此,通常预设路径就是系统安装的路径,如下:〈指安装时不异动预设路径时〉
VB版本
预设开档、存档的预设路径 VB3: C:\VB VB4-16: C:\VB4 VB4-32:
C:\Program Files\Microsoft Visual Basic VB5: C:\Program
Files\DevStudio\VB VB6: C:\Program Files\Microsoft Visual
Studio\VB98
通常我们都不会直接将文件存在这些目录下,但是您每次开档、存档它总是停在那儿,然后您才开始重新更改目录到您要的路径上,才能存档或开档,这让人有点厌烦,如果您要让预设路径停在某一个您指定的路径,例如
c:\work,作法如下:
1.找到启动 VB 的快捷方式,可能在【开始】【程序集】中或在桌面上!
(注一) 2.在快捷方式上按鼠标右键,选【内容】,出现内容问话框。 3.选择第二个页签,就是【快捷方式】页签。 4.将【开始位置】栏之路径改成您要的路径,就
OK 了!
更改完毕之后,下一次您在 VB
编辑环境中,要做开档、存档时的预设路径就是您自己设定的路径了!
注一:找到启动 VB
的快捷方式档的方法如下: 1.如果快捷方式在桌面上,您直接做以上的 4
个动作即可。 2.如果快捷方式是在【开始】【程序集】中,则它们的位置是在 c:\windows\Start Menu
之中。(注二)
注二:要找 c:\windows\Start Menu 之中的快捷方式,有二个方法: 1.直接由资源管理器找到
c:\windows\Start Menu
的目录,再找寻快捷方式。 2.在任务栏上空白处按鼠标右键,选【属性】,出现【任务栏属性】问话框。选择【开始菜单栏】页签,按下【进阶】按钮,会出现【资源管理器--Start
Menu】,就可以找到快捷方式档了。
194、如何抓出 Access 的 Table 栏位中的【叙述】部份呢?
不知道大家是否使用过 Microsoft Office 的 Access 来打印过 Access 资料库的文件架构?也就是 Access
的【文件产生器】。如果您没有使用过,现在可以试看看!在 Access 的 Menu
中选择【工具】【分析】【文件产生器】,稍待一会儿就会出现【文件产生器】视窗。
将资料库文件架构印出来,可以方便我们在程序设计时对于资料库的存取,及资料库栏位的比对。不过
Access
虽然有中文版,但是它终究是国外的人开发的产品,我在使用时,就一直有个麻烦,那就是在简式打印时,它对于每一个栏位,只会打印出栏位名称、资料类型及栏位大小。
(缺【叙述】的中文说明)
如果您在设计 Table
时,使用中文为栏位名称,那就没有问题,每一个栏位,只要打印出栏位名称、资料类型及栏位大小就够了,不过据我所知,由于习惯及其他因素(例如: 和其他不同类型的资料库做转移,像
Oracle/SQLServer),许多人还是使用英文来命名栏位,然后在【叙述】中输入中文说明,那样的话【文件产生器】产生的文件就有点不符合 求了,因为它不会印出【叙述】的中文部份!
既然【文件产生器】不太符合某些人的实际需求,而又不想自己做文件,那就只能自己写程序来做了!要如何抓出
Access 的 Table 栏位中的【叙述】部份呢?
以下是一个实际范例,您只要在 Form 中放一个 CommandButton
(Command1) 即可:
Dim db As Database
'以下 Function 要二个参数,sTable
是 Table 名称,sField 是栏位名称 Function Getdescription(sTable As String,
sField As String) As String Dim Sna As Recordset Dim i As
Integer Dim existDescr As Boolean
Set Sna =
db.OpenRecordset(sTable, dbOpenTable) existDescr = False For i = 0
To Sna(sField).Properties.Count - 1 If Sna(sField).Properties(i).Name =
"Description" Then existDescr = True: Exit For End
If Next
If existDescr Then Getdescription =
Sna(sField).Properties("Description") Else Getdescription =
"" End If End Function
Private Sub Command1_Click() Dim x
As String MsgBox Getdescription("AABLE_L", "AABLE_LNO") End
Sub
Private Sub Form_Load() Set db =
opendatabase("c:\hris\ability.mdb") '资料库 End Sub
195、如何叫出 IP 组态视窗?
有人会说,这些资料直接进到【控制面板】的【网路】不是就可以看到了吗?没错,都可以看得到,但是很多公司在替使用者做完网路设定之后,怕使用者进去乱改,造成内部网路连线的问题,都会将控制面板中的部份项目锁定或移除
(使用 System Policy
Editor)!其实也不要乱改,不知道各位有没有发现?每次您进到【控制面板】的【网路】中去看一些设定之后,您若按下【确定】按钮,即使您没有更改任何东西,Win95/98
也会重新安装驱动程序,它会要求您放入光碟,这样子有时候就会造成问题!所以每次我看完网路设定之后,总是按【取消】按钮来退出控制面板!
其实
Windows 还有提供一支程序可以让我们看到这些配接卡、网路卡的 IP 设定!那就是
WINIPCFG.EXE。所以只要以下的程序码就可以了:
Private Sub Command1_Click() Shell
"c:\WINDOWS\WINIPCFG.EXE", 1 End
Sub |
|