Seite 1 von 1

mit TypeKeys einen Backslash tippen

Verfasst: Mittwoch 13. August 2008, 09:05
von bcit6k
Hallo alle zusammen,

ich hab mich jetzt eingehend mit TypeKeys beschäftigt.
Leider bin ich nicht schlau genug um einen backslah zu tippen,

ich habs schon mit ^%(?) probiert oder mit %(92) geht auch nicht.

hat jemand eine idee wie das gehen soll?

schreiben will ich c:\pdfs\

danke! für die hilfe

Verfasst: Mittwoch 13. August 2008, 10:03
von Leonidas
Was sollen denn Typekeys sein? Wenn du einen Backslash im String haben willst, schreibst du entweder zwei Backslashes oder nutzt einen Raw-String.

Verfasst: Mittwoch 13. August 2008, 10:30
von bcit6k
typekeys ist on pywinauto die sendkeys verwenden, backslash in raw? was ist das? wie kann ich das machen? wenn ich einen backslah rein schreibe bekomme ich ein ß weil er die taste ß drückt aber nicht mit der richtigen tastnekombination.

Verfasst: Mittwoch 13. August 2008, 10:48
von Leonidas
bcit6k hat geschrieben:typekeys ist on pywinauto die sendkeys verwenden, backslash in raw?
Kann mir das jemand übersetzen?

Backslashes in Strings:

Code: Alles auswählen

normal = "Guck, ein Backslash -> \\ <-"
raw = r"Guck, ein Backslash -> \ <-"

Verfasst: Mittwoch 13. August 2008, 11:13
von bcit6k
sorry das ich mich da unklar ausgedrückt habe, hier mal ien codebeispiel:

Code: Alles auswählen

app.top_window_().Edit.TypeKeys(str("C+(.)\pdfs\ %s") % (row[2]),with_spaces = True)
das Sollte C:\pdfs\filename ergeben, tuts nicht es kommt dabei raus
C:ßpdfsßfilename.pdf

es gibt zwar in sendkeys möglichkeiten eine taste vor zu schalten
so zb der doppelpunkt mit +(.) + steht für shift ^für strg und % für alt
wenn ich aber ^%(ß) probiere geht das nicht weil ich die meldung bekomme

Syntax error no ascii character

Verfasst: Mittwoch 13. August 2008, 11:25
von Leonidas
Meinst du sowas?

Code: Alles auswählen

app.top_window_().Edit.TypeKeys("C:\\pdfs\\%s" % row[2], with_spaces=True)

Verfasst: Mittwoch 13. August 2008, 12:10
von bcit6k
mhmm, kommt da bei dir echt c:\pdfs raus? ich krieg da
c.ßpdfsß

Verfasst: Mittwoch 13. August 2008, 13:23
von Leonidas
bcit6k hat geschrieben:mhmm, kommt da bei dir echt c:\pdfs raus?
Nein, ich habe kein Windows, das war nur so ein Gedanke.

Wenn ich mir das so ansehe könntest du es auch

Code: Alles auswählen

"C+(.){\\}pdfs{\\} %s"
als String ausprobieren. ``{}`` scheint als Escape zu funktionieren, also könntest du das mal testen.

Irgendwie scheint mir das Modul sehr auf ein US-Tastenlayout eingestellt zu sein, bei einer Deutschen Tastatur kommen da einige Probleme zustande, weil es eben "Alt Gr" gibt und weil dort einfach Tasten anders liegen.

Verfasst: Mittwoch 13. August 2008, 14:29
von bcit6k
ja es ist tazächlich das tastaturlayout. ich habe nun das ganze auf us english umgestellt nun gehts halbigs, gibts eine möglichkeit von python aus die systemsprache um zu stellen?

Verfasst: Mittwoch 13. August 2008, 14:30
von Leonidas
bcit6k hat geschrieben:ja es ist tazächlich das tastaturlayout. ich habe nun das ganze auf us english umgestellt nun gehts halbigs, gibts eine möglichkeit von python aus die systemsprache um zu stellen?
Das ist doch mehr als nur hässlich; hast du schon meinen anderen Tipp probiert?

Verfasst: Mittwoch 13. August 2008, 14:50
von bcit6k
ja hätt ich gerne, aber die doku um sendkeys is sehr dünn. ich habe schon sehr viel gegoogelt und nix besseres gefunden, bin aber über jeden tipp froh und werde das ergebniss hier posten.

:)

Verfasst: Mittwoch 13. August 2008, 14:54
von Leonidas
bcit6k hat geschrieben:ja hätt ich gerne, aber die doku um sendkeys is sehr dünn. ich habe schon sehr viel gegoogelt und nix besseres gefunden, bin aber über jeden tipp froh und werde das ergebniss hier posten.
Du sollst doch nur meinen obengenannten Tipp testen und sagen ob das hilft:

Code: Alles auswählen

app.top_window_().Edit.TypeKeys("C+(.){\\}pdfs{\\}%s" % row[2], with_spaces=True)

Verfasst: Dienstag 17. Februar 2009, 17:22
von unix
Ist zwar schon älter, aber habe dasselbe Problem.

Hast du eine Lösung gefunden, bcit6k?

Re: mit TypeKeys einen Backslash tippen

Verfasst: Donnerstag 9. August 2012, 13:26
von nenad_naukovic
Ist zwar nicht spezifisch TypeKeys, dafür aber direkt SendKeys

Code: Alles auswählen

program   = 'C:\Program Files (x86)\Internet Explorer\iexplore.exe'

SendKeys('''{LWIN}r%(program)s{ENTER}'''% {'program': program.replace('\\','%^{\\}').replace(':','+{.}').replace('(','+{8}').replace(')','+{9}')}, with_spaces=True)
aus dem String des Windows-Pfades werden jeweils die "Sonderzeichen" ersetzt

Backslash (Alt + Strg + escaped \):

Code: Alles auswählen

.replace('\\','%^{\\}')
Doppelpunkt (Shift + .):

Code: Alles auswählen

.replace(':','+{.}')
Klammer auf (Shift + 8):

Code: Alles auswählen

.replace('(','+{8}')
Klammer zu (Shift + 9):

Code: Alles auswählen

.replace(')','+{9}')
Klappt mit:
CH -Tastatur
Windows 7
Python 2.6
SendKeys 0.3