Leider muss an dieser Stelle mitgeteilt werden, dass Wolfgang Reszel seine Arbeit an ac'tivAid beendet hat. Eine Entwicklerversion von ac'tivAid gibt es auf meiner Webseite. Gruß, Michael
Der Bugtracker wurde aus Sicherheitsgründen abgeschaltet, diese Website dient nur noch als statisches Archiv. |
||
Willkommen beim Bugtracker zu ac'tivAid. Ac'tivAid ist ein AutoHotkey-Skript, welches zuletzt in c't 12/08 ausführlich vorgestellt wurde. Wenn Sie in der stabilen Version einen Fehler finden, testen Sie bitte erst die aktuelle Beta-Version, bevor Sie den Fehler melden! Um evtl. schon hier behandelte und geschlossenen Themen mit der Suche zu finden, muss in der erweiterten Suche bei Status "Alle offenen Aufgaben" auf "Alle Status" umgestellt werden. |
Letzte stabile Version bei Heise.de: 1.3.1 Letzte beta Version 1.3.2 beta1 : activaid_beta.exe | portable_activaid_beta.exe Entwicklerversion von Michael Änderungen, Liesmich/Hilfe, FAQ und Themen-Special (bei www.heise.de) Digital Upgrade haben ein Video zu ac'tivAid 1.1.8.1 gedreht, wo ein paar Funktionen kurz angesprochen werden. |
FS#1013 - Schließen mit <SingleInstanceClose> bei einigen Programmen problematisch
Angelegt Andrusch (Andrusch) - Donnerstag, 12. Juli 2007 - 18:14
Zuletzt bearbeitet von Wolfgang Reszel (Tekl) - Mittwoch, 18. Juli 2007 - 06:37
|
BeschreibungIch verwende folgenden Befehl zum Starten und Beenden meines Wav-Rekorders (von Creativ Labs): <SingleInstanceClose>C:\Programme\Creative\SBAudigy\Recorder\CTRec.exe Starten funktioniert. Wiederaktivieren auch. Problem ist das Schließen. Die Anwendung verschwindet zwar, aber im TaskManager ist die Anwendung CTRec.exe noch zu sehen und ein erneutes Öffnen ist solange nicht möglich, bis ich den Task manuell kille. Andere Anwendungen funktionieren bei mir mit <SingleInstanceClose> dagegen problemlos (auch andere von Creativ Labs) Vielleicht liegt es an der Art wie die Anwendung über ac’tivAid beendet wird? |
Bitte mal beta 24 testen.
Nein, leider. Das Problem besteht immer noch.
Verwunderlich ist auch, dass die hängende Anwendung CTRec.exe dann volle CPU-Last zieht!
Mit Beta 25 gibt es nun einen neuen Befehl: <SingleInstanceKill>
Damit sollten es klappen.
Negativ!
Die Anwendung bleibt auch mit <SingleInstanceKill> hartnäckig im Speicher.
Hmm… dann teste mal die angehängte Datei. Ich habe SingleInstaceKill nochmal verändert.
Negativ.
Ich habe mal bei mir testweise ein paar Msgboxen eingebaut. Er kommt gar nicht in die IfWinExist-Bedingungen rein. Zeile 1750 liefert "false"!
Somit läuft kein "Process, Close, ..." weder auf ID noch auf Name!
Füge mal vor WinKill folgende Zeilen ein:
WinGet, uh_ProcessName, ProcessName, % "ahk_group " uh_ProcID%uh_HotkeyNumber% msgbox, %uh_ProcessName%
Kommt da überhaupt was?
Das funktioniert. Es kommt "CTRec.exe".
Aber dort unten kommt er ja nicht hin, weil Zeile 1750:
IfWinExist, % "ahk_group " uh_ProcID%uh_HotkeyNumber%
nicht "true" ist!!!
Diese Zeile mit IfWinExist erschließt sich mir nicht ganz. Was prüft die?
Mach mal die Änderungen Rückgängig und setze vor WinKill: DetectHiddenWindows, On
Das IfWinExist sollte eigentlich prüffen, ob WinKill erfolgreich ist und dann ggf. noch ein Process, Close nachschieben.
"DetectHiddenWindows, 0n" hat keinen Erfolg gebracht.
Aber scheinbar ist die Anwendung für IfWinExist nicht mehr exisitent. Nach dem WinKill gibt es übrigens keine ProcID (kommt "ERROR" zurück) und kein ProcessName (kommt "" zurück) mehr...
Es ist auch ein Problem, den Prozess direkt zu killen (über den Taskmanager). Das Programm ist dann zwar weg, bleibt im Taskmanager aber hängen und lässt sich dann nicht mehr über "Prozess beenden" entfernen! Ich werde mal ein bisschen weiter experimentieren. Habe noch eine Idee...
Du hast On mit einer 0 (Null) geschrieben. Versuche es noch mal mit einem Oh.
Erneuer Versuch …
Es werden keine zusätzliche Dienste zum Programm CTRec.exe gestartet.
Alt+F4 beendet das Programm sauber.
Wie sieht's denn mit der aktuellen Beta aus wenn du da wieder SingleInstanceClose verwendest? Falls das nicht geht, kommentiere mal Zeile 1756 aus (GroupClose, % uh_ProcID%uh_HotkeyNumber%, A)
PERFEKT! jetzt funktioniert es über <SingleInstanceClose> mit aktiver Zeile 1756 (brauchte sie also nicht auskommentieren).
Ich denke, jetzt können wir endlich diese Aufgabe (erfolgreich!) abschließen...
Vielen Dank!