WinAPI Library (Snippets) (1163 Beispielcodes)
-
- Beiträge: 87
- Registriert: 28.11.2010 13:07
- Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
- Wohnort: Germany
- Kontaktdaten:
Re: WinAPI Library (Snippets) (702)
@RSBasic
WoW da war aber Jemand sehr fleisig, tolle Sammlung.
10 points goes to "RSBasic"
DJ
WoW da war aber Jemand sehr fleisig, tolle Sammlung.
10 points goes to "RSBasic"
DJ
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Re: WinAPI Library (Snippets) (702)
Ich hätte da auch noch was ...
PB Interne Window Nummer durch OS-Handle ermitteln:
PB Interne Window Nummer durch OS-Handle ermitteln:
Code: Alles auswählen
EnableExplicit
Procedure GetWindowPBID(WindowID)
Protected Result = -1
If IsWindow_(WindowID)
Result = GetProp_(WindowID,"PB_WINDOWID") - 1
EndIf
ProcedureReturn Result ; wenn -1 dann kein PB erstelltes Window oder nicht vorhanden
EndProcedure
Define WindowID
WindowID = OpenWindow(17,0,0,300,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If WindowID
MessageRequester("","Die PB-WindowNummer lautet : "+Str(GetWindowPBID(WindowID)))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: WinAPI Library (Snippets) (702)
@D.J.Peters
Danke, freut mich.
@Bisonte
Danke für deinen Code.
Danke, freut mich.

@Bisonte
Danke für deinen Code.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: WinAPI Library (Snippets) (702)
@Bisonte
Ich schlage folgende Erweiterung vor:
Grund: Bei Verwendung von #PB_Any kommen viele durcheinander, so wird auch in diesem Falle der richtig Wert
ermittelt.
Ich schlage folgende Erweiterung vor:
Code: Alles auswählen
Procedure GetWindowPBID(WindowID)
Protected Result = -1
If IsWindow_(WindowID)
Result = GetProp_(WindowID,"PB_WINDOWID") - 1
ElseIf IsWindow_(WindowID(WindowID))
Result = WindowID
EndIf
ProcedureReturn Result ; wenn -1 dann kein PB erstelltes Window oder nicht vorhanden
EndProcedure
ermittelt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: WinAPI Library (Snippets) (702)
Ich hab zwei weitere Bezeichnungen für GetProp_() gefunden:
-PB_ToolBar_ID
-PB_StatusBar_ID
PB_ToolBar_ID:
PB_StatusBar_ID:
-PB_ToolBar_ID
-PB_StatusBar_ID
PB_ToolBar_ID:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateToolBar(128,WindowID(0))
ToolBarStandardButton(0,#PB_ToolBarIcon_New)
MessageRequester("","ToolBar-Nummer: "+Str(GetProp_(WindowID(0),"PB_ToolBar_ID")),#MB_ICONINFORMATION)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateStatusBar(128,WindowID(0))
AddStatusBarField(#PB_Ignore)
MessageRequester("","StatusBar-Nummer: "+Str(GetProp_(WindowID(0),"PB_StatusBar_ID")-1),#MB_ICONINFORMATION)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: WinAPI Library (Snippets) (702)
@ts-soft: klingt einleuchtend 
@RSBasic: Die Dinger hab ich vor ein paar Minuten auch entdeckt und wollt sie grade posten

@RSBasic: Die Dinger hab ich vor ein paar Minuten auch entdeckt und wollt sie grade posten

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: WinAPI Library (Snippets) (702)
Ok... dann hier die "Deluxe" Variante

Code: Alles auswählen
#PB_ID_Window = 1
#PB_ID_Gadget = 2
#PB_ID_ToolBar = 3
#PB_ID_StatusBar = 4
Procedure GetPBID(ID, Type = #PB_ID_Window)
Protected Result = -1, Properties.s = "PB_WINDOWID,PB_ID,PB_ToolBar_ID,PB_StatusBar_ID"
If Type=>#PB_ID_Window And Type<=#PB_ID_StatusBar
If IsWindow_(ID)
Debug StringField(Properties,Type,",")
Result = GetProp_(ID,StringField(Properties,Type,","))
If Type = #PB_ID_Window Or Type = #PB_ID_StatusBar
Result - 1
EndIf
Else
Select Type
Case #PB_ID_Window
If IsWindow(ID) : Result = ID : EndIf
Case #PB_ID_Gadget
If IsGadget(ID) : Result = ID : EndIf
Case #PB_ID_StatusBar
If IsStatusBar(ID) : Result = ID : EndIf
Case #PB_ID_ToolBar
If IsToolBar(ID) : : Result = ID : EndIf
EndSelect
EndIf
EndIf
ProcedureReturn Result ; wenn -1 dann kein PB erstelltes Window oder nicht vorhanden
EndProcedure
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateToolBar(128,WindowID(0))
ToolBarStandardButton(0,#PB_ToolBarIcon_New)
EndIf
If CreateStatusBar(112,WindowID(0))
AddStatusBarField(#PB_Ignore)
EndIf
ButtonGadget(1,100,100,100,20,"Huhu")
Debug GetPBID(WindowID(0), #PB_ID_Window)
Debug GetPBID(WindowID(0), #PB_ID_ToolBar)
Debug GetPBID(WindowID(0), #PB_ID_StatusBar)
Debug GetPBID(GadgetID(1), #PB_ID_Gadget)
Debug GetPBID(0, #PB_ID_Gadget) ; Kein erstelltes Gadget
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: WinAPI Library (Snippets) (747)
WinAPI Library 1.2.9 wurde veröffentlicht (45 neue Beispielcodes)
Neue Programmfunktion: Als erstes möchte ich sagen, dass im Programm was hinzugefügt wurde und zwar wenn man (nach dieser Aktualisierung natürlich) auf "Aktualisieren" klickt. Es wird nun zuerst überprüft, ob ein neues Update vorhanden ist, ohne dass das Programm selbst beendet werden muss. Erst wenn ein neues Update vorhanden ist, dann wird das Programm beendet.
Hinzugefügt:
Arbeitsspeicher: Benutzer: ButtonGadget: CheckBoxGadget: Desktop: Dialoge: ExplorerListGadget: Gadgets: HyperLinkGadget: Konsole: ListIconGadget: Menü: OpenWindow:
Online: http://www.rsbasic.de/winapi-library
Offline: Updaten
Neue Programmfunktion: Als erstes möchte ich sagen, dass im Programm was hinzugefügt wurde und zwar wenn man (nach dieser Aktualisierung natürlich) auf "Aktualisieren" klickt. Es wird nun zuerst überprüft, ob ein neues Update vorhanden ist, ohne dass das Programm selbst beendet werden muss. Erst wenn ein neues Update vorhanden ist, dann wird das Programm beendet.
Hinzugefügt:
Arbeitsspeicher: Benutzer: ButtonGadget: CheckBoxGadget: Desktop: Dialoge: ExplorerListGadget: Gadgets: HyperLinkGadget: Konsole: ListIconGadget: Menü: OpenWindow:
- Fenster öffnen ohne eigenen Fokus zu verlieren
- Fensterhintergrund transparentieren
- Fensternummer ermitteln
- Programmmenü-Eintrag deaktivieren
- Aero während der Laufzeit deaktivieren
- Broadcast-Systemnachricht senden
- Minimal- und Maximalspeicher ermitteln
- Minimale Seitengröße ermitteln
- Pfad der laufenden Prozesse ermitteln
- SessionID anhand der PID ermitteln
- Ungenutzten Speicher freigeben
- Alle Einträge aus Ereignisanzeige entfernen
- AllUsers-Ordner ermitteln
- Anzahl der Event-Einträge aus Ereignisanzeige ermitteln
- Aufgaben in Threads verteilen
- Bildschirmbereich fotografieren
- Maximale und aktuelle Registry-Größe ermitteln
- Ordner aller Benutzer ermitteln
- Ordnername übersetzen
- Thread selbst beenden
- Veränderung in der Zwischenablage ermitteln
- Windows-Versionsbezeichnung ermitteln
Online: http://www.rsbasic.de/winapi-library
Offline: Updaten

Re: WinAPI Library (Snippets) (747)
Klasse! Vielen Dank!RSBasic hat geschrieben:WinAPI Library 1.2.9 wurde veröffentlicht (45 neue Beispielcodes)

Das funktioniert bei mir nicht (PB 4.60 unter Windows XP 32 Bit): Ich sehe gar keinen Button, mit oder ohne XP-Skin-Unterstützung. Wenn ich in der Definition des ButtonsRSBasic hat geschrieben:ButtonGadget:
Code: Alles auswählen
, #BS_COMMANDLINK
Grüße, Nino
Re: WinAPI Library (Snippets) (747)
Ich vergaß, dazu zu schreiben, dass dieser Code nur ab Vista funktioniert:Nino hat geschrieben:Das funktioniert bei mir nicht (PB 4.60 unter Windows XP 32 Bit): Ich sehe gar keinen Button, mit oder ohne XP-Skin-Unterstützung. Wenn ich in der Definition des ButtonsRSBasic hat geschrieben:ButtonGadget:lösche, dann sehe ich ihn, aber nach Anklicken kommt es zu keiner Farbänderung.Code: Alles auswählen
, #BS_COMMANDLINK
\\Edit:MSDN - BS_COMMANDLINK hat geschrieben:Windows Vista and Version 6.00. Creates a command link button that behaves like a BS_PUSHBUTTON style button, but the command link button has a green arrow on the left pointing to the button text. A caption for the button text can be set by sending the BCM_SETNOTE message to the button.
Ich habs angepasst, damit man jetzt sieht, dass dieser Code nur ab Vista funktioniert.