title image


Smiley Re: Nachtrag
Die API bietet auch was.

Lade Dir mal den API-Guide runter. Link steht im Code.



'In a form (Form1)

Private Sub Form_Load()

'KPD-Team 2000

'URL: http://www.allapi.net/

'E-Mail: KPDTeam@allapi.net

'set the graphics mode of this form to persistent

Me.AutoRedraw = True

'start the enumeration

EnumDisplayMonitors ByVal 0&, ByVal 0&, AddressOf MonitorEnumProc, ByVal 0&

End Sub



'In a module

Public Const MONITORINFOF_PRIMARY = &H1

Public Const MONITOR_DEFAULTTONEAREST = &H2

Public Const MONITOR_DEFAULTTONULL = &H0

Public Const MONITOR_DEFAULTTOPRIMARY = &H1

Public Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Public Type MONITORINFO

cbSize As Long

rcMonitor As RECT

rcWork As RECT

dwFlags As Long

End Type

Public Type POINT

x As Long

y As Long

End Type

Public Declare Function GetMonitorInfo Lib "user32.dll" Alias "GetMonitorInfoA" (ByVal hMonitor As Long, ByRef lpmi As MONITORINFO) As Long

Public Declare Function MonitorFromPoint Lib "user32.dll" (ByVal x As Long, ByVal y As Long, ByVal dwFlags As Long) As Long

Public Declare Function MonitorFromRect Lib "user32.dll" (ByRef lprc As RECT, ByVal dwFlags As Long) As Long

Public Declare Function MonitorFromWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal dwFlags As Long) As Long

Public Declare Function EnumDisplayMonitors Lib "user32.dll" (ByVal hdc As Long, ByRef lprcClip As Any, ByVal lpfnEnum As Long, ByVal dwData As Long) As Long

Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Public Function MonitorEnumProc(ByVal hMonitor As Long, ByVal hdcMonitor As Long, lprcMonitor As RECT, ByVal dwData As Long) As Long

Dim MI As MONITORINFO, R As RECT

Debug.Print "Moitor handle: " + CStr(hMonitor)

'initialize the MONITORINFO structure

MI.cbSize = Len(MI)

'Get the monitor information of the specified monitor

GetMonitorInfo hMonitor, MI

'write some information on teh debug window

Debug.Print "Monitor Width/Height: " + CStr(MI.rcMonitor.Right - MI.rcMonitor.Left) + "x" + CStr(MI.rcMonitor.Bottom - MI.rcMonitor.Top)

Debug.Print "Primary monitor: " + CStr(CBool(MI.dwFlags = MONITORINFOF_PRIMARY))

'check whether Form1 is located on this monitor

If MonitorFromWindow(Form1.hwnd, MONITOR_DEFAULTTONEAREST) = hMonitor Then

Debug.Print "Form1 is located on this monitor"

End If

'heck whether the point (0, 0) lies within the bounds of this monitor

If MonitorFromPoint(0, 0, MONITOR_DEFAULTTONEAREST) = hMonitor Then

Debug.Print "The point (0, 0) lies wihthin the range of this monitor..."

End If

'check whether Form1 is located on this monitor

GetWindowRect Form1.hwnd, R

If MonitorFromRect(R, MONITOR_DEFAULTTONEAREST) = hMonitor Then

Debug.Print "The rectangle of Form1 lies within this monitor"

End If

Debug.Print ""

'Continue enumeration

MonitorEnumProc = 1

End Function


Gruss Uwe
Wenn weise Maenner nicht irrten, müssten die Narren verzweifeln. (Goethe)



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: