新建一个标准模块,代码如下
Option Explicit
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function SendMessageA Lib "user32" (ByVal Handle As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindow Lib "user32" (ByVal Handle As Long) As Boolean
Private Declare Sub SetForegroundWindow Lib "user32" (ByVal Handle As Long)
Public Function IniRead(ByVal IniPath As String, ByVal Field As String, ByVal key As String, Optional ByVal DefaultKeyValue As Variant) As String
Dim s As String * 255, s2 As String * 255
GetPrivateProfileString Field, key, DefaultKeyValue, s, 255, IniPath
If s = s2 Then
IniRead = CStr(DefaultKeyValue)
Else
IniRead = Trim(Replace(s, Chr(0), ""))
End If
End Function
Public Function IniWrite(IniPath As String, Field As String, key As String, KeyValue As String) As String
WritePrivateProfileString Field, key, KeyValue, IniPath
End Function
Public Sub Main()
Dim Hwnd As Long
Hwnd = IniRead("d:\vbMainConfig.ini", "hwnd", "hwnd", "0")
If IsWindow(Hwnd) Then
SendMessageA Hwnd, 274, 61728, 0
SetForegroundWindow Hwnd
Else
Form1.Show
End If
End Sub
程序主窗体的 load事件
Private Sub Form_Load()
IniWrite "d:\vbMainConfig.ini", "Hwnd", "Hwnd", CStr(Me.Hwnd)
End Sub
最后,工程-属性-通用-启动对象 设为 Sub Main 编译后运行看看效果
