mit TypeKeys einen Backslash tippen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was sollen denn Typekeys sein? Wenn du einen Backslash im String haben willst, schreibst du entweder zwei Backslashes oder nutzt einen Raw-String.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 -> \ <-"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Meinst du sowas?

Code: Alles auswählen

app.top_window_().Edit.TypeKeys("C:\\pdfs\\%s" % row[2], with_spaces=True)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

mhmm, kommt da bei dir echt c:\pdfs raus? ich krieg da
c.ßpdfsß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

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.

:)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
unix
User
Beiträge: 16
Registriert: Dienstag 20. Januar 2009, 16:22

Ist zwar schon älter, aber habe dasselbe Problem.

Hast du eine Lösung gefunden, bcit6k?
nenad_naukovic
User
Beiträge: 1
Registriert: Donnerstag 9. August 2012, 13:14

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
Antworten