VB 技巧(3)


获得系统中的所有字体列表
如何关闭一个程序
获得当前用户名
获得Windows启动方式
如何交换鼠标按键
怎样关闭Windows
如何获得Windows95已经运行的时间
翻转一个字符串

[1] [2] [3]

第三页(共三页)

获得系统中的所有字体列表
在Form1中加入一个ListBox,并在Form1中加入如下代码:
Private Sub Form_Load()
Dim counter As Integer

For counter = 0 To Screen.FontCount - 1
List1.AddItem Screen.Fonts(counter)
Next
End Sub

Private Sub List1_Click()
Static tempheight As Single

If tempheight = 0 Then tempheight = List1.Height
List1.Font.Name = List1.List(List1.ListIndex)
List1.Height = tempheight
End Sub

返回
作者

如何关闭一个程序
下面演示如何利用FindWindow函数找到窗口并利用SendMessage函数关闭窗口
在Form1中加入如下代码:
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Const WM_CLOSE = &H10

Private Sub Form_Click()
Dim winHwnd As Long
Dim RetVal As Long

winHwnd = FindWindow(vbNullString, "Form1")
Debug.Print winHwnd

If winHwnd <> 0 Then
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
If RetVal = 0 Then
MsgBox "发送消息错误."
End If
Else
MsgBox "Form1窗口不存在"
End If
End Sub
运行程序,点击Form1,窗口就被关闭

返回
作者

获得当前用户名
在Form1中加入如下代码:
Private Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long

Private Sub Form_Load()
Dim s As String
Dim cnt As Long
Dim dl As Long
Dim CurUser As String

cnt = 199
s = String$(200, 0)
dl = GetUserName(s, cnt)
If dl <> 0 Then CurUser = Left$(s, cnt) Else CurUser = ""
Debug.Print CurUser
End Sub

返回
作者

获得Windows启动方式
在Form1中加入一个CommandButton、一个Label并加入如下代码
Option Explicit

Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long

Const SM_CLEANBOOT = 67

Private Sub Command1_Click()
Select Case GetSystemMetrics(SM_CLEANBOOT)
Case 1: Label1 = "安全模式."
Case 2: Label1 = "支持网络的安全模式."
Case Else: Label1 = "Windows运行在普通模式."
End Select
End Sub
点击Command1就可以看到Windows是以何种方式启动的。

返回
作者

如何交换鼠标按键
在程序中定义如下API函数
Declare Function SwapMouseButton& Lib "user32" _
(ByVal bSwap as long)

要交换鼠标按键,将bSwap参数设置为True。要恢复正常设置,将bSwap设置为False。
然后调用函数就可以交换和恢复鼠标按键了。

返回
作者

怎样关闭Windows
使用ExitWindowsEx函数,函数有两个参数确定如何关闭Windows,其中第二个参数未使用
设置为0

Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Declare Function ExitWindowsEx Lib "user32" Alias _
"ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long

If you wanted to forcefully reboot the computer use the following code:
如果想强制重新启动计算机,函数应该这样使用:
t& = ExitWindowsEx(EWX_FORCE OR EWX_REBOOT, 0)

返回
作者

如何获得Windows95已经运行的时间
要获得Windows95运行的时间,使用以下函数:
Declare Function GetTickCount& Lib "kernel32" ()
函数返回的是以毫秒计算的时间。
在16位Windows下,使用GetCurrentTime 函数。

返回
作者

翻转一个字符串
下面的函数利用递归原理获得字符串的翻转字符串
Function reversestring(revstr As String) As String
' revstr: 要翻转的字符串
' 返回值:翻转后的字符串

Dim doreverse As Long

reversestring = ""
For doreverse = Len(revstr) To 1 Step -1
reversestring = reversestring & Mid$(revstr, doreverse, 1)
Next

End Function

返回
作者

[1] [2] [3]

第三页(共三页)