| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Di Sep 05, 2006 2:30 pm Titel: #IfWinActive - Ich packs einfach nicht... :( |
|
|
Hallo!
Ich hab mich die letzten 2 Tage mit der Hilfe und der Suche beschäftigt, zwischendurch einen begrenzten erfolg gehabt, aber ich bekomms einfach nicht hin.
Ich will die tastatur so umbelegen, dass wenn das Programm Autodesk Architectural Desktop läuft, z.B.: die Taste "q" an das Programmfester den String:
| Code: | | Send {l down}{l up}{Enter} |
sendet, jedoch wenn ich nebenbei ein anderes Fenster (z.B.: mit Alt-Tab) aufrufe (irgendeines, nicht Autodesk) dass das "q" wieder der Buchstabe "q" ist.
Mein bisheriger Quelltext sieht so aus:
| Code: | SetTitleMatchMode, 1
#IfWinActive Autodesk
#IfWinActive AutoCAD
q::Send {l down}{l up}{Enter}
#IfWinActive
q::q |
was mich gerade zu meiner nächsten Frage bringt: Funktioniert es (vll. ein erfahrungswert) dass ich die beiden IfWinActive zeilen untereinander stehen hab, und dass die Programme die mit Autodesk und AutoCAD anfangen die neue Tastaturbelegung bekommen?
Und kann ich unter dem "q::Send ..." gleich darunter weitere umbenennungen schreiben, so dass das auch funktioniert?
z.B.:
| Code: | #IfWinActive AutoCAD
q::Send {l down}{l up}{Enter}
w::Send {b down}{b up}{Enter} |
Ich bin mir ziemlich sicher, dass es nur an einem Syntaxfehler hängt.
AHK Ver. 1.0.44.01
Danke
Obi-Wahn _________________ 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 |
|
 |
Hasso
Anmeldedatum: 17.11.2005 Beiträge: 104 Wohnort: Hamburg
|
Verfasst am: Di Sep 05, 2006 2:57 pm Titel: |
|
|
Was soll das # vor IfWinActive?
Ich würde das so schreiben:
| Code: |
SetTitleMatchMode, 1
q::
IfWinActive Auto
{
Send {l down}{l up}{Enter}
}
return |
|
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Di Sep 05, 2006 3:12 pm Titel: |
|
|
| Zitat: | | Was soll das # vor IfWinActive? | In diesem Fall? Oder meinst du dies grundsätzlich? Sofern letzteres zutrifft - es kennzeichnet #IfWinActive als ---> Direktive, nicht zu verwechseln mit dem bekannteren Standardbefehl IfWinActive. Also zulässig. Und sinnvoll - meistens.  |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Di Sep 05, 2006 3:27 pm Titel: |
|
|
Um es in umgekehrter Reihenfolge zu beantworten:
Ja, nach einem "#IfWinActive" kannst du eine beliebige Anzahl an Hotkeys einfügen - bis zum nächsten "#IfWinActive".
Den Befehl 2x hintereinander zu schreiben bringt daher nichts.
Du musst die 2 verschiedenen Fenster zuvor zu einer Gruppe zusammenfügen (Befehl: Group, Add) und anschließend als Gruppe bei den "#IfWinActive" verwenden (ahk_group MeinGruppenName).
Dann sollte eigentlich alles funken
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Mi Sep 06, 2006 1:57 pm Titel: |
|
|
Danke an alle. Die umgewandelten Keys funktionieren jetzt perfekt.
Das einzige Problem was ich jetzt hab ist, dass wenn ich im CAD einen Text einfügen will, eine Art textbox kommt (Überschrift: Textformatierung) und diese Box, wird aber von #IfWinActive nicht erkannt.
Soll heißen, dass ich jetzt quasi eine Geheimschrift schreib, da ja jeder Buchstabe was anderes ausgibt. Habt ihr dafür vll. eine lösung (#IfWinActive Textformatierung funktioniert NICHT)?
Meine Source bisher (falls ich einen Fehler gemacht haben sollte):
| Code: | SetTitleMatchMode, 1
GroupAdd, CAD, Autodesk
GroupAdd, CAD, AutoCAD
#IfWinActive ahk_group CAD
; Werkzeugkasten Zeichnen
q::Send Linie{Enter} ; Linie zeichnen
w::Send Klinie{Enter} ; Konstruktionslinie zeichnen
e::Send Rechteck{Enter} ; Rechteck zeichnen
r::Send Bogen{Enter} ; Bogen zeichnen
t::Send Kreis{Enter} ; Kreis zechnen
z::Send Spline{Enter} ; Spline zeichnen
u::Send Ellipse{Enter} ; Ellipse zeichnen
i::Send Einfüge{Enter} ; Block einfügen
o::Send Schraff{Enter} ; Schraffur zeichnen
p::Send Region{Enter} ; Region erstellen
ü::Send MText{Enter} ; Erstellt einen Text
; Werkzeugkasten Ändern
a::Send Kopieren{Enter} ; Kopiert das Objekt
s::Send Spiegeln{Enter} ; Spiegelt das Objekt
d::Send Versetz{Enter} ; Versetzt das Objekt
f::Send Reihe{Enter} ; Reiht Objekte
g::Send Schieben{Enter} ; verschiebt Objekte
h::Send Drehen{Enter} ; Dreht Objekte
j::Send Varia{Enter} ; Vergrößert/kleinert Objekte
k::Send Strecken{Enter} ; Streckt Objekte
l::Send Stutzen{Enter} ; stutzt Objekte
ö::Send Bruch{Enter} ; Bricht Objekte
ä::Send Ursprung{Enter} ; Sprengt Objekte
#IfWinActive
a::a
b::b
c::c
d::d
e::e
f::f
g::g
h::h
i::i
j::j
k::k
l::l
m::m
n::n
o::o
p::p
q::q
r::r
s::s
t::t
u::u
v::v
w::w
x::x
y::y
z::z |
Thx
Obi-wahn _________________ 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 |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Sep 06, 2006 2:15 pm Titel: |
|
|
Was zeigt dir der AU3-Spy als Fensternamen und Fensterklasse an?
Eventuell kannst du eben auch über die Klasse checken (ahk_class XXX).
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Mi Sep 06, 2006 2:38 pm Titel: |
|
|
Der AU3 Window spy (das ding is mir suspekt) zeigt folgendes an:
| Zitat: | >>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Autodesk Architectural Desktop 2006 - [Zeichnung1.dwg]
ahk_class Afx:00400000:8:00010011:00000000:007E0895
>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen: 918, 259 (less often used)
In Active Window: 857, 228
>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: Afx:00400000:28:00000000:00000002:00700AA11
Text:
Color: 0xE8D6CF (Blue=E8 Green=D6 Red=CF)
>>>>>>>>>>( Active Window Position )<<<<<<<<<<
left: 61 top: 31 width: 1274 height: 1018
>>>>>>>>>>>( Status Bar Text )<<<<<<<<<<
(1):
(2):
(3):
(4):
(5):
(6):
(7):
( :
>>>>>>>>>>>( Visible Window Text )<<<<<<<<<<<
Bemaßung
Volumenkörper bearbeiten
Volumenkörper
Layer
Zeich.reihenfolge
Standard
Zeichnung1.dwg
Befehlszeile
Befehlszeile
Marin
Marin
Headlands
MountTam
Refresh Button
New Location Button
New View Category Button
Planliste
PublisToDWF Button
Publish Button
NSS Button
>>>>>>>>>>>( Hidden Window Text )<<<<<<<<<<<
MANAGER FÜR PLANUNGSUNTERLAGEN
Ressourcenzeichnungen
Ansichtsliste
>>>>( TitleMatchMode=slow Visible Text )<<<<
Error: Index greater than number of layers
>>>>( TitleMatchMode=slow Hidden Text )<<<<
|
Hilft das, denn ich kenn mich nicht so richtig aus...
MfG
Obi-Wahn _________________ 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 |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Sep 06, 2006 4:00 pm Titel: |
|
|
Also die interessanten Infos zum Fenster findest du ganz oben:
Autodesk Architectural Desktop 2006 - [Zeichnung1.dwg] <-- Fenstername
ahk_class Afx:00400000:8:00010011:00000000:007E0895 <-- AHK-Klasse
Manchmal kann auch der Name des fokussierten Controls interessant sein:
ClassNN: Afx:00400000:28:00000000:00000002:00700AA11
Das Problem bei derartigen Klassen (Fenster und ClassNN) ist, dass diese bei manchen Applikationen beim Aufbau des Fensters generiert werden und sich schwer verwenden lassen.
Aber war das wirklich vom nicht erkannten Fenster? Hier würde mich der Name arg wundern. Sieht mir eher nach dem bekannten Hauptfenster aus, welches ja ohnehin bereits funktioniert?!
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Mi Sep 06, 2006 4:25 pm Titel: |
|
|
Ahja. Ich habs mir nochmal angeschaut, und durch zufall draufgekommen, dass wenn ich auf das Fenster klicke und geklickt halte, erscheint dass im Windowspy:
| Code: | >>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Textformatierung
ahk_class Afx:00400000:8:00010011:00000000:00000000 |
Ich denke, dass das schon eher hinkommen kann, aber was tun damit?
EDIT:
Und unter der Rubrik "Now under Mouse Cursor" ist keine Class aufgelistet (wundert mich nicht, ich halte ja geklickt). _________________ 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 |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Sep 06, 2006 4:36 pm Titel: |
|
|
Damit müsste er "Textformatierung" als Window-Text eigentlich akzeptieren!
Ich würde das Fenster unter diesem Namen in die Group aufnehmen und nochmal testen...
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Do Sep 07, 2006 8:15 am Titel: |
|
|
Hi!
Ich habs jetzt ausprobiert, aber es funktioniert nicht. Es funktioniert weder mit ahk_class Textformatierung noch mit GroupAdd.
(Ich frage mich auch, wieso ich den Titel "Textformatierung" zur Gruppe hinzufügen sollte)
Sonstige lösungsvorschläge?
Danke
Obi-Wahn _________________ 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 |
|
 |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 872 Wohnort: Dresden
|
Verfasst am: Do Sep 07, 2006 8:16 am Titel: |
|
|
Im Übrigen kannst du dir und die Befehle danach sparen. Wenn das betreffende Fenster nicht aktiv ist, werden die Buchstaben ohnehin ganz normal verarbeitet.  |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Do Sep 07, 2006 8:44 am Titel: |
|
|
Dass es mit ahk_class Textformattierung nicht funktioniert ist völlig klar.
| Zitat: | | (Ich frage mich auch, wieso ich den Titel "Textformatierung" zur Gruppe hinzufügen sollte) | Na, wenn du die Ersetzungen auch für dieses Fenster haben möchtest macht es doch Sinn dieses Fenster auch hinzuzufügen ^^
Du könntest aber auch heute noch einmal schaun ob die ahk_class wieder ahk_class Afx:00400000:8:00010011:00000000:00000000 ist oder eine andere. Falls sie gleich ist kannst du es ja einmal mit dieser probieren!
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 736 Wohnort: Wien
|
Verfasst am: Do Sep 07, 2006 9:03 am Titel: |
|
|
War ja auch nur zur Demonstration, dass ich alles Probiert habe.
Ich kanns auch nicht brauchen, dass wenn ich einen Text schreibe, dass es mir dann die Befehle hinschreibt.
die ahk_class ist wieder dieselbe, aber mit
#IfWinExist ahk_class Afx:00400000:8:00010011:00000000:00000000
funktionierts auch nicht. Hab ich einen syntaxfehler gemacht, oder liegt das problem woanders?
MfG
Obi-Wahn _________________ 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 |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Do Sep 07, 2006 9:50 am Titel: |
|
|
Kommt ganz drauf an ob du (wie ich gesagt habe) erst nochmal im AU3-Spy überprüft hast ob die Klasse heute noch die selbe ist wie gestern
Ansonsten würde ich einfach das Fenster mal anzeigen, die aktuelle Klasse eintragen (hast ja richtige Syntax, wenns an richtiger Stelle steht ^^) und das Script reloaden.
Wenns dann nicht geht liegt fast sicher ein User-Fehler vor.
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
|