home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0964.lha
/
Angie
/
SetActiveWinUtil
/
SetActiveWin.dok
< prev
next >
Wrap
Text File
|
1993-11-30
|
8KB
|
197 lines
------------------------------------------------------
SetActiveWin 1.2 (30.11.93) ⌐ Franz Schwarz - Freeware
------------------------------------------------------
Aktiviert genau das Fenster, das Sie wollen
Written & ⌐ 1993 by
Franz Schwarz
Mⁿhlenstra▀e 2
D-78591 Durchhausen, Germany
Uucp: Franz_Schwarz@mil.ka.sub.org
Fido Classic: 2:2476/506.18
SetActiveWin ist ein kleines Utility, das beliebige Fenster aktivieren
kann, wobei eine Vielzahl von Eigenschaften angegeben werden kann, um
das Fenster zu bestimmen.
Die Kommandozeilen-Argument-Schablone lautet:
WINDOWNAME=WPAT,TASKNAME=TPAT,SCREENNAME=SPAT,PUBSCREENNAME=PSPAT,
CASE/S,TOFRONT/S:
Alle in der ersten Zeile aufgefⁿhrten Argumente erwarten dabei die Angabe
eines Filter-Namesmusters, anhand dessen SetActiveWin das zu aktivierende
Fenster auswΣhlt.
WINDOWNAME=WPAT erwartet dabei das Filter-Namensmuster, das auf den
Fensternamen angewandt wird. Falls dieses Argument weggelassen wird,
passen alle Fensternamen.
TASKNAME=TPAT erwartet das Namensmuster, das auf die Namen der Eigner-Tasks
des Fensters angewandt wird. Falls das Namensmuster nicht auf den Namen
des Eigner-Tasks pa▀t, und der Eigner-Task ein Shell-Proze▀ darstellt, wird
auch der Name des gerade von diesem Proze▀ ausgefⁿhrten Dos-Befehls auf
▄bereinstimmung mit dem angegebenen Namensmuster geprⁿft. Falls dieses
Argument weggelassen wird, passen alle Fenster, auch die ohne eingetragenen
Eigner-Task.
SCREENNAME=SPAT erwartet das Namensmuster, das auf den STANDARDM─▀IGEN
Namen des Schirms, auf dem sich das Fenster befindet, angewandt wird.
Falls dieses Argument nicht angefⁿhrt wird, passen alle standardmΣ▀igen
Schirm-Namen.
PUBSCREENNAME=PSPAT erwartet das Namensmuster, das auf den Namen des
÷ffentlichen Schirms, auf dem das Fenster ge÷ffnet ist, angewandt wird.
Falls dieses Argument weggelassen wird, passen alle Fenster, auch
diejenigen, die auf einem nicht-÷ffentlichen Schirm ge÷ffnet sind.
Andernfalls passen nur Fenster, die sich auf einem ÷ffentlichen Schirm mit
einem passenden Namen befinden.
Alle Namensmuster-Argumente erwarten gⁿltige AmigaDos-Namensmuster wie z.B.
"CygnusEdScreen?", "#?workbench( |%)#?", etc. Es gibt jedoch ein
spezielles Namensmuster, ein sogenanntes 'Magic': "!"
Es hat fⁿr die verschiedenen Argumente folgende Bedeutung:
-wird es fⁿr das WINDOWNAME=WPAT-Argument angegeben, pa▀t nur das gerade
aktive Fenster.
-wird es fⁿr das TASKNAME=TPAT-Argument angegeben, passen nur Fenster,
die den selben Eigner-Task haben wie das aktuelle Fenster.
-wird es fⁿr das SCREENNAME=SPAT-Argument angegeben, passen nur Fenster,
die auf dem aktiven Schirm ge÷ffnet sind.
-wird es fⁿr das PUBSCREENNAME=PSPAT-Argument angegeben, passen nur
Fenster, die auf dem standardmΣ▀igen ÷ffentlichen Schirm ge÷ffnet sind.
Falls der CASE/S-Schalter spezifiziert wird, so wird bei der Suche nach
passenden Namen auf Gro▀-/Kleinschreibung unterschieden, ansonsten werden
Klein- und Gro▀buchstaben als gleich betrachtet.
Ein Fenster pa▀t nur dann, wenn ALLE VIER Filter-Kennzeichen passen. Die
Suche nach passenden Fenstern beginnt dabei beim auf das aktive Fenster
folgenden Fenster. Dadurch wird einfaches BL─TTERN durch eine ganze Reihe
von Fenstern, auf die die Filter-Charakteristika passen, erm÷glicht.
Der TOFRONT/S-Schalter bewirkt, da▀ das passende Fenster nicht nur
aktiviert wird, sondern auch gleichzeitig nach vorne gebracht wird.
Falls SetActiveWin kein passendes Fenster finden kann, gibt es den
Rⁿckgabewert 5 (WARN) zurⁿck, ansonsten, falls es ein passendes Fenster
finden konnte, den Rⁿckgabewert 0 (OK).
SetActiveWin wurde speziell fⁿr die Verwendung innerhalb von AngieSequenzen
des legendΣren ANGIE - Another Great Intuition Enhancer - Commodities
entwickelt, kann aber gleichfalls auch in Stapelbearbeitungsdateien oder
ARexx-Skripten verwendet werden.
Fⁿr seine Anwendung innerhalb von Angie sollten sie SetActiveWin resident
machen (SetActiveWin IST reentrant, pure), und es dann innerhalb von
SyncDosSequenzen etwa wie folgt einsetzen:
Falls Sie die AngieSequenz
'{SetActiveWin tpat "IntuiNews#?" tofront}(HuntWindow)' auf die
Funktionstaste F10 legen, k÷nnen sie beispielsweise mit dieser
Funktionstaste durch ihre IntuiNews-Fenster blΣttern.
Wenn Sie durch einen Tastendruck auf ihre mittlere Maustaste durch alle
Fenster Ihrer gerade aktiven Anwendung blΣttern wollen, so sollten Sie
die AngieSequenz '{SetActiveWin tpat ! tofront}(HuntWindow)' auf
den HotKey 'rawmouse midbutton mouse_middlepress' legen.
Indem Sie die AngieSequenz
'{setactivewin "(Workbench|%)" tpat Workbench pspat Workbench case}
(HuntWindow)'
auf den Hotkey 'rawmouse alt rbutton mouse_rightpress' legen, erreichen
Sie, da▀ ein Maus-Klick auf die rechte Maustaste bei gedrⁿckter linker
Alt-Taste das Basisfenster Ihrer Workbench ÷ffnet, und es jagt.
Sie k÷nnen aber auch z.B. die AngieSequenz
'{setactivewin "SuperDuper#?by#?S#?Vigna#?" tofront}(HuntWindow)'
auf den Hotkey 'diskinserted' legen, was den Erfolg hat, da▀, jedesmal,
wenn Sie eine Diskette einlegen, und Sie das affenstarke Kopierprogramm
Superduper von Disk-Wizard Sebastiano Vigna gestartet haben,
das SuperDuper-Hauptfenster aktiviert, nach vorne gebracht und gejagt wird.
Sie sehen, die M÷glichkeiten sind wirklich nahezu unbegrenzt!
Sie k÷nnen aber noch einiges mehr:
Legen Sie ganz einfach folgende Angie-Sequenz auf einen Hotkey (ersetzen
Sie die <control-j>-Ausdrⁿcke durch einen Tastendruck auf die j-Taste bei
gedrⁿckter CTRL-Taste):
'[SetActiveWin wpat IconEdit#? tpat #?IconEdit tofront<control-j>
if warn<control-j>
run <nil: >nil: sys:tools/IconEdit<control-j>
wait 2<control-j>
endif<control-j>
rawinsert d "<lcommand help>"]'
Falls Sie nun den Hotkey betΣtigen, aktiviert Angie, falls der
Piktogramm-Editor IconEdit gestartet ist, dessen Fenster, bringt es nach
vorne, andernfalls startet Angie ganz einfach das IconEdit-Programm neu.
Schlie▀lich wird noch durch das rawinsert-Utility (ebenfalls von mir;-))
ein Tastendruck auf die Help-Taste mit gedrⁿckter linker Amiga-Taste
simuliert, was, falls in Angie die AngieSequenz '(HuntWindow)' auf
diese Taste gelegt wurde, eine Fenster-Jagen-Aktion ausl÷st.
In diesem Beispiel wird SetActiveWin ⁿbrigens innerhalb einer
ASyncDosSequenz!! verwendet, da die Ausfⁿhrung dieser AngieSequenz lΣnger
dauern kann, und ansonsen Angie wΣhrend der Ausfⁿhrung der gesamten
AngieSequenz blockiert wΣre!
Evolution von SetActiveWin
--------------------------
v1.0 21.11.93 [fSchwarz]
v1.1 22.11.93 [fSchwarz] fixed deadlock problem that was
due to holding concurrent locks on both, IBase & the
PubScreenList (PubScreenList fields are now copied)
v1.2 30.11.93 [fSchwarz] fixed bug that kept all windows
on non-public screens from being activated
Schlu▀bemerkungen
-----------------
SetActiveWin ist Freeware, i.e., es ist frei kopierbar, das Urheberrecht
liegt aber weiterhin beim Autor. Eine Haftung des Autors fⁿr SchΣden, die
unmittelbar oder mittelbar von dem Gebrauch von SetActiveWin herrⁿhren, ist
definitiv ausgeschlossen. Die Verwendung von SetActiveWin erfolgt auf Ihr
eigenes Risiko. In angelsΣchsischem Jargon wird dies gemeinhin als 'Use At
Your Own Risk' bezeichnet.
SetActiveWin geschrieben und urheberrechtlich geschⁿtzt, ⌐ 1993 by
Franz Schwarz, Mⁿhlenstra▀e 2, D-78591 Durchhausen, Germany.
uucp: Franz_Schwarz@mil.ka.sub.org; Fido Classic: 2:2476/506.18
Anregungen, Kritik, Flames, Geld, Gold, Disketten, Bier, Schokolade, nette
Postkarten, e-mails, etc. sind jederzeit herzlich willkommen!;-)
Bye
Franz 'Blacky' Schwarz
... und vergessen Sie nicht:
SetActiveWin - aktiviert genau das Fenster, das Sie wollen
- Girlfriend Is Better - Talking Heads -