@Karstadt:
Lies doch bitte einmal, was wir dir geschrieben haben!!!!!!!!!!!! Wir haben dir die Lösung schon präsentiert, via hooks (und es geht NICHT anders (ausser mit Code-Injektion, ...)). Und via System-Snapshot-Funktionen kannst du dann überprüfen ob deine Anwendung läuft.
Also, in der
DLL musst du dann irgendwie so eine Prozedur haben:
Delphi-Quellcode:
DLL Hook
function HookKey(nCode: int, ...): ...
begin
...
if MessageInWParam = PrintSCRN
then begin
...
// mit Snapshot Prozesse überprüfen ==> boolean ProgramAktiv
if ProgramAktiv = true
then begin
RESULT 1; (==> Nachricht wird nicht ans System übergeben
end else begin
RESULT 0; (==> Nachricht wird weiter verarbeitet)
end;
end;
end;
function SetHook
begin
//Hook setzen mit SetWindowsHookEx
end;
...
Es geht wirklich nicht so einfach, wie du es gerne hättest.