Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Cursor in geöffneter Datei per AHK-Script bewegen
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Geli
Gast





BeitragVerfasst am: Di Nov 14, 2006 9:21 am    Titel: Cursor in geöffneter Datei per AHK-Script bewegen Antworten mit Zitat

Hallo allerseits,
vor wenigen Wochen bin ich per Zufall auf AHK gestoßen und bin total begeistert. Mittlerweile komme ich auch ganz gut voran, habe aber für das Folgende in den vielen öffentlich zugänglichen Scripts noch keine Lösung gefunden; was aber auch daran liegen kann, dass ich erst, wie gesagt, ganz am Anfang stehe: Lässt sich der normale Cursor (also nicht der Mauszeiger) per AHK-Script in einem geöffneten Dokument zu einer bestimmten Textpassage bewegen? Ich bitte um Nachsicht, wenn ich die Experten hier mit so was langweile.
Geli
Nach oben
BoBo
Gast





BeitragVerfasst am: Di Nov 14, 2006 10:45 am    Titel: Antworten mit Zitat

Zitat:
Experten hier mit so was langweile
Mitnichten. DIe grundsätzliche Frage, wie machst du dies (als User)? Vermutung:
1) du identifizierst die Textpassage (visuell)
2) du bewegst den Cursor an die gewünschte Position

eine Vorgehensweise wäre die Suchfunktion des Editors anzutriggern, oder .. Alles auswählen (Strg+A) und mit StringGetPos die Postion des gewünschten Strings im Text ermitteln, anschließend den Cursor (re)plazieren = Strg+Pos1 (am Textanfang positonieren) und jump Very Happy
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Di Nov 14, 2006 11:03 am    Titel: Antworten mit Zitat

@BoBo
Hast du die zweite Methode schon einmal probiert? Ich halte sie für annähernd unmöglich!

Viel leichter umsetzbar wäre die erste...:
Textstelle über die Suchfunktion auswählen und Cursor an Caret-Position setzen.

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Di Nov 14, 2006 11:32 am    Titel: Antworten mit Zitat

Code:
!y:: ; Alt+y
   ControlGetText, Text, Edit1, SearchWithinText.txt - Notepad
   StringGetPos, Pos, Text, ganz am Anfang stehe: ; gesuchte Passage
      ControlSend, Edit1, ^{Home}{Right %Pos%}, SearchWithinText.txt - Notepad
   WinActivate, SearchWithinText.txt - Notepad
   Return

SearchWithinText.txt
Zitat:
Hallo allerseits,
vor wenigen Wochen bin ich per Zufall auf AHK gestoßen und bin total begeistert. Mittlerweile komme ich auch ganz gut voran, habe aber für das Folgende in den vielen öffentlich zugänglichen Scripts noch keine Lösung gefunden; was aber auch daran liegen kann, dass ich erst, wie gesagt, ganz am Anfang stehe: Lässt sich der normale Cursor (also nicht der Mauszeiger) per AHK-Script in einem geöffneten Dokument zu einer bestimmten Textpassage bewegen? Ich bitte um Nachsicht, wenn ich die Experten hier mit so was langweile.
Geli


Notepad = Editor ! Wink
Nach oben
fredchf



Anmeldedatum: 18.09.2006
Beiträge: 716
Wohnort: Deutschland

BeitragVerfasst am: Di Nov 14, 2006 11:14 pm    Titel: Antworten mit Zitat

hallo bobo,
ich bin begeistert.sowas geht auch? Surprised ich habe es auch mal probiert,funktioniert.
allerdings wird das bei längeren texten wohl zur geduldsprobe.
_________________
Mit freundlichen Grüßen
fredchf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo
Gast





BeitragVerfasst am: Di Nov 14, 2006 11:27 pm    Titel: Antworten mit Zitat

Zitat:
allerdings wird das bei längeren texten wohl zur geduldsprobe.
Dem ist so. Doch mit SetBatchLines, -1 lässt es sich wohl noch etwas kitzeln Wink
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Mi Nov 15, 2006 7:02 am    Titel: Antworten mit Zitat

Oder mit einem schnelleren Prozessor ;D

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Geli
Gast





BeitragVerfasst am: Mi Nov 15, 2006 7:41 am    Titel: Cursor in geöffneter Datei per AHK-Script bewegen Antworten mit Zitat

Hallo ihr Helfer,
Die Methode funktioniert tatsächlich, aber sehr, sehr langsam. Werde dann wohl doch den Weg über den Suchen-Dialog gehen, obwohl ich das eigentlich vermeiden wollte, da mein Script mit verschiedenen Editoren laufen soll, je nachdem, welcher in der Ini-Datei vorgegeben ist. Aber ich kriege das schon hin.
Danke und Grüße
Geli
Zitat:
ich bin begeistert.sowas geht auch? Surprised ich habe es auch mal probiert,funktioniert.
allerdings wird das bei längeren texten wohl zur geduldsprobe.
Nach oben
BoBo
Gast





BeitragVerfasst am: Mi Nov 15, 2006 7:57 am    Titel: Antworten mit Zitat

Zitat:
Die Methode funktioniert tatsächlich, aber sehr, sehr langsam
Die Herausforderung war es, Thalons 'Unmöglichkeits-These' zu wiederlegen. Wink Die Suchfunktion wäre auch mein Favorit. Cool
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Mi Nov 15, 2006 9:53 am    Titel: Antworten mit Zitat

Zitat:
Die Herausforderung war es, Thalons 'Unmöglichkeits-These' zu wiederlegen. Wink Die Suchfunktion wäre auch mein Favorit. Cool
Was sie auch ist, außer für kurze Texte. Ich habe es an die 7627.ste Stelle fahren lassen und was sehe ich? Der hat sich doch glatt um 180 Zeichen verhaut Wink
Nämlich ca 1 pro Zeile.
Der Grund ist folgender:
Der Editor speichert jeden Zeilenumbruch als 2 Zeichen, welche auch mitgezählt werden. Ein Druck nach Rechts "überspringt" quasi ein Zeichen, damit entsteht pro Zeile ein "Offset" von einem Zeichen...

Folgende Methode funktioniert schneller, Voraussetzung ist ausgeschalteter Zeilenumbruch (kann man automatisieren, müsste nur den aktuellen Check-Status auslesen...)
Code:
!y:: ; Alt+y
Zeile =
Pos =
ControlGetText, Text, Edit1, SearchWithinText.txt - Editor
Loop, Parse, Text, `n, `r
{
   Pos := InStr(A_LoopField, "HexeditMX.exe")  ;HexeditMX.exe war der Suchtext
   if Pos > 0
   {
      Zeile := A_Index - 1
      Pos --
      break
   }
}
if Zeile !=
{
   ControlSend, Edit1, ^{Home}{Down %Zeile%}{Right %Pos%}, SearchWithinText.txt - Editor
}
Return
Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Mi Nov 15, 2006 10:17 am    Titel: Antworten mit Zitat

Zitat:
Der Editor speichert jeden Zeilenumbruch als 2 Zeichen, welche auch mitgezählt werden.
Was mir zwar aufgefallen ist (hatte ursprünglich ne MsgBox 'zwischengeschaltet'), aber sich beim Zwergtext nicht ausgewirkt hatte (weil A_LoopReadLine den EOL anders interpretiert?). Danke für die Klärung.
Nach oben
halweg



Anmeldedatum: 05.01.2006
Beiträge: 872
Wohnort: Dresden

BeitragVerfasst am: Mi Nov 15, 2006 10:17 pm    Titel: Antworten mit Zitat

Falls noch an der Suchfunktion Interesse besteht: so würde die Zeile dazu für Notepad aussehen:
Code:
SEND, ^{HOME}^f%label%{ENTER}{ESC}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Mi Nov 15, 2006 11:09 pm    Titel: Antworten mit Zitat

hi,
ich habe mal versucht damit zu markieren,


Code:
!y:: ; Alt+y
Run, SearchWithinText.txt
WinWait, SearchWithinText.txt - Editor,
IfWinNotActive, SearchWithinText.txt - Editor, , WinActivate, SearchWithinText.txt - Editor,
WinWaitActive, SearchWithinText.txt - Editor,
Zeile1 =
Pos1 =
Zeile2 =
Pos2 =
ControlGetText, Text, Edit1, SearchWithinText.txt - Editor
Loop, Parse, Text, `n, `r
{
   Pos1 := InStr(A_LoopField, "ab hier")
   if Pos1 > 0
   {
      Zeile1 := A_Index - 1
      Pos1 --
      break
   }
}
ControlGetText, Text, Edit1, SearchWithinText.txt - Editor
Loop, Parse, Text, `n, `r
{
   Pos2 := InStr(A_LoopField, "markieren")
   if Pos2 > 0
   {
      Zeile2 := A_Index - 1
      Pos2 --
      break
   }
}
; if Zeile1 !=
{
   ControlSend, Edit1, ^{Home}{Down %Zeile1%}{Right %Pos1%}{SHIFTDOWN}{Home}{Down %Zeile2%}{Right %Pos2%}{SHIFTUP}, SearchWithinText.txt - Editor
}
Msgbox, Zeile 1:%Zeile1%`nPosition 1: %Pos1%`nZeile 2: %Zeile2%`n Position 2: %Pos2%
Return
SearchWithinText.txt
Zitat:
diesen text ab hier das auch bis hier markieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Do Nov 16, 2006 9:20 am    Titel: Antworten mit Zitat

Weiß zufällig jemand, wie man die GOTO-Funktion vom Notepad freischaltet?
Die ist bei mir immer ausgegraut, weiß allerdings dass ich sie auch schon einmal genutzt habe...

@Geli
Wofür willst du die Maus dort eigentlich haben??

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
haichen
Gast





BeitragVerfasst am: Do Nov 16, 2006 11:58 am    Titel: Antworten mit Zitat

@Thalon
Gehe zu... ist möglich wenn der Zeilenumbruch ausgeschaltet ist.

Very Happy
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de