Autor |
Beitrag |
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Mo 23.03.09 12:16
Hi,
also ich hab in meinem Programm eine Ausgabe mit einer Dateiangabe diese Öffne ich dann mit rechtsklick.
Und ich möchte dem User ersparren nach der Zeile zu suchen.
Momentan sieht der Aufruf so aus:
Delphi-Quelltext 1: 2:
| CreateProcess(Pchar( Getdirectory + '\System32\notepad.exe'), Pchar('open '+ Ausgabe), nil, nil, true, 0, nil, nil, pi, si); |
Ich hab jetzt mal versucht rauszufinden wie ich gleichzeitig in die betreffende Zeile springen kann.
Bzw. welche Parameter ich da mitgeben könnte?
mfg Nicolas
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 23.03.09 12:32
Ich glabue nicht, dass Notepad einen entsprechenden Startparameter hat. Notepad2 hätte so einen.
Wenn Du Notepad verwenden möchtest, müsstest Du vielleicht die Pfeil-Nach-Unten-Taste so oft simulieren, bis Du an der richtigen Zeile bist. Aber das halte ich für sehr unschön. Ich persönlich würde versuchen, auf Notepad zu verzichten und die Datei selbst z.B. in einem Memo anzuzeigen. Dann hast Du die volle Kontrolle.
Gruß,
Jens
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
thepaine91 
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Mo 23.03.09 13:22
Hi, ja das habe ich fast befürchtet allerdings möchte ich das ganze nicht im Memo öffnen, da es nicht die selben funktionen wie Notepad vertritt. =)
Bzw. ich keine lust habe einen Texteditor zu schreiben.
Der die funktionen hat.
Wäre kurz gesagt mehr Arbeit als ich reinstecken will aber Danke für deine Antwort.
mfg Nic
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 23.03.09 13:30
wie gesagt, auch wenn ich es nicht schön finde, könntest Du z.B. Notepad2 verwenden. Da kannst Du z.B. mit notepad2.exe /g 20 c:\datei.txt direkt mit dem Cursor in Zeile 20 springen.
Notepad2 gibt es eigentlich hier: www.flos-freeware.ch/ Scheint aber momentan down zu sein. Das Tool gibt es aber auch auf diversen Freewareseiten zum Download.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
thepaine91 
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Mo 23.03.09 14:03
Das Problem ist jetzt aber das es nicht nur auf meinem Rechner laufen soll sondern auch auf anderen.
(Bezogen auf mein kleines Projekt (String Suche) das ihr hier Vorgestellt habe).
Und diese haben nicht zwangsweise notepad.
Aber das konntest du nicht wissen, hätte ich vorher erwähnen sollen.
Ich denke ich belasse es einfach dabei wie es ist.
mfg Nic
|
|
Rupert
      
Beiträge: 47
Erhaltene Danke: 1
Netware, Linux, WIN A-Z, DOS
Delphi 2005- Delphi 2009
|
Verfasst: Mi 25.03.09 17:24
Versuche über ein keybd_event (API-Funktionen) den Cursor im Notebad zu bewegen.
Das Fenster erhältst du mit X-Spy
Delphi-Quelltext 1: 2:
| hFenster :=FindWindow('IEFrame', 'Internet Explorer'); EnableWindow(Hfenster,bEnable); |
anschließend über eine Schleife
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| for i:=1 to 20 do keybd_event(VK_Down ,0,0,0); for i:=1 to 3 do keybd_event(VK_Right ,0,0,0); |
Liste der Keyboardevents
.... ist nur so ein Gedanke von mir - muss man probieren - aber ich denke das klappt!
_________________ Grüße Rupert
|
|
thepaine91 
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 26.03.09 10:33
D.h. ich soll dann
Delphi-Quelltext 1: 2:
| for i := 0 to Zeile do Vk_down |
ist zwar nicht ellegant, aber immerhin eine Lösung. Muss ich mal gucken in wie fern sich das umsetzen lässt.
|
|
|