Seite 5 von 5
Re: PCInfoPoint
Verfasst: 07.06.2010 17:57
von Thorium
NicTheQuick hat geschrieben:Ist es unter Windows mittlerweile möglich Mainboard oder CPU auszutauschen, ohne dass man es neu installieren muss? Früher ging das nicht.
Das ging früher mal. Win95 ist der Chipsatz egal. ^^
Re: PCInfoPoint
Verfasst: 07.06.2010 18:05
von ts-soft
RSBasic hat geschrieben:
ts-soft hat geschrieben:was ist wenn ich den
Prozessor ausgetauscht habe. Die Registry-Werte werden nicht autom. aktualisiert.
Doch werden sie, Windows erkennt es automatisch, ob ein neues Gerät gefunden wurde.
Eine CPU ist kein Plug and Pray Gerät, das autom. erkannt wird!
Re: PCInfoPoint
Verfasst: 07.06.2010 18:05
von edel
Aktuelle Windows Versionen kommen damit eigentlich sehr gut zurecht.
Re: PCInfoPoint
Verfasst: 07.06.2010 18:12
von RSBasic
Hm, hab erstmal keinen Fehler gefunden.
Hab mal eine Test-EXE erstellt.
Falls jemand, der einen Bluescreen hatte, diese Datei testen "möchte", wär ich sehr dankbar:
http://www.rsbasic.de/temp/GetCPUInfRegEx.exe
Es werden insgesamt vier MsgBoxes angezeigt (Name des Prozessors, Takt, Kennung und Anzahl der Kerne).
Es wär schon sehr interessant, nach welchem Message die Kloschüssel abkackt.
Dann weiß ich, wo der Fehler genau liegt.
Falls niemand die Datei ausführt, dann kann ich die Kategorie erstmal komplett rausnehmen und Alternativen suchen.
Re: PCInfoPoint
Verfasst: 07.06.2010 18:23
von ts-soft
Hab hier noch 3 alte funktionen für Dich:
Code: Alles auswählen
Procedure GetCPUCount()
Protected SYSINFO.SYSTEM_INFO
GetSystemInfo_(@SYSINFO)
ProcedureReturn SYSINFO\dwNumberOfProcessors
EndProcedure
Procedure.s GetCPUName()
Protected sBuffer.s
Protected Zeiger1.l, Zeiger2.l, Zeiger3.l, Zeiger4.l
!MOV eax, $80000002
!CPUID
; the CPU-Name is now stored in EAX-EBX-ECX-EDX
!MOV [p.v_Zeiger1], EAX ; move eax to the buffer
!MOV [p.v_Zeiger2], EBX ; move ebx to the buffer
!MOV [p.v_Zeiger3], ECX ; move ecx to the buffer
!MOV [p.v_Zeiger4], EDX ; move edx to the buffer
;Now move the content of Zeiger (4*4=16 Bytes to a string
sBuffer = PeekS(@Zeiger1, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii)
;Second Part of the Name
!MOV eax, $80000003
!CPUID
; the CPU-Name is now stored in EAX-EBX-ECX-EDX
!MOV [p.v_Zeiger1], EAX ; move eax to the buffer
!MOV [p.v_Zeiger2], EBX ; move ebx to the buffer
!MOV [p.v_Zeiger3], ECX ; move ecx to the buffer
!MOV [p.v_Zeiger4], EDX ; move edx to the buffer
;Now move the content of Zeiger (4*4=16 Bytes to a string
sBuffer + PeekS(@Zeiger1, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii)
;Third Part of the Name
!MOV eax, $80000004
!CPUID
; the CPU-Name is now stored in EAX-EBX-ECX-EDX
!MOV [p.v_Zeiger1], EAX ; move eax to the buffer
!MOV [p.v_Zeiger2], EBX ; move ebx to the buffer
!MOV [p.v_Zeiger3], ECX ; move ecx to the buffer
!MOV [p.v_Zeiger4], EDX ; move edx to the buffer
;Now move the content of Zeiger (4*4=16 Bytes to a string
sBuffer + PeekS(@Zeiger1, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii)
ProcedureReturn sBuffer
EndProcedure
Procedure.s GetCPUVendor()
Protected sBuffer.s
Protected Zeiger1.l, Zeiger2.l, Zeiger3.l
! MOV EAX, 0
! CPUID
; the VendorID is now stored in EBX-EDX-ECX
; very important, first move all results to a save place.
! MOV [p.v_Zeiger1], EBX ; move ebx to the buffer
! MOV [p.v_Zeiger2], EDX ; move edx to the buffer
! MOV [p.v_Zeiger3], ECX ; move ecx to the buffer
sBuffer = PeekS(@Zeiger1, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii)
sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii)
ProcedureReturn sBuffer
EndProcedure
Debug GetCPUCount()
Debug GetCPUName()
Debug GetCPUVendor()
Re: PCInfoPoint
Verfasst: 07.06.2010 18:48
von RSBasic
Hallo Thomas,
vielen Dank für die ASM-Codes.
Funktioniert einwandfrei.
@X360 Andy & @DrFalo
Wenn ihr den Code von ts-soft kompiliert, funktioniert es bei euch einwandfrei?
Zwar denke ich, dass kein Bluescreen erscheint, aber möchte trotzdem eure Bestätigungen haben.
Wenn die Codes bei euch funktionieren, dann werde ich diese in meinem Programm einbinden und dann kann ts-soft, wenn er möchte, meine Anwendung testen
Danke nochmal fürs Posten deiner Codes, Thomas.

Re: PCInfoPoint
Verfasst: 07.06.2010 19:12
von X360 Andy
TS Soft´s Code hat geschrieben:2
AMD Turion(tm) X2 Dual-Core Mobile RM-70
AuthenticAMD
Wie gesagt der BlueScreen kam bei mir nur mit manuel eingeschalter UAC (Admin Mode)
@ Deine Test Exe
Funktioniert bis auf 2 Leere Textboxen ohne Probleme ( 1 ,3 leer )
Ohne UAC
Mit UAC gibt 4 volle Textboxen
Re: PCInfoPoint
Verfasst: 07.06.2010 19:47
von RSBasic
Hallo X360 Andy,
eine Frage hätte ich noch und zwar: Kannst du den ASM-Code ohne Admin-Rechte problemlos ausführen?
PS: Danke fürs Testen meiner EXE-Datei

Re: PCInfoPoint
Verfasst: 07.06.2010 20:35
von X360 Andy
Jap ohne was am Compiler zu ändern