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 

Geschweifte Klammern u.ä. aus der Zwischenablage einfügen

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Heplu
Gast





BeitragVerfasst am: Mi Jul 11, 2007 10:34 pm    Titel: Geschweifte Klammern u.ä. aus der Zwischenablage einfügen Antworten mit Zitat

Für das Einfügen der Zwischenablage auf der DOS-Konsole mit Ctrl-V hatte ich dieses kleine Skript geschrieben:
Code:

#IfWinActive ahk_class ConsoleWindowClass
^v::SendInput, %Clipboard%
#IfWinActive

Das funtionierte recht gut, aber wenn die Zwischenablage so etwas enthielt:
Code:
Text{14264454-AB47D-554388-888}Text
..., dann fehlte beim Einfügen der Text zwischen den "Sonderzeichen" { und }. Andere Sonderzeichen wurden einfach verschluckt (#, +, !).

Die Lösung nach einigem Probieren sieht jetzt so aus:
Code:

#IfWinActive ahk_class ConsoleWindowClass
^v::
Zwischen= %Clipboard%
stringReplace, Zwischen, Zwischen, {, {}, All
stringReplace, Zwischen, Zwischen, }, {}}, All
stringReplace, Zwischen, Zwischen, #, {#}, All
stringReplace, Zwischen, Zwischen, !, {!}, All
stringReplace, Zwischen, Zwischen, +, {+}, All
stringReplace, Zwischen, Zwischen, ^, {^}, All
SendInput, %Zwischen%
return
#IfWinActive


Mein Problem war die erste Ersetzung: Ich hätte erwartet, dass es so hätte gehen müssen:
Code:
stringReplace, Zwischen, Zwischen, {, {{}, All

Dann wird aber die öffnende Klammer nicht eingefügt.
Warum ist das so?
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 754
Wohnort: C:\

BeitragVerfasst am: Do Jul 12, 2007 9:32 am    Titel: Antworten mit Zitat

Ich glaube mal du musst du klammer escapen. Schau mal HIER
oder benutzer das zeichen was du vor die klammer setzt
Code:
`
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stefan



Anmeldedatum: 24.07.2006
Beiträge: 14

BeitragVerfasst am: Do Jul 12, 2007 2:49 pm    Titel: Antworten mit Zitat

> Für das Einfügen der Zwischenablage auf der DOS-Konsole mit Ctrl-V
> hatte ich dieses kleine Skript geschrieben

Ideen gibt's Laughing
Danke Heplu, sehr nützlich, das. Very Happy
_________________
Stefan Always On The Side Of Life ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 754
Wohnort: C:\

BeitragVerfasst am: Do Jul 12, 2007 7:48 pm    Titel: Antworten mit Zitat

Stefan hat Folgendes geschrieben:
> Für das Einfügen der Zwischenablage auf der DOS-Konsole mit Ctrl-V

Dos...
Code:
Clipboard = Dein text
msgbox, jetzt ist im clipbaord "%clipboard%
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heplu
Gast





BeitragVerfasst am: Do Jul 12, 2007 10:19 pm    Titel: Antworten mit Zitat

Nochmal nachgedacht, mit msgbox debuggt...
Die erste Ersetzung
Code:

stringReplace, Zwischen, Zwischen, {, {}, All

macht aus {Hallo} {}Hallo}.
Die zweite Ersetzung
Code:

stringReplace, Zwischen, Zwischen, }, {}}, All

macht aus {}Hallo} {{}}Hallo{}}.
Die Ausgabe mit SendInput funktioniert zufällig, vor dem Hallo steht aber jetzt eine schließende geschweifte Klammer zuviel, die wohl einfach ignoriert wird.
Die Lösung heißt jetzt für mich: Zunächst die schließenden Klammern durch zwei Zeichen ersetzen (z.B. durch t}, dann die öffnenden durch {{}, dann die sozusagen gemerkten ursprünglichen schließenden Klammern (erkennbar an dem davorstehenden t) durch {}} .
Das komplette Skript mit den restlichen Sonderzeichen (gibt es noch mehr?), die kein Problem sind, da sie nicht ihrerseits in den Entwertungszeichen vorkommen:
Code:

#IfWinActive ahk_class ConsoleWindowClass
^v::
   Zwischen = %Clipboard%
   stringReplace, Zwischen, Zwischen, }, t}, All
   stringReplace, Zwischen, Zwischen, {, {{}, All
   stringReplace, Zwischen, Zwischen, t}, {}}, All
   stringReplace, Zwischen, Zwischen, #, {#}, All
   stringReplace, Zwischen, Zwischen, !, {!}, All
   stringReplace, Zwischen, Zwischen, +, {+}, All
   stringReplace, Zwischen, Zwischen, ^, {^}, All
   SendInput, %Zwischen%
return
#IfWinActive

Das Problem wird ausgelöst durch die "Paarigkeit" der Entwertungszeichen, hätte man z.B. den Backslash als Entwertungszeichen, könnte man jedes Sonderzeichen einfach so entwerten -- auch den Backslash.
Das Fenster der neuen Windows-Kommandozeile "PowerShell" hat übrigens auch die ahk_class ConsoleWindowClass, hier hilft das Skript also auch.

Wenn jemand eine gute Idee für das Kopieren aus der DOS-Box heraus hat, so bin ich sehr interessiert. Was es so schwierig macht, ist wohl, dass AutoHotkey nicht den Inhalt der DOS-Box lesen kann.
Nach oben
Stefan



Anmeldedatum: 24.07.2006
Beiträge: 14

BeitragVerfasst am: Fr Jul 13, 2007 7:19 am    Titel: Antworten mit Zitat

> Wenn jemand eine gute Idee für das Kopieren aus der DOS-Box heraus hat,

Dafür gibt ein kleines Tool => cb.exe

Download über Google => cb.exe autohotkey wiki

cb.exe in einen Ordner im Suchpfad kopieren (zB %SystemRoot%)

Aufruf Beispiel:

C:\>dir /b |cb

Rot = Standard DOS Befehl
Dann ein Pipe | (Alt+124) Das Ergebnis der Aktion links der Pipe wird als Eingabe an den Befehl rechts der Pipe übergeben
....... (zumindest Standardmässig, also ohne Redirections)
Blau = cb.exe

--
Edit:
Oh das Thema gabs schon oft, schau mal:
http://www.google.de/search?hl=de&q=cb.exe+autohotkey+wiki+&btnG=Suche&meta=


--
http://www.autohotkey.com/docs/FAQ.htm
Alternatively, there is a small freeware utility cb.zip (4 KB) that captures
up to 512 KB of output from a command or program. The text is captured
to the clipboard, which a script can access via the clipboard variable.
http://www.autohotkey.com/misc/cb.zip
_________________
Stefan Always On The Side Of Life ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heplu
Gast





BeitragVerfasst am: Fr Jul 13, 2007 12:53 pm    Titel: Antworten mit Zitat

Stefan hat Folgendes geschrieben:
> Wenn jemand eine gute Idee für das Kopieren aus der DOS-Box heraus hat,
Dafür gibt ein kleines Tool => cb.exe


Vielen Dank für den Hinweis. Das Tool ist sicher hilfreich, wenn man rechtzeitig weiß, dass man etwas in die Zwischenablage schieben will.

Bei der täglichen Arbeit könnte ich etwas anderes gut gebrauchen: In der DOS-Box beim täglichen interaktiven Benutzen ohne die Maus markieren und das Markierte kopieren zu können, wie z.B. in Notepad.

Das erste Problem dabei ist schon, das zu markieren, was dann kopiert werden soll.

Markieren kann man über Alt-Leertaste, dann im Menü auf Bearbeiten, dann auf Markieren.
Dann ist die "Markiermarke" allerdings oben links im Fenster, und man muss mit den Pfeiltasten an den gewünschten Ort, dann mit Umschalt+Pfeiltasten markieren.

Sinnvoll wäre in meinen Augen, dass das Markieren an der aktuellen Cursorposition beginnt, doch um das mit AutoHotkey zu machen, müsste AutoHotkey Zugriff auf die Cursorposition (welche Zeile und Spalte des Fenstertextes) und dann fürs Kopieren auch auf den Fenstertext haben. Im Windows Spy wird aber vom DOS-Fenster nichts an Inhalt erkannt.
Nach oben
msgbox



Anmeldedatum: 05.05.2007
Beiträge: 754
Wohnort: C:\

BeitragVerfasst am: Fr Jul 13, 2007 12:59 pm    Titel: Antworten mit Zitat

was redet ihr alle aufeinmal von dos? wir sind im einen AHK board Exclamation
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Obi-Wahn



Anmeldedatum: 19.04.2006
Beiträge: 651
Wohnort: Wien

BeitragVerfasst am: Fr Jul 13, 2007 1:00 pm    Titel: Antworten mit Zitat

Y the hell verwendest du nicht den Quick edit Modus im cmd?

Gehst du auf: Eigenschaften (Alt - Space --> Eigenschaften) -> Optionen und markierst bei den Bearbeitungsoptionen den "Quick Edit Modus" und "Einfügemodus".

Markieren geht dann über die Linke maustaste (Klicken und Ziehen)
Kopieren aus der cmd per Rechte Maustaste
Einfügen in die cmd per Rechte Maustaste.

Oder meintest du was anderes als cmd.exe?!?
_________________
Garten ist eine Kunstnatur
Das Leben ist nicht fair. Es ist nur fairer als der Tod, das ist alles.
Obi-Wahns Codeschnipsel @ securityvision.ch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Heplu
Gast





BeitragVerfasst am: Fr Jul 13, 2007 4:19 pm    Titel: Antworten mit Zitat

Obi-Wahn hat Folgendes geschrieben:
Y the hell verwendest du nicht den Quick edit Modus im cmd?


Den Quick-Edit-Modus verwende ich ja (beim Kopieren notgedrungen, beim Einfügen manchmal), aber dazu ist immer ein Griff zur Maus nötig.

Ctrl-V und Ctrl-C sind vielen in Fleisch und Blut übergegangen, die Griffe scheitern aber ohne AHK-Hilfe im Fenster der cmd.exe.

@msgbox: Auch cmd.exe ist ein Windows-Programm, und bei AHK suche ich eine Lösung, die Schwächen des Programms zu beheben. Habe ich ja auch zur Hälfte gefunden...
Nach oben
HePlu
Gast





BeitragVerfasst am: Fr Okt 19, 2007 4:24 pm    Titel: Antworten mit Zitat

Inzwischen dazugelernt.
So geht das Einfügen auch mit Sonderzeichen ja viel leichter:
Code:

#IfWinActive ahk_class ConsoleWindowClass
    ^v::SendInput {Raw}%Clipboard%
#IfWinActive
Nach oben
BoBo¨
Gast





BeitragVerfasst am: Fr Okt 19, 2007 6:09 pm    Titel: Antworten mit Zitat

Soweit ich mich erinnere funzt die DOSBox mit ASCII-Zeichensatz, während deine Zeichen einem erweiterten Zeichensatz angehören (ANSI, oder?) Sad
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
Seite 1 von 1

 
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