WinAPI Library (Snippets) (1163 Beispielcodes)

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: WinAPI Library (Snippets) (950)

Beitrag von mk-soft »

Macro´s für WinAPI...

Code: Alles auswählen

CompilerIf Defined(MACRO_HIWORD, #PB_Constant) = 0
  #MACRO_HIWORD = 1
  Macro HIWORD(Param)
    (Param >> 16)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_LOWORD, #PB_Constant) = 0
  #MACRO_LOWORD = 1
  Macro LOWORD(Param)
    (Param & $FFFF)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKEWPARAM, #PB_Constant) = 0
  #MACRO_MAKEWPARAM = 1
  Macro MAKEWPARAM(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKELPARAM, #PB_Constant) = 0
  #MACRO_MAKELPARAM = 1
  Macro MAKELPARAM(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKELONG, #PB_Constant) = 0
  #MACRO_MAKELONG = 1
  Macro MAKELONG(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf
Kann man vielleicht in einer globalen Include Packen

Beipiel aus Snippet ToolBar

Code: Alles auswählen

;Autor: Fluid Byte

EnableExplicit

CompilerIf Defined(MACRO_HIWORD, #PB_Constant) = 0
  #MACRO_HIWORD = 1
  Macro HIWORD(Param)
    (Param >> 16)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_LOWORD, #PB_Constant) = 0
  #MACRO_LOWORD = 1
  Macro LOWORD(Param)
    (Param & $FFFF)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKEWPARAM, #PB_Constant) = 0
  #MACRO_MAKEWPARAM = 1
  Macro MAKEWPARAM(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKELPARAM, #PB_Constant) = 0
  #MACRO_MAKELPARAM = 1
  Macro MAKELPARAM(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf

CompilerIf Defined(MACRO_MAKELONG, #PB_Constant) = 0
  #MACRO_MAKELONG = 1
  Macro MAKELONG(X,Y)
    (Y << 16 | X)
  EndMacro
CompilerEndIf


Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateToolBar(1,WindowID(0))
    ToolBarStandardButton(0,#PB_ToolBarIcon_New)
    ToolBarStandardButton(1,#PB_ToolBarIcon_Open)
    ToolBarStandardButton(2,#PB_ToolBarIcon_Save)
    
    SendMessage_(ToolBarID(1),#TB_SETBUTTONSIZE,0,MAKELPARAM(64,30))
    SendMessage_(ToolBarID(1),#TB_AUTOSIZE,0,0)
    
  EndIf
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Sind noch nicht alle Macro´s definiert :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von RSBasic »

Jo, u.a. auch:

Code: Alles auswählen

Macro MAKEIPRANGE(low, high)
  low + high * $100
EndMacro
Wenn ihr weitere Macros kennt, dann bitte hier posten. Dann kann ich all' diese API-Macros in einer separaten Sammeldatei zusammenfassen. ;)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von NicTheQuick »

RSBasic hat geschrieben:Jo, u.a. auch:

Code: Alles auswählen

Macro MAKEIPRANGE(low, high)
  low + high * $100
EndMacro
Wenn ihr weitere Macros kennt, dann bitte hier posten. Dann kann ich all' diese API-Macros in einer separaten Sammeldatei zusammenfassen. ;)
Ihr definiert die Makros falsch. Um jeden Parameter müssen noch Klammern drum!

Code: Alles auswählen

Macro MAKEIPRANGE(low, high)
  (low) + (high) * $100
EndMacro
Beispielfehler ohne Klammern:

Code: Alles auswählen

Macro MAKEIPRANGE(low, high)
	low + high * $100
EndMacro
Debug "Falsch:"
Debug MAKEIPRANGE(1 + 2, 3 + 4)
Debug "Richtig:"
Debug (1 + 2) + (3 + 4) * $100
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von RSBasic »

Okay, danke, habs angepasst.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: WinAPI Library (Snippets) (950)

Beitrag von mk-soft »

Vielleicht ein neuen Thema erstellen.

Hab meins mal überarbeitet. Filter, Klammersetzung , etc...

Code: Alles auswählen

;-TOP

; Macros for WinAPI
; Authors
; - mk-soft
; - 
; - 
;
; Revision 1.0
;

;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_HIWORD, #PB_Constant) = 0
  #MACRO_HIWORD = 1
  Macro HIWORD(Param)
    (Param >> 16)
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_LOWORD, #PB_Constant) = 0
  #MACRO_LOWORD = 1
  Macro LOWORD(Param)
    (Param & $FFFF)
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKEWPARAM, #PB_Constant) = 0
  #MACRO_MAKEWPARAM = 1
  Macro MAKEWPARAM(l,h)
    (((h) & $FFFF) << 16 | ((l) & $FFFF))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKELPARAM, #PB_Constant) = 0
  #MACRO_MAKELPARAM = 1
  Macro MAKELPARAM(l,h)
    (((h) & $FFFF) << 16 | ((l) & $FFFF))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKELONG, #PB_Constant) = 0
  #MACRO_MAKELONG = 1
  Macro MAKELONG(a,b)
    (((b) & $FFFF) << 16 | ((a) & $FFFF))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKEWORD, #PB_Constant) = 0
  #MACRO_MAKEWORD = 1
  Macro MAKEWORD(a,b)
    (((b) & $FF) << 8) | ((a) & $FF))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKEINTATOM, #PB_Constant) = 0
  #MACRO_MAKEINTATOM = 1
  Macro MAKEINTATOM(I)
    ((I) & $FFFF)
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKELANGID, #PB_Constant) = 0
  #MACRO_MAKELANGID = 1
  Macro MAKELANGID(p, s) 
    (((s) & $FFFF) << 10) | ((p) & $FFFF))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
CompilerIf Defined(MACRO_MAKELCID, #PB_Constant) = 0
  #MACRO_MAKELCID = 1
  Macro MAKELCID(lgid, srtid)
    ((srtid) << 16) | (lgid))
  EndMacro
CompilerEndIf
;------------------------------------------------------------------------------
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von RSBasic »

Sehr gut, thx.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von Sicro »

http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb

Der Wert von dwTime muss von GetTickCount_() abgezogen werden, um den richtigen Zeitwert zu erhalten:

Code: Alles auswählen

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

Structure LASTINPUTINFO
  cbSize.l
  dwTime.l
EndStructure

Define.LASTINPUTINFO plii\cbSize = SizeOf(LASTINPUTINFO)

Delay(5000)

If GetLastInputInfo_(@plii)
  Debug "Der Computer wurde nicht mehr bedient seit: " + Str(GetTickCount_() - plii\dwTime) + " Millisekunden"
Else
  Debug "Abfrage fehlgeschlagen"
EndIf
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von RSBasic »

Das stimmt, aber in dem Code gings nur darum, um zu ermitteln, ob überhaupt eine Änderung stattfand. Deinen Code kann ich ja zusätzlich hinzufügen, um zu ermitteln, wie lang die Idle-Zeit war.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (950)

Beitrag von RSBasic »

WinAPI Library besitzt nun insgesamt 1.000 Beispielcodes!

WinAPI Library 1.3.7 wurde veröffentlicht (50 neue Beispielcodes)

Hinzugefügt:


ButtonGadget: ComboBoxGadget: EditorGadget: ExplorerListGadget: ExplorerTreeGadget: Frame3DGadget: IPAddressGadget: ListIconGadget: ListViewGadget: Maus und Tastatur: Menü: PanelGadget: Popup-Menü: Prozesse: ScrollAreaGadget: Sonstige: StringGadget: TextGadget: ToolBar: TreeGadget: WebGadget:
Online: http://www.rsbasic.de/winapi-library
Offline: Updaten ;)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten