Hier stelle ich meine "kleine" Sammlung von VB6 Projekten zur Verfügung.
Der Code bassiert i.d.R. auf dem Visual Basic 6 mit SP 6
Weitere Vorschläge und/oder Anregungen nehme ich gerne entgegen.
Ermitteln ob 32- oder 64-Bit Windows (ab Windows XP)
21.11.2010 posted by fwenner
Hier zeige ich Ihnen wie Sie mit einem Call aus der Windows API ermitteln können ob als Betriebssystem 32 Bit oder 64 Bit läuft.
Da VB6 Programme immer mit 32 Bit ausgeführt werden, muss über
GetNativeSystemInfo die nötige Information beschafft werden.
Private Type SYS_INFO
wProcessorArchitecture As Integer
wReserved As Integer
dwPageSize As Long
lpMinimumApplicationAddress As Long
lpMaximumApplicationAddress As Long
dwActiveProcessorMask As Long
dwNumberOfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
wProcessorLevel As Integer
wProcessorRevision As Long
End Type
Private Const PROC_AMD64 As Integer = 9
Private Const PROC_IA64 As Integer = 6
Private Const PROC_INTEL As Integer = 0
Private Const PROC_UNKNOWN As Integer = &HFFFF
Private Declare Sub GetNativeSystemInfo Lib "kernel32.dll" (ByRef lpSystemInfo As SYS_INFO)
Public Enum eArchitecture
Unknown = 0
x86 = 1
x64 = 2
End Enum
Public Function API_GetOSArchitecture() As eArchitecture
On Error GoTo HandleError: API_GetOSArchitecture = Unknown
Dim SysInfo As SYS_INFO
Call GetNativeSystemInfo(SysInfo)
Select Case SysInfo.wProcessorArchitecture
Case PROC_AMD64, PROC_IA64
API_GetOSArchitecture = x64
Case PROC_INTEL
API_GetOSArchitecture = x86
End Select
Exit Function
HandleError:
API_GetOSArchitecture = Unknown
End Function
Monitor in Standby versetzen
11.04.2010 posted by fwenner
Hier wird gezeigt wie man einen Monitor per Windows API in den Standby-Modus versetzen kann.
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND = &H112&
Private Const SC_MONITORPOWER = &HF170&
Private Const MONITOR_ON = -1&
Private Const MONITOR_OFF = 2&
Public Sub Main()
On Error Resume Next
Load Form1
Call SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal MONITOR_OFF)
Unload Form1
DoEvents
End Sub