Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

AHK soll schneller auf Tasten reagieren!

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
halweg



Anmeldedatum: 05.01.2006
Beiträge: 788
Wohnort: Dresden

BeitragVerfasst am: Do Apr 06, 2006 9:46 am    Titel: AHK soll schneller auf Tasten reagieren! Antworten mit Zitat

Hallo mal wieder, hab folgendes Problem:
ich verwende ein Unterprogramm, um Mehrfachklicks auf meinen erweiterten Keyboard-Tasten auszuwerten. Die stark vereinfachte Version sieht so aus:
Code:
 ~BROWSER_HOME::
... (ein paar Befehle um das aktuelle Fenster zu erkennen)
... (ein paar TOOLTIP-Befehle zur Illustration, was gerade läuft)
number_of_presses = 1
LOOP
  {
  SOUNDBEEP, 1000, 30
  INPUT, taste, T1 L1,{BROWSER_HOME}            ;*** nächsten Tastendruck empfangen
  IFEQUAL, errorlevel, Timeout, BREAK           ;*** innerhalb Timeout keine weitere Taste
  ELSE IFEQUAL, errorlevel, max, BREAK          ;*** Taste war nicht Hotkey
  ELSE number_of_presses += 1                   ;*** Taste war Hotkey
  }
IF number_of_presses = 1
 ...
 ...
RETURN

Das Ganze läuft eigentlich seit längerm stabil und gut. Nun ist es gerade bei Mehrfachklicks von Interesse, ein gutes Timing zu haben (deshalb auch das BEEP als akustisches Feedback). Am Piepsen erkenne ich nun aber, dass AHK manchmal etwas länger braucht, um zu reagieren (1-2s Abstand zwischen Tastendruck und BEEP). Da es beim zweiten mal immer sofort reagiert, nehme ich an, dass da irgendwas nicht im Hauptspeicher ist. An der Prozessorlast kann es eigenlich nicht liegen, auch bei beanspruchtem Prozessor konnte ich keine Verzögerung entdecken.

Die gelegentliche Verzögerung von AHK stört mich, weil dadurch der Start von Programmen mehr Aufmerksamkeit erfordert als notwendig. Habt ihr eine Idee, wie man das ändern kann. Also irgend eine Systemeinstellung, damit AHK (und evtl. auch die für TOOLTIP, BEEP, IFWINACTIVE notwendigen Codeteile von Windows) ständig im Hauptspeicher sind und ich eine definitive Antwortzeit erhalte?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
toralf



Anmeldedatum: 25.10.2005
Beiträge: 110
Wohnort: Stuttgart

BeitragVerfasst am: Do Apr 06, 2006 11:19 am    Titel: Antworten mit Zitat

Schon mal SetBatchLine oder Process,Priority getestet?
_________________
Ciao
toralf
Auto-Syntax-Tidy Icon Viewer EasyCopy AHK
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
halweg



Anmeldedatum: 05.01.2006
Beiträge: 788
Wohnort: Dresden

BeitragVerfasst am: Do Apr 06, 2006 1:33 pm    Titel: Antworten mit Zitat

toralf hat Folgendes geschrieben:
Schon mal SetBatchLine oder Process,Priority getestet?

Diese Befehle verändern, soweit ich dass überblicke, die Priorität oder die Geschwindigkeit der Ausführung des Skriptes. Da aber beim zweiten mal immer sofort eine Reaktion erfolgt, vermute ich, dass das nicht mein Problem ist.
Aber es lässt sich eben auch schlecht testen, weil der Effekt sporadisch auftaucht, wahrscheinlich nur dann, wenn irgend etwas ausgelagert wurde.


Mittlerweile hatte ich noch eine andere Idee: Man könnte ja im Hintergrund einen Timer laufen lassen, der einfach ab und zu das Skript aktiviert und so dafür sorgt, dass es nicht ausgelagert wird ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d-fens
Gast





BeitragVerfasst am: Mo Mai 08, 2006 2:57 pm    Titel: Antworten mit Zitat

Hast du #InstallKeybdHook in dem Script drin? Das könnte helfen.
Nach oben
halweg



Anmeldedatum: 05.01.2006
Beiträge: 788
Wohnort: Dresden

BeitragVerfasst am: Mi Mai 10, 2006 9:40 am    Titel: Antworten mit Zitat

d-fens hat Folgendes geschrieben:
Hast du #InstallKeybdHook in dem Script drin? Das könnte helfen.

Hab ich drin.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dosenfleisch
Gast





BeitragVerfasst am: Fr Mai 12, 2006 6:51 am    Titel: Antworten mit Zitat

wenn du dein script permanent in aktion hälst, wird es doch bestimmt nicht in den standby geschickt.

vielleicht hilft es ja, wenn du zum beispiel ne uhr mit hineinpackst.
keine codetechnische meisterleistung, sollte das script aber am laufen lassen.

Code:

Gui, +AlwaysOnTop +ToolWindow -SysMenu -Caption
Gui, Color, CCCCCC
Gui, Font, cFFFFFF s7 , verdana
Gui, Add, Text, vD y0, %a_hour%:%a_min%
Gui, Show, NoActivate x870 y5,uptime
WinSet, TransColor, CCCCCC 255,uptime
SetTimer, RefreshD, 1000
return

RefreshD:
GuiControl, , D, %a_hour%:%a_min%
Gui, Show, NoActivate x870 y5,uptime
return

vielleicht geht ja auch was unauffälligeres Wink
Nach oben
halweg



Anmeldedatum: 05.01.2006
Beiträge: 788
Wohnort: Dresden

BeitragVerfasst am: Fr Mai 12, 2006 8:08 am    Titel: Antworten mit Zitat

Ich hab mir jetzt also so einen Timer eingbaut. Eigentlich läuft ja schon einer in meinem "Dialogboxkiller", das ist allerdings ein separates Skript.
Mit
Code:
;*** immer aktiv bleiben
SETTIMER, ich_tue_was, 1000

RETURN

ich_tue_was:
WINGETCLASS, akt_class, A
IF (akt_class <> alt_class)
  {
  IFEQUAL akt_class, Progman
    timed_tooltip("Willkommen auf dem Desktop")
  alt_class := akt_class
  }
RETURN
wir ein Window-Befehl angestoßen, ganz ähnlich starten die meisten meiner Hotkeys.
Nun muss ich eine Weile beobachten, ob ich noch Verzögerungen habe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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