Einzelnen Beitrag anzeigen

NeoXan
(Gast)

n/a Beiträge
 
#8

Re: Main Menu Einträge Dritter auslesen

  Alt 4. Feb 2006, 16:08
hmm, also neuer Ansatz:

Ich habe mir Madshi's madCollection geholt und eine weile 'rumprobiert jedoch auch nicht wirklich weiter gekommen.

Aufgabe für mich ist:
1. Das notepad starten
1a. oder meine Applikation starten, welche dann das Notepad startet und gleich die DLL injected
2. wenn ich im Notepad über das MenuItem Datei mit der Maus fahre, soll in meiner Applikation als String Datei stehen


Meine Theorie ist folgende...
Ich habe meine DLL, wo die Funktion drinn' steht welche Nachrichten abfängt und verarbeitet. Handelt es sich um die Nachricht, dass ein Menüeintrag ausgewählt worden ist, so wird der String verarbeitet JEDOCH der eigentlich Programmablauf des Notepads nicht unterbrochen. Nach längerem Foren durchforsten bin ich nun zu folgender Erkenntnis gekommen, dass ich also nun 3 Dinge habe:

1. Das Notepad
2. meine Applikation welche die DLL injected
3. meine DLL

Sollte es doch wieder irgendwie anders gehen, also ohne DLL, dann bitte auch bescheid sagen. Nicht, dass ich hier wieder in eine völlig falsche Richtung renne.

Folgende Problem tuhen sich mir nun auf:
1. Was genau muss in der DLL stehen?!?!
bis jetzt schaut sie nur so aus...und das macht eigentlich auch nichts
Delphi-Quellcode:
var
  OldWndProc : Pointer = nil;

////////////////////////////////////////////////////////////////////////////////
// OWN HANDLE //////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function NewWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
////////////////////////////////////////////////////////////////////////////////
  function CallOld: LRESULT;
  begin
    Result := CallWindowProc(@OldWndProc, hWnd, Msg, wParam, lParam);
  end;
////////////////////////////////////////////////////////////////////////////////
begin
  // Result := DefWindowProc(hWnd, Msg, wParam, lParam); // standardWndProc aufrufen
  case Msg of
    WM_QUIT : begin
                      ShowMessage('bye');
                    end;
  end;
  Result := CallOld;
end;

begin


end.
2. Wie schaffe ich das denn, dass die Funktion in der DLL wiederum auf mein Programm zugreifen kann, sprich auf mein Form, wo dann der String 'reingeschrieben werden soll. Oder geht das, wenn man eine DLL benutzt ganz anders.

Ich hoffe jetzt bin ich schon ein Stückchen weiter...wäre schön wenn mir da jemand weiterhelfen könnte...
also sprich
"wenn ich im Notepad über das MenuItem Datei mit der Maus fahre, soll in meiner Applikation als String Datei stehen".
Bzw. sollte das denn nicht nur ausschließlich auf's Notepad beschränkt sein.

vielen vielen Dank
Florian
  Mit Zitat antworten Zitat