Wie blockiere ich andere Eingaben solange das AHK Script läuft?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

98_812
Posts: 1
Joined: 17 Jan 2018, 08:51

Wie blockiere ich andere Eingaben solange das AHK Script läuft?

17 Jan 2018, 09:10

Hallo ahk Gemeinde,
ich habe ein Skript erstellt, welches mir verschiedene Ersetzungen in einer großen Word-Datei durchführt. Dieses Skript starte ich im Word Fenster mit einem Hotkey. Da dieses Skript lange läuft möchte ich verhindern, dass irgendwelche Eingaben in anderen Fenstern dazwischen funken. Kann ich während der Laufzeit des Skripts Tastatureingaben blockieren, oder zumindest die Tastatureingaben so lange verzögern, bis das Skript beendet ist?
Ich habe schon verschiedenes probiert, allerdings ohne den gewünschten Erfolg.
Kann mir jemand helfen?

Vielen Dank schon im Voraus
Manfred
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Wie blockiere ich andere Eingaben solange das AHK Script läuft?

17 Jan 2018, 09:24

Das problem hierbei scheint mir der wechselnde focus zu sein. Insofern sollten (um den eingabe-focus konkurierende) eingaben vermieden werden.
Eine mögliche lösung wäre die verwendung der (Word)COM schnittstelle, welche IMHO eine 'backend'verarbeitung zulassen sollte.
Doch dazu wirst du auf den einstieg unserer jeweiligen AHK-pros warten müssen, denn ich bins nicht :)

https://autohotkey.com/boards/viewtopic.php?t=8978
https://www.google.de/search?q=site:aut ... lication")
gregster
Posts: 9002
Joined: 30 Sep 2013, 06:48

Re: Wie blockiere ich andere Eingaben solange das AHK Script läuft?

17 Jan 2018, 09:38

Willkommen im Forum, Manfred,
COM wäre wahsrcheinlich am elegantesten. Aber speziell mit Office habe ich da selbst auch keine praktische Erfahrung. Da müsste aber zumindest im englischsprachigen Forum was zu finden sein; vermutlich auch hier.

Aber hast du mal bei https://ahkde.github.io/docs/commands/BlockInput.htm geguckt, ob da ein geeigneter Modus dabei ist für dich (insbes. Modus 1)? Das wäre wahrscheinlich das einfachsten. (Das Entblocken im Skript nach den Aktionen nicht vergessen)

Letztendlich könnte man wahrscheinlich auch alle Tasten einfach en bloc deaktivieren mit

Code: Select all

#if (block = 1)
a::
b::
c::		
;........ etc. pp
return
#if
Aber das ist etwas mühsam, da man alle möglichen Tasten inkl. Maus blockieren (also aufzählen) muss, andererseits kannst du eine bspw. eine Abbruchtaste wie Escape aussparen. Wobei man mit einer Variable (hier "block" genannt) kontext-sensitive Hotkeys erstellen könnte. Sobald dein Skript dann block auf 1 setzen würde, wären die Tasten geblockt, beiblock := 0 o.ä. wären die Tasten wieder nutzbar.
User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: Wie blockiere ich andere Eingaben solange das AHK Script läuft?

17 Jan 2018, 17:34

Hallo Manfred,

die Frage soll erlaubt sein: warum programmierst du deine Suche nicht innerhalb von Word mit VBA?

Viele Grüße
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
User avatar
divanebaba
Posts: 805
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Wie blockiere ich andere Eingaben solange das AHK Script läuft?

19 Jan 2018, 14:28

gregster wrote:...

Code: Select all

#if (block = 1)
a::
b::
c::		
;........ etc. pp
return
#if
...
Vielleicht dann doch lieber den Stecker ziehen :mrgreen: :mrgreen:
Einfach nur ein toller Typ. :mrgreen:
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Wie blockiere ich andere Eingaben solange das AHK Script läuft?

24 Jan 2018, 08:14

Seitdem ich in einem meiner Scripte die COM Schnittstelle zu Excel benutze und quasi direkt "in" der Datei arbeite, habe ich solche Probleme nicht mehr.
Vorher habe ich auch per Copy, Paste, etc. zwischen einer geöffneten Excel Mappe und meinem GUI hin und hergeschaltet und durfte dabei z.T: nicht einmal den Mauszeiger verschieben, weil dann alles aus dem Ruder lief.

Grüße.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 103 guests