Autor Beitrag
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
 CreateProcess(Pchar( Getdirectory + '\System32\notepad.exe'), Pchar('open '+ Ausgabe), 
nilnil, true, 0{NORMAL_PRIORITY_CLASS}nilnil, 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47
Erhaltene Danke: 1

Netware, Linux, WIN A-Z, DOS
Delphi 2005- Delphi 2009
BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
2:
hFenster :=FindWindow('IEFrame''Internet Explorer');  // so Ähnlich wie beim Explorer
EnableWindow(Hfenster,bEnable); //enables or disables mouse and keyboard input to the specified window or control.


anschließend über eine Schleife
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
for i:=1 to 20 do
  // cursor_down
  keybd_event(VK_Down ,0,0,0); // Pfeil nach unten

for i:=1 to 3 do
  keybd_event(VK_Right ,0,0,0); // Pfeil nach rechts


Liste der Keyboardevents

.... ist nur so ein Gedanke von mir - muss man probieren - aber ich denke das klappt!

_________________
Grüße Rupert
thepaine91 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 26.03.09 10:33 
D.h. ich soll dann

ausblenden 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.