Hex to Int - VERDÖST , ne , doch nicht

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Zeig uns doch mal ein bisschen Code...
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
DW

Beitrag von DW »

".., den könnte ich mir auch eigentlich selber schreiben.""

Code: Alles auswählen




If OpenLibrary(0, "DirectMemoryAccess.dll")

  *F = GetFunction(0, "_FindProcess@4")
  If *F
   

    h=CallFunctionFast(*F,"Process")
  EndIf
  
  
  
   *Fa = GetFunction(0,"_ReadMemValue@8")
  If *Fa

 Debug CallFunctionFast(*Fa,h,$00AAF614)
  EndIf
  

    *Faa = GetFunction(0," _CloseProcessHandle@4")
   CallFunctionFast(*Faa,h)

 


  CloseLibrary(0)
EndIf

End

Wie man die Speicheradresse einer Variable herausbekommt, weißt du sicherlich.

Und wenn du denkst"Ach, der DW, der hat da jua nischts und tut nur so":
Mit einem anderen Programm ging es. Aber nur mit dem. Hat bestimmt was mit der Speicheradresse zu tun.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

grundfehler:

das erste EndIf musst du nach unten verschieben bis direkt über CloseLibrary(0)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DW

Beitrag von DW »

Ist das jetzt so wichtig?
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Weil ich heute einen guten Tag habe, habe ich dir mal den Code aufgehübscht...

Code: Alles auswählen

If OpenLibrary(0, "DirectMemoryAccess.dll") 
    *F = GetFunction(0, "_FindProcess@4") 
    If *F 
        h=CallFunctionFast(*F,"Process") 
        
        *Fa = GetFunction(0,"_ReadMemValue@8") 
        If *Fa 
            Debug CallFunctionFast(*Fa,h,$00AAF614)  ;<== da ist das Problem?
        EndIf 
        *Faa = GetFunction(0," _CloseProcessHandle@4") 
        CallFunctionFast(*Faa,h) 
        CloseLibrary(0) 
    EndIf 
EndIf
Bist du schon mal auf die Idee gekommen, dass das SO die Adresse möglicherweise als Hex-String haben möchte? *vermutung*
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
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

Beitrag von ts-soft »

Verstehe immer noch nicht, was nicht gehen sollte, aber dieses:

Code: Alles auswählen

" _CloseProcessHandle@4"
ist Definitiv falsch :mrgreen:
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.
Bild
DW

Beitrag von DW »

Warum hat es dann bei einem anderen Programm funktioniert?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Ist das jetzt so wichtig?

ja

...weil es sinnlos ist, den ganzen krempel zu probieren, wenn du kein Handle hast.


> Warum hat es dann bei einem anderen Programm funktioniert?

meaningless coincidence...

die vorherige operation mag auch funktionieren, wenn das schließen des process-handles versagt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DW

Beitrag von DW »

>" _CloseProcessHandle@4"
Dann schreib mal das richtige.
Benutzeravatar
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

Beitrag von ts-soft »

DW hat geschrieben:>" _CloseProcessHandle@4"
Dann schreib mal das richtige.
Wieso ich, Dein Code enthält den Fehler, den von vonTurnundTaxis gleich
übernommen hat. Google CodeSearch wirds vielleicht auch übernehmen
:mrgreen:

Hab sowieso keinen Process der Process heisst, oder?
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.
Bild
Antworten