Aktuelle Zeit: 30.05.2020 22:48

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 415 Beiträge ]  Gehe zu Seite Vorherige  1 ... 37, 38, 39, 40, 41, 42  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 26.04.2017 14:58 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Dann funktioniert der Code von nco2k & WeePe nur unter 64 Bit. Den Code müsste man auch für 32 Bit anpassen.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 26.04.2017 15:27 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Wie wäre es denn, mit diesem Code?
GetWindowsProductKey
viewtopic.php?p=282999#p282999

Funktioniert in 32- und 64-Bit, sowie ASCII und Unicode, seit 2010 ohne Fehler :mrgreen:

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 26.04.2017 15:31 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Jupp, dann ersetze ich den durch deinen Code. :allright:

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 26.04.2017 15:35 
Offline

Registriert: 08.09.2004 20:18
Wohnort: Zürich
Ja .. danke, Funktioniert tip top.

_________________
TFT

Code faster than fast.
W10 ,i5 4*3.4 MHz,16 GB Ram,GTX Titan, 3 Monitore UHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 10.07.2017 00:44 
Offline
Benutzeravatar

Registriert: 20.07.2010 23:59
Wohnort: NRW
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.

Code:
Procedure.l cpu_count()
  Protected SI.SYSTEM_INFO
  GetSystemInfo_ (@SI)
  ProcedureReturn SI\dwNumberOfProcessors
EndProcedure

MessageRequester("","Anzahl der Prozessoren: "+Str(cpu_count()),0)

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/ms683194(VS.85).aspx) wäre GetLogicalProcessorInformation() eine Möglichkeit.
Werde die Tage mal mein Glück versuchen ... bin da nicht so firm.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 10.07.2017 17:56 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
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... :wink:

TheCube hat geschrieben:
//EDIT 10.07.:

Nach MSDN (http://msdn.microsoft.com/en-us/library/ms683194(VS.85).aspx) wäre GetLogicalProcessorInformation() eine Möglichkeit.

Nein, GetLogicalProcessorInformation() ermittelt auch nur die logischen Prozessoren. Der richtige Weg laut MSDN wäre die Verwendung von GetLogicalProcessorInformationEx():
MSDN hat geschrieben:
Note For information about the physical processors shared by logical processors, call GetLogicalProcessorInformationEx with the RelationshipType parameter set to RelationProcessorPackage (3).

Eine einfachere Möglichkeit besteht darin, die Anzahl physischer Cores durch eine WMI-Abfrage zu ermitteln:
Code:
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 10.07.2017 19:38 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
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.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 10.07.2017 20:54 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
Herzlichen Dank dafür!

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 10.07.2017 21:23 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Wie immer: Daumen hoch! :allright:

(nächstes Jahr ist 10-jähriges; meine Güte, wie die Zeit verfliegt... :shock:)

Grüße ... Peter

P.S.: Das wäre doch mal ein Super-Projekt, um es in SpiderBasic umzusetzen <gd&r>)

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: WinAPI Library (Snippets) (1.077)
BeitragVerfasst: 11.07.2017 00:19 
Offline
Benutzeravatar

Registriert: 20.07.2010 23:59
Wohnort: NRW
@ 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 ...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 415 Beiträge ]  Gehe zu Seite Vorherige  1 ... 37, 38, 39, 40, 41, 42  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye