Seite 1 von 1

2 Beispielcodes [WinAPI]

Verfasst: 05.03.2011 17:27
von RSBasic
Fenstereinstellungen speichern und wiederherstellen

Mit diesem Code können die Fenstereinstellungen wie Größe und Position vollständig gespeichert und wiederhergestellt werden, ohne dass man diese jeweils einzeln ermitteln muss. (WindowWidth(), WindowHeight(), WindowX(), WindowY(), GetWindowState())

Code: Alles auswählen

EnableExplicit

Define EventID
Define hWndPM.WINDOWPLACEMENT

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
  ButtonGadget(1,10,10,200,20,"1. Fenstereinstellungen speichern",0)
  TextGadget(2,10,40,480,20,"2. Jetzt verändere z.B. die Fenstergröße und die Fensterposition.",0)
  ButtonGadget(3,10,60,200,20,"3. Fenstereinstellungen wiederherstellen",0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case 1
          GetWindowPlacement_(WindowID(0),hWndPM)
        Case 3
          SetWindowPlacement_(WindowID(0),hWndPM)
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

;SetWindowPlacement: http://msdn.microsoft.com/en-us/library/ms633544%28v=vs.85%29.aspx
;GetWindowPlacement: http://msdn.microsoft.com/en-us/library/ms633518%28v=vs.85%29.aspx

Batterie-Statusinformationen ermitteln

Mit diesem Code können die Statusinformationen einer Batterie ermittelt werden:

Code: Alles auswählen

EnableExplicit

Define SysPS.SYSTEM_POWER_STATUS

GetSystemPowerStatus_(SysPS)

Select SysPS\ACLineStatus & $FF
  Case 0
    Debug "Es wurde kein externes Netzteil angeschlossen."
  Case 1
    Debug "Externes Netzteil ist angeschlossen."
  Case 2
    Debug "Es konnte nicht ermittelt werden, ob ein externes Netzteil angeschlossen ist."
EndSelect

Select SysPS\BatteryFlag & $FF
  Case 1
    Debug "Die Batterie ist über 66 % aufgeladen."
  Case 2
    Debug "Die Batterie ist weniger als 33 % aufgeladen."
  Case 4
    Debug "Die Batterie ist fast leer."
  Case 8
    Debug "Die Batterie wird gerade aufgeladen."
  Case 128
    Debug "Es konnte keine Batterie gefunden werden."
  Case 255
    Debug "Fehler beim Auslesen."
EndSelect

;Diese Daten nur dann abfragen, wenn Batterie angeschlossen ist, da sonst 255 zurückgegeben wird.
Debug "Gesamt-Zeit: "+Str(SysPS\BatteryFullLifeTime & $FF)
Debug "In Prozent: "+Str(SysPS\BatteryLifePercent & $FF)
Debug "Verbleibende Zeit: "+Str(SysPS\BatteryLifeTime & $FF)

;GetSystemPowerStatus: http://msdn.microsoft.com/en-us/library/aa372693%28v=vs.85%29.aspx