Wenner-Online, XLDev

private Homepage

mcts on sql server 2005 mcp on sql server 2000 1und1
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.

typeErmitteln 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

typeMonitor 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