Entwickler-Ecke
Windows API - Textdatei mit Notepad öffnen in einer bestimmten Zeile
thepaine91 - Mo 23.03.09 12:16
Titel: Textdatei mit Notepad öffnen in einer bestimmten Zeile
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 - 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
thepaine91 - 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 - 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:
http://www.flos-freeware.ch/ Scheint aber momentan down zu sein. Das Tool gibt es aber auch auf diversen Freewareseiten zum Download.
thepaine91 - 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 - 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 [
http://www.x-spy.net/]
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 [
http://www.kbdedit.com/manual/low_level_vk_list.html]
.... ist nur so ein Gedanke von mir - muss man probieren - aber ich denke das klappt!
thepaine91 - 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!