 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 611 Wohnort: Wien
|
Verfasst am: Do Mai 15, 2008 9:15 am Titel: |
|
|
Nimm nicht IfWinActive, sondern IfWinExist.... _________________ 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 |
|
 |
anna
Anmeldedatum: 19.12.2007 Beiträge: 24
|
Verfasst am: Do Mai 15, 2008 9:34 am Titel: |
|
|
Schreib ich aber das IfWinExist in
| Code: |
IfWinExist("Assistent zum Hinzufügen eines Standard-TCP/IP-Druckerports", "Das Gerät wurde im N")
Send, {Enter}
IfWinExist("Assistent zum Hinzufügen eines Standard-TCP/IP-Druckerports", "Sie haben einen Port")
Send, {Enter}
|
dann meckert er.
Muss ich IfWinExist in den letzten Teil integrieren?? |
|
| Nach oben |
|
 |
BoBo² Gast
|
Verfasst am: Do Mai 15, 2008 10:05 am Titel: |
|
|
a) immer interessant wenn der Hilfesuchende dem Helfenden auch sagt was der 'Meckerer' den eigentlich 'gesagt' hat.
Nennt sich in der EDV -> Fehlermeldung. Für die NichtEDVler. Wer dem Arzt nicht sagt wo es genau weh tut, sondern nur das Etwas weh tut, wird mit Fehlmedikamentierung nicht unter zweimaligem Nierenversagen bestraft!
b) Was veranlasste dich den Befehl IfWinExist mit der Syntax für WinExist() zu verwenden?? Willkürlich ausgedachte Befehlsfolgen werden vom Interpreter mit Fehlermeldung retourniert. Würdest du auch tun wenn du Interpreter wärst. |
|
| Nach oben |
|
 |
anna
Anmeldedatum: 19.12.2007 Beiträge: 24
|
Verfasst am: Do Mai 15, 2008 10:13 am Titel: |
|
|
Bei der Installation der Drucker kann es passieren, das er nicht eingeschalten ist, wenn das so ist, werden 2 Fenster angezeigt, die bei dem eingeschaltenen Drucker nicht erscheinen.
Deshalb brauche ich die Möglichkeit, sollten diese Fenster vorhanden sein, soll er die geforderten SEND ausführen.
Sollten diese Fenster aber nicht erscheinen, soll er darüber hinweg gehen und weitermachen.
Fehlermeldung: Call to nonexistent function!! |
|
| Nach oben |
|
 |
Bobo² Gast
|
Verfasst am: Do Mai 15, 2008 10:56 am Titel: |
|
|
| Zitat: | | Fehlermeldung: Call to nonexistent function!! | Bereits beantwortet. IfWinExist ist keine Funktion sondern ein Befehl, ergo kann die Pseudo'Funktion' IfWinExist (aufgrund der fälschlich angewendetetn Funktionsschreibweise aber als solche ausgewiesen) nicht gefunden werden. |
|
| Nach oben |
|
 |
BoBo² Gast
|
Verfasst am: Do Mai 15, 2008 11:22 am Titel: |
|
|
| Code: | #Persistent
SetTitleMatchMode, 2
SetTimer, KillDieDinger, 500
Return
KillDieDinger:
IfWinActive, eines Standard-TCP/IP-Druckerports, Das Gerät wurde im N
Send, {Enter} ; hier wäre ein [i]ControlSend[/i] sicherer
IfWinActive, eines Standard-TCP/IP-Druckerports, Sie haben einen Port
Send, {Enter} ; hier wäre ein [i]ControlSend[/i] sicherer
Return |
|
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 611 Wohnort: Wien
|
Verfasst am: Do Mai 15, 2008 1:05 pm Titel: |
|
|
@anna:
Die "Funktion" die ich geschrieben hab, nennt sich "WinActivate". Da du gepostet hast: "ifWinActive" dachte ich, du nimmst schon einen regulären befehl.
| Code: | SetTitleMatchMode, 3
F12::
s_IP =
Var =
Var2 =
Run, %comspec% /c "rundll32.exe shell32.dll`,SHHelpShortcuts_RunDLL AddPrinter", , Hide
WaitActive("Druckerinstallations-Assistent", "Willkommen")
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Lokaler Drucker`, der an den Computer angeschlossen ist")
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Einen neuen Anschluss erstellen")
Send, {Shift down}{Tab}{Shift up}{Down}s{Enter}
WaitActive("Assistent zum Hinzufügen eines Standard-TCP/IP-Druckerports", "Mit diesem Assistent")
Send, {Enter}%s_IP%{Enter}
; Hier rein
IfWinExist
{
WinActivate
Send, {Enter}
}
; Sollte reichen. Keine parameter, also wird das letzte fenster verwendet.
WaitActive("Druckerinstallations-Assistent", "Wählen Sie den Herst")
Send, {TAB 5}{ENTER}
WaitActive("Installation von Datenträger", "&Dateien des Herstel")
Send, %Var%{Tab 2}{Enter}
WaitActive("Druckerinstallations-Assistent", "Wählen Sie den Herst")
Send, {Tab 2}{Enter}
WaitActive("Druckerinstallations-Assistent", "HP LaserJet 2300 Ser")
Send, %Var2%{Enter}
Control, Check, , Button2, Druckerinstallations-Assistent, Geben Sie einen Name
WaitActive("Druckerinstallations-Assistent", "Wenn dieser Drucker")
Control, Check, , Button1, Druckerinstallations-Assistent, Drucker nicht freigeben
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Soll eine Testseite")
Control, Check, , Button3, Druckerinstallations-Assistent, Soll eine Testseite gedruckt werden?
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Fertigstellen des As")
Send, {Enter}
Return
WaitActive(Title, Text) {
WinWait, %Title%, %Text%
IfWinNotActive, %Title%, %Text%, WinActivate, %Title%, %Text%
WinWaitActive, %Title%, %Text%
}
|
Greets und Mahlzeit
O-W _________________ 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 |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 842 Wohnort: Zuhause
|
Verfasst am: Do Mai 15, 2008 3:36 pm Titel: |
|
|
sag mal anna, wäre es nicht vieeeel einfacher euren samba server so zu ergänzen, dass wenn ein windows benutzer auf den freigegebenen drucker klickt, automatisch (so sie denn fehlen) die passenden treiber installiert? da muss der benutzer zum schluss nicht mal mehr irgendwas abnicken, einfach anklicken und losdrucken (wird automatisch von windows als drucker gespeichert).
mehr dazu beispielsweise unter
http://www.tecchannel.de/server/linux/402263/index5.html
oder mit
oder bei google. google ist unser freund!
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
anna
Anmeldedatum: 19.12.2007 Beiträge: 24
|
Verfasst am: Fr Mai 16, 2008 10:20 am Titel: |
|
|
Für die Linux-Benutzer verwenden wir schon diesen CUPS-Dienst, aber
es geht um die Windowsbenutzer.
Der Code funktioniert wieder nur wenn der Drucker an ist.
Mach ich zweimal IfWinExist, macht er zwar dann dieses Fenster, das dann auftaucht richtig "zu", aber danach bleibt er wieder hängen.
Schreib ich nur einmal IfWinExist, funktioniert es zwar bei den Druckern, die aus sind, aber nicht bei denen die an sind.
Irgendwie ist das verhext
| Code: |
IfWinExist
{
WinActivate
Send, {Enter}
}
IfWinExist
{
WinActivate
Send, {Enter}
}
oder
IfWinExist
{
WinActivate
Send, {Enter}
}
|
|
|
| Nach oben |
|
 |
BoBo² Gast
|
Verfasst am: Fr Mai 16, 2008 10:37 am Titel: |
|
|
| Zitat: | | Der Code funktioniert wieder nur wenn der Drucker an ist. | Welcher Code? Deiner? Meiner (den du offensichtlich ignoriert hast)? Seiner?
Wenn du IfWinExist benutzt, prüft er die Existenz eines Fensters. Das Fenster muss aber nicht aktiv sein. Ein anschließendes Send erreicht also mitunter nicht das gedachte Ziel/Fenster.
Und IfWinExist ohne jeglichen Fenstertitel benutzt das zuletzt gefundene Fenster, was wiederum ein beliebiges Anderes sein kann.
Direkte Frage. Liest du die AHK-Hilfe? Ja/Nein. |
|
| Nach oben |
|
 |
anna
Anmeldedatum: 19.12.2007 Beiträge: 24
|
Verfasst am: Fr Mai 16, 2008 10:46 am Titel: |
|
|
ja, ich lese die AHK-Hilfe schon.
Das mit dem IfWinExist wurde mir von Obi-Wahn so empfohlen.
Das Problem scheint zu sein, das hier zwei aufeinander folgende Fenster erscheinen, wenn der Drucker nicht an ist.
Ist der Drucker an, erscheinen diese zwei aufeinander folgende Fenster nicht.
Wie soll ich Ihm sagen, das er diese Fenster berücksichtigt???
Nehme ich IfWinExist scheint er zwar das zuletzt gefundene Fenster zu nehmen, aber das darauffolgende nicht mehr. |
|
| Nach oben |
|
 |
BoBo² Gast
|
Verfasst am: Fr Mai 16, 2008 11:10 am Titel: |
|
|
| Zitat: | | Wie soll ich Ihm sagen, das er diese Fenster berücksichtigt??? | Indem du z.B. das von mir bereitgestellte Script ausprobierts? |
|
| Nach oben |
|
 |
anna
Anmeldedatum: 19.12.2007 Beiträge: 24
|
Verfasst am: Fr Mai 16, 2008 11:14 am Titel: |
|
|
Hab ich ja, versucht, aber es funktioniert nicht.
Versuch ja alles!!!
Bin ja um jede Hilfe mehr als Dankbar, nur klappt es nicht. | Code: |
Run, %comspec% /c "rundll32.exe shell32.dll`,SHHelpShortcuts_RunDLL AddPrinter", , Hide
WaitActive("Druckerinstallations-Assistent", "Willkommen")
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Lokaler Drucker`, der an den Computer angeschlossen ist")
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Einen neuen Anschluss erstellen")
Send, {Shift down}{Tab}{Shift up}{Down}s{Enter}
WaitActive("Assistent zum Hinzufügen eines Standard-TCP/IP-Druckerports", "Mit diesem Assistent")
Send, {Enter}%Var1%{Enter}
KillDieDinger:
IfWinActive, eines Standard-TCP/IP-Druckerports, Das Gerät wurde im N
Send, {Enter} ; hier wäre ein [i]ControlSend[/i] sicherer
IfWinActive, eines Standard-TCP/IP-Druckerports, Sie haben einen Port
Send, {Enter} ; hier wäre ein [i]ControlSend[/i] sicherer
Return
WaitActive("Druckerinstallations-Assistent", "Wählen Sie den Herst")
Send, {TAB 5}{ENTER}
WaitActive("Installation von Datenträger", "&Dateien des Herstel")
Send, %Var2%{Tab 2}{Enter}
WaitActive("Druckerinstallations-Assistent", "Wählen Sie den Herst")
Send, {Tab 2}{End}{Up}{Up}{Up}{Enter}
WaitActive, ("Druckerinstallations-Assistent", "HP LaserJet 2300 Ser")
Send, {Enter}
WaitActive, ("Druckerinstallations-Assistent", "Geben Sie einen Name")
Send, %Var3%{Enter}
Control, Check, , Button2, Druckerinstallations-Assistent, Geben Sie einen Name
WaitActive("Druckerinstallations-Assistent", "Wenn dieser Drucker")
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Soll eine Testseite")
Control, Check, , Button3, Druckerinstallations-Assistent, Soll eine Testseite gedruckt werden?
Send, {Enter}
WaitActive("Druckerinstallations-Assistent", "Fertigstellen des As")
Send, {Enter}
Return
WaitActive(Title, Text) {
WinWait, %Title%, %Text%
IfWinNotActive, %Title%, %Text%, WinActivate, %Title%, %Text%
WinWaitActive, %Title%, %Text%
} |
Hab ich irgendwo einen Fehler drin?? |
|
| Nach oben |
|
 |
BoBo² Gast
|
Verfasst am: Fr Mai 16, 2008 12:26 pm Titel: |
|
|
| Zitat: | | Versuch ja alles!!! | OK. Zeig mir in der AHK-Hilfe die Beschreibung zu: WaitActive (aus deinem Code)
Ich warte solange ...
| Zitat: | | Hab ich irgendwo einen Fehler drin?? | Allein die Frage lässt vermuten das du es ..
a) nicht ausprobiert hast, was bedeutet das du doch nicht alles versuchst!
b) du es ausprobiert hast, es aber nicht geht. So die Frage irgendwie sinnlos wäre!!
Von meinem Code haste nur genau die Hälfte kopiert/benutzt. Warum? |
|
| Nach oben |
|
 |
Obi-Wahn
Anmeldedatum: 19.04.2006 Beiträge: 611 Wohnort: Wien
|
Verfasst am: Fr Mai 16, 2008 12:32 pm Titel: |
|
|
Das kann ich auch. Schau mal im Code ganz unten...
Da gibts keine Beschreibung, weils ne funktion is. _________________ 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 |
|
 |
|
|
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
|