frage...[was sonst]

R

[RiP]-PhreaK

tach,

ich hab da mal ne frage...

leider fällt es mir schwer mein problem zu verbalisieren, daher werde ich den stil vernachlässigen...

also, ich will, dass der user irgendetwas [ein symbol oder so] aus der form heraus in ein fremdes, externes programm zieht und dort die maus über einem text loslässt. dann tritt ein onmouseup event in kraft und liest den externen text ab um ihn dann irgendwie [z.b. in einer editbox] zu verwerten.

das ganze gibt es schon in einem program namens revelation [oder so]. dieses programm gibt den text einer passwordbox im klartext wieder, leider finde ich es nicht mehr.

ich wäre wirklich sehr froh über ein paar tipps und hilfen!

vielen dank!!!
 
Hallo [RiP]-PhreaK,

wenn ich dich richtig verstehe, willst du den z.B. durch Sternchen verschlüsselten Text aus einer anderen Anwendung haben, oder?
Ich könnte jetzt groß ausholen, aber lass' es mich einfach kurz und knapp sagen: Das ist keine "Einsteigerfrage" bzw. ein Problem, für das dir jemand mal eben schnell einen Quellcode zusammenschreibt. Es würde einfach zu lange dauern.
Das Wahrscheinlichere ist, dass du irgendwo im Internet solch ein Programm als Freeware findest.

P.S.: Was soll man sich unter so ein ander Topic-Überschrift "frage...[was sonst]" vorstellen?
 
hi

Original geschrieben von ArneE
wenn ich dich richtig verstehe, willst du den z.B. durch Sternchen verschlüsselten Text aus einer anderen Anwendung haben, oder?
nein! ich will nur das, was ich geschrieben habe, ich will den text einfach nur auslesen!


Das Wahrscheinlichere ist, dass du irgendwo im Internet solch ein Programm als Freeware findest.
such ich ja garnich. ich hab was anderes vor...


P.S.: Was soll man sich unter so ein ander Topic-Überschrift "frage...[was sonst]" vorstellen?
sorry, wie bereits geschrieben, kann ich mein problem nicht passend verbalisieren, wenn dir eine bessere überschrift einfällt, sag sie mir bitte!
p.s. ich bin kein einsteiger, oder fühle mich zumindest nicht so...

danke trotzdem,
[RiP]-PhreaK
 
hi

ich will es schaffen [wie in den password-klau-programmen] text aus FREMDEN programmen auszulesen! zum beispiel diesen text hier...
 
Hallo [RiP]-PhreaK,

hmm, nicht ganz einfaches Problem ... ;)

Als erstes musst du dir das Handle der Anwendung besorgen. Wenn du das hast, musst du die ID der Komponente, aus der du etwas auslesen willst, kennen. Dann, z.B., kannst du den Text in deiner Anwendung wiedergeben.

Ich habe dir mal Quellcode für einen Ansatz herausgesucht. (Damit kannst du einen Text in eine geöffnete Notepad-Anwendung schreiben.)

Code:
function GetCompoID(DlgHandle: HWND; SearchClass: String): Integer;
var
  a: array[0..80] of Char;
  h: HWND;
begin
  Result := 0;
  h := GetWindow(DlgHandle, GW_CHILD);
  GetClassName(h, @a[0], 80);
  while (h <> 0) and (a <> SearchClass) do
  begin
    GetNextWindow(h, GW_HWNDNEXT);
    if h <> 0 then GetClassName(h, @a[0], 80);
  end;
  if h <> 0 then Result := GetDlgCtrlID(h);
end;

procedure TForm1.Button1Click(Sender: TObject);
var h, EditHandle: HWND;
    id: integer;
begin
  h := FindWindow('Notepad', nil);
  if not(h = 0) then ID := GetCompoID(h, 'Edit');
  EditHandle := GetDlgItem(h, id);
  SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar(Edit1.Text)));
end;
 
hi

danke, das is schonmal ein suoer ansatz, nur ich schaffe es einfach nicht das ganze umgekehrt zu machen...

ich würde gerne einen ganz normalen text aus einem fremden programm [nicht aus einer editbox, sondern ein normales label] auslesen. ist das überhaupt machbar?

vielen dank nochmal für deine mühe!!!!!

[RiP]-PhreaK
 
Hallo,

du musst nur den Quellcode, der hinter Button1 steht, modifizieren.

Code:
procedure TForm1.Button1Click(Sender: TObject);
var h, EditHandle: HWND;
    id: integer;
begin
  h := FindWindow('Notepad', nil); //Je nachdem, welche Anwendung es ist, musst du den ersten oder zweiten Parameter benutzen
  if not(h = 0) then ID := GetCompoID(h, 'Edit'); // evtl. Label oder Text
  EditHandle := GetDlgItem(h, id);
//  SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar(Edit1.Text)));  Diese zeile kannst du komplett löschen; musst anschließend nur noch den Text Edit1 oder was auch immer zuweisen
end;

nur ich schaffe es einfach nicht das ganze umgekehrt zu machen...
In einer halben Stunde ;)
Bei "richtigen" Programmierern, und so hast du dich selbst genannt, kommt es auch vor, dass man mal einen halben Tag vor einem Problem sitzt und einfach nicht weiterkommt. Tüfteln sag' ich nur ... und viel Kaffee bereithalten :)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück