AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL - Problem

Ein Thema von seddto1977 · begonnen am 27. Jul 2004 · letzter Beitrag vom 28. Jul 2004
 
seddto1977

Registriert seit: 15. Apr 2004
69 Beiträge
 
#1

DLL - Problem

  Alt 27. Jul 2004, 20:17
Ich habe folgendes Problem.
Wenn ein User mit einem meiner Programme arbeitet , dann muß er meistens gleichzeitig noch mit anderen Programmen wie Word etc arbeiten. Deshalb habe ich versucht einen Hook zu programmieren, der dem User zb. über Messageboxen während er in dem anderen Programm arbeitet Hinweise gibt. Hier erstmal der Code in meinem Programm, das die DLL aufruft:

Delphi-Quellcode:
CreateProcessA(nil,'C:\Programme\Microsoft Office\Word.exe',nil,nil,False,CREATE_SUSPENDED,nil,nil,StartupInfo,ProcessInfo);
ResumeThread(ProcessInfo.hThread);
Sleep(5000);
Lib:=LoadLibrary(ServerName);
Proc:=GetProcAddress(Lib,'pseduo');
SetWindowsHookEx(WH_GETMESSAGE,Proc,Lib,ProcessInfo.dwThreadId);
Sleep(1000);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
ExitProcess(0);
In diesem Fall wird Word neu gestartet, weil ich das ganze erstmal testen will...später suche ich mir dann das richtige Process-Handle...
Der Code in der DLL sieht so aus:

Delphi-Quellcode:
procedure EntryPoint(Reason:Integer);
var
IP:PChar;
TID:DWORD;
begin
  case Reason of
  DLL_THREAD_ATTACH:
  begin
    Showmessage (extractfilename(paramstr(0)));
  end;
  DLL_THREAD_DETACH:
  begin
  end;
  end;
end;

procedure pseduo;
begin
end;

exports pseduo;

begin
DLLProc:=@EntryPoint;
EntryPoint(DLL_THREAD_ATTACH);
end.
In diesem Fall soll lediglich in Word eine Messagebox angezeigt werden in der der Name des aktuellen Process angezeigt wird, damit ich sehe ob die Messagebox im Kontext von Word oder von meinem Programm läuft. Das Ergebnis sieht so aus das die Messagebox zuerst im Kontext von meinem Programm angezeigt wird (zb. Text: MeinProgramm.exe) und wenn ich mit Ok bestätigt habe dann sofort im Kontext von Word (Text: Word.exe). Was mache ich falsch, ich möchte natürlich nicht das alle Aktionen 2 mal durchgeführt werden sondern immer nur im kontext des Programms in das ich die DLL lade (also in diesem Fall Word). Kann mir jemand weiterhelfen?

PS: Das DLL und Hook-Tut habe ich mir schon durchgelesen aber bei der Sache hier komm ich irgendwie nicht weiter...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz