| 

.NET C# Java Javascript Exception

2
Hallo,

laut einem Blog-Eintrag, den ich hier gefunden habe nsylvain.blogspot.com, kann man unter den verschiedenen Windowsversionen diese Art von Zugriff nicht mehr benutzen.

Warum ging dann ein in Delphi7 erstelltes Project unter WindowsXP (kompiliert, ausgeführt und genutzt), ABER, wenn dieses Project nun unter Windows7 kompiliert wird, funktioniert es mit Adminrechten, aber unter WindowsXP versagt dieser Aufruf gänzlich, auch wenn man als Admin angemeldet ist?

GetWindowThreadProcessId(Dummy_Handle, @ProcessId);
HandleWindow_R := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);


Ich benötige den Zugriff auf Teile von Speicherbereichen, um Zustände aus einem Spiel aulesen zu können und kompletten Zugriff, um Werte ändern zu können (Spiele-Trainer).

Eine Wertänderung von PROCESS_ALL_ACCESS habe ich schon versucht, funktioniert nicht.
News:
09.02.2011
TRM 21 3
Crosspost-Hinweis: http://www.delphi-forum.de/viewtopic.php?p=632150
TRM 10.02.2011
2 Antworten
1
Warum das so ist, ist ganz einfach, wenn du mal folgenden Artikel auf MSDN liest:
Windows Server 2003 and Windows XP/2000: The size of the PROCESS_ALL_ACCESS flag increased on Windows Server 2008 and Windows Vista. If an application compiled for Windows Server 2008 and Windows Vista is run on Windows Server 2003 or Windows XP/2000, the PROCESS_ALL_ACCESS flag is too large and the function specifying this flag fails with ERROR_ACCESS_DENIED.

Das heißt in deinem Fall:
Kompiliert unter XP und ausgeführt auf XP - alles gut
Kompiliert ab Vista und ausgeführt ab Vista - alles gut
Kompiliert ab Vista und ausgeführt auf XP - ätsch :-P

[Update]
To avoid this problem, specify the minimum set of access rights required for the operation.
Mögliche Lösung: Process Security and Access Rights
09.02.2011
Konstantin 3,7k 1 8
0
Hallo Konstantin.

Das habe ich auch gelesen.

Eine Lösung suche ich.
09.02.2011
TRM 21 3
Schau dir bitte meinen editierten Beitrag an.
Konstantin 09.02.2011

Stelle deine Windows-Frage jetzt!