WinAPI Library (Snippets) (1163 Beispielcodes)
Re: WinAPI Library (Snippets) (1.077)
Dann funktioniert der Code von nco2k & WeePe nur unter 64 Bit. Den Code müsste man auch für 32 Bit anpassen.
- 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) (1.077)
Wie wäre es denn, mit diesem Code?
GetWindowsProductKey
http://www.purebasic.fr/german/viewtopi ... 99#p282999
Funktioniert in 32- und 64-Bit, sowie ASCII und Unicode, seit 2010 ohne Fehler
GetWindowsProductKey
http://www.purebasic.fr/german/viewtopi ... 99#p282999
Funktioniert in 32- und 64-Bit, sowie ASCII und Unicode, seit 2010 ohne Fehler
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) (1.077)
Jupp, dann ersetze ich den durch deinen Code.
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: WinAPI Library (Snippets) (1.077)
Ja .. danke, Funktioniert tip top.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
- TheCube
- Beiträge: 154
- Registriert: 20.07.2010 23:59
- Computerausstattung: Risen 3400G 16MB Win10-64Bit
- Wohnort: NRW
Re: WinAPI Library (Snippets) (1.077)
Gibt es eine Möglichkeit die Anzahl -echter- Kerne zu ermitteln ?
Weil ... der folgende Code aus der WinAPI-Lib zeigt bei meinem 2-Kerner mit HT ja 4 Kerne an,
was ja irgendwie nicht falsch, aber auch nicht wirklich richtig ist.
Das "Prozessor-Spezifikationen ermitteln" der WinAPI-Lib gibt mir (glaube ich) leider nicht die nötige Zusatzinfo.
//EDIT 10.07.:
Nach MSDN (http://msdn.microsoft.com/en-us/library ... S.85).aspx) wäre GetLogicalProcessorInformation() eine Möglichkeit.
Werde die Tage mal mein Glück versuchen ... bin da nicht so firm.
Weil ... der folgende Code aus der WinAPI-Lib zeigt bei meinem 2-Kerner mit HT ja 4 Kerne an,
was ja irgendwie nicht falsch, aber auch nicht wirklich richtig ist.
Code: Alles auswählen
Procedure.l cpu_count()
Protected SI.SYSTEM_INFO
GetSystemInfo_ (@SI)
ProcedureReturn SI\dwNumberOfProcessors
EndProcedure
MessageRequester("","Anzahl der Prozessoren: "+Str(cpu_count()),0)
//EDIT 10.07.:
Nach MSDN (http://msdn.microsoft.com/en-us/library ... S.85).aspx) wäre GetLogicalProcessorInformation() eine Möglichkeit.
Werde die Tage mal mein Glück versuchen ... bin da nicht so firm.
Re: WinAPI Library (Snippets) (1.077)
Es ist nicht mehr nötig, die Anzahl logischer CPUs mit API-Funktionen zu ermitteln, weil es seit PB 5.10 die native Funktion CountCPUs() gibt, die dies plattform-übergreifend erledigt...
Nein, GetLogicalProcessorInformation() ermittelt auch nur die logischen Prozessoren. Der richtige Weg laut MSDN wäre die Verwendung von GetLogicalProcessorInformationEx():TheCube hat geschrieben://EDIT 10.07.:
Nach MSDN (http://msdn.microsoft.com/en-us/library ... S.85).aspx) wäre GetLogicalProcessorInformation() eine Möglichkeit.
Eine einfachere Möglichkeit besteht darin, die Anzahl physischer Cores durch eine WMI-Abfrage zu ermitteln:MSDN hat geschrieben:Note For information about the physical processors shared by logical processors, call GetLogicalProcessorInformationEx with the RelationshipType parameter set to RelationProcessorPackage (3).
Code: Alles auswählen
ProgramID = RunProgram("Cmd", "/C WMIC CPU Get NumberOfCores", "",
#PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
If ProgramID
While ProgramRunning(ProgramID)
If AvailableProgramOutput(ProgramID)
Output$ + ReadProgramString(ProgramID)
EndIf
Wend
CloseProgram(ProgramID)
If Trim(Output$) <> ""
MessageRequester("Info", Output$ + #CR$, #PB_MessageRequester_Info)
EndIf
EndIf
Re: WinAPI Library (Snippets) (1.077)
WinAPI Library 1.4.3 wurde veröffentlicht (156 Beispielcodes wurden angepasst)
Ich habe nun insgesamt 156 Forenlinks in den Code-Dateien nachträglich eingefügt.
27 Codes konnte ich nicht verlinken, da diese entweder per E-Mail oder in der WinAPI Library eingereicht oder im nicht mehr existierenden PureBasic-Lounge-Forum gepostet wurden.
Außerdem habe ich jetzt auch endlich die Einreichen-Funktion repariert bzw. die Verbindungsdaten angepasst und neue Codes können jetzt wieder eingereicht werden.
Ich habe nun insgesamt 156 Forenlinks in den Code-Dateien nachträglich eingefügt.
27 Codes konnte ich nicht verlinken, da diese entweder per E-Mail oder in der WinAPI Library eingereicht oder im nicht mehr existierenden PureBasic-Lounge-Forum gepostet wurden.
Außerdem habe ich jetzt auch endlich die Einreichen-Funktion repariert bzw. die Verbindungsdaten angepasst und neue Codes können jetzt wieder eingereicht werden.
Re: WinAPI Library (Snippets) (1.077)
Wie immer: Daumen hoch!
(nächstes Jahr ist 10-jähriges; meine Güte, wie die Zeit verfliegt... )
Grüße ... Peter
P.S.: Das wäre doch mal ein Super-Projekt, um es in SpiderBasic umzusetzen <gd&r>)
(nächstes Jahr ist 10-jähriges; meine Güte, wie die Zeit verfliegt... )
Grüße ... Peter
P.S.: Das wäre doch mal ein Super-Projekt, um es in SpiderBasic umzusetzen <gd&r>)
Hygge
- TheCube
- Beiträge: 154
- Registriert: 20.07.2010 23:59
- Computerausstattung: Risen 3400G 16MB Win10-64Bit
- Wohnort: NRW
Re: WinAPI Library (Snippets) (1.077)
@ Kiffi: Danke für die Antwort.
GetLogicalProcessorInformationEx() hatte ich beim überfliegen gesehen, aber dachte
fälschlicherweise die ältere Variante ab Win XP (ohne Ex) täte es auch schon.
Den Weg über die WinAPI fände aber trotz deiner WMI-Abfrage Lösung weiterhin interessant.
Meine andere Idee wäre andersrum gewesen:
Mit PB's CountCPU() die logischen Kerne ermitteln, dann ein CPU-Flag Hyperthreading vorhanden/aktiv
auslesen und dann ggf. durch 2 teilen um auf die Anzahl echter Kerne zu kommen. Wahrscheinlich umständlicher Unsinn ...
GetLogicalProcessorInformationEx() hatte ich beim überfliegen gesehen, aber dachte
fälschlicherweise die ältere Variante ab Win XP (ohne Ex) täte es auch schon.
Den Weg über die WinAPI fände aber trotz deiner WMI-Abfrage Lösung weiterhin interessant.
Meine andere Idee wäre andersrum gewesen:
Mit PB's CountCPU() die logischen Kerne ermitteln, dann ein CPU-Flag Hyperthreading vorhanden/aktiv
auslesen und dann ggf. durch 2 teilen um auf die Anzahl echter Kerne zu kommen. Wahrscheinlich umständlicher Unsinn ...