Seite 3 von 4

Verfasst: 30.01.2007 17:22
von vonTurnundTaxis
Zeig uns doch mal ein bisschen Code...

Verfasst: 30.01.2007 17:39
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.

Verfasst: 30.01.2007 17:43
von Kaeru Gaman
grundfehler:

das erste EndIf musst du nach unten verschieben bis direkt über CloseLibrary(0)

Verfasst: 30.01.2007 17:51
von DW
Ist das jetzt so wichtig?

Verfasst: 30.01.2007 18:01
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*

Verfasst: 30.01.2007 18:11
von ts-soft
Verstehe immer noch nicht, was nicht gehen sollte, aber dieses:

Code: Alles auswählen

" _CloseProcessHandle@4"
ist Definitiv falsch :mrgreen:

Verfasst: 30.01.2007 18:11
von DW
Warum hat es dann bei einem anderen Programm funktioniert?

Verfasst: 30.01.2007 18:18
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.

Verfasst: 30.01.2007 18:20
von DW
>" _CloseProcessHandle@4"
Dann schreib mal das richtige.

Verfasst: 30.01.2007 18:30
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?