File: /~heha/hsn/maus32.zip/liesmich.txt

Diese Programme sollen helfen, speziell Windows NT (NT4, W2K, XP)
bedienungstechnisch auf die Sprünge zu helfen.
Sie laufen jedoch auch unter Windows9x/Me, verbrauchen aber dort
etwas mehr System-Ressourcen als die seit längerer Zeit existierenden
16-bit-Geschwister.

ALTGR:
Belegt die rechte Windows-Logo-Taste mit AltGr.
Wichtig für Leute, die mal mit dem alten und mal mit dem neuen
Tastaturlayout arbeiten müssen, und statt \ häufig ß tippen.
Denn die Positionsverschiebung von AltGr nach links ist zwar handfreundlich,
aber was wollte Microsoft mit einer unnützen rechten Windows-Logo-Taste?
Hinweis: Die DLL ist nicht in DOS-Boxen wirksam! Dafür benötigt man
(zusätzlich) das TSR-Programm ALTGR95.COM aus der T_UND_M.ZIP.

MAGNET:
"Magnetische Fenster", die an umgebenden und Nachbarfenstern "ankleben":
Wie bei WinAmp oder KDE sollte es möglich sein, Fenster beim Verschieben
oder Verändern der Größe an anderen Fenstern einrasten zu lassen.
Diese DLL realisiert dies über einen sog. CBT-Hook (Anzapfung für
computergestütztes Training) mit geringem Ressourcenverbrauch.
Von Nachteil ist das fehlende Feedback während des Verschiebens,
es schnappt erst beim Loslassen ein.
Deshalb wurde die Fangweite relativ klein mit 6 Pixeln vorgegeben.
Das Einrasten kann durch Drücken der Strg-Taste während des
Fallenlassens unterdrückt werden.
Konfiguration: In der WIN.INI kann in der Sektion [Windows] die Fangweite
eingestellt werden, danach ist die DLL neu zu laden. snap=6

MBUTTON:
Die mittlere Maustaste (bzw. der Klick auf das Rollrad) wird meist nicht
unterstützt, oder aber auf eine Weise, die durch das Rollrad unnütze ist.
Sinnvoller ist eine Belegung der mittleren Maustaste mit Doppelklick.
Mit dem Laden dieses Treibers gilt diese Belegung für alle Programme;
dann gibt es auch keine Maus-Nachrichten für die mittlere Taste mehr.
Manche Maustreiber bringen ein solches Feature mit; allerdings ist
solcherart Software häufig viel zu umfangreich und belegt mal wieder
einen Platz im System-Tray.

ROLLFANG:
Dass beim Ziehen an Rollbalken der Mauszeiger einen gewissen Bereich
rund um den Rollbalken nicht verlassen darf, ist eigentlich nur lästig,
besonders wenn man einen längeren Text liest (und kein Rollrad hat)
oder beim horizontalen Rollen (z.B. Fehlermeldungen von Visual C).
ROLLFANG stellt dieses Laster ab und expandiert den Fangbereich auf den
ganzen Bildschirm. (Eigentlich sollte Microsoft dafür eine Einstellung
bei "Bildschirmeigenschaften" oder "Maus-Eigenschaften" vorsehen.)
Hinweis: ROLLFANG funktioniert nur bei "echten" Windows-Rollbalken!
Der Internet Explorer ab Version 4 zeichnet eigene Rollbalken.
(Aha! Soviel zum Thema Mehrfachverwendung von Code...) Deshalb keine
Funktion im IE4; der IE5 hat selbst schon ROLLFANG-Funktionalität.

WARPCURSORKEY:
Die Wiederholrate von Tastenanschlägen lässt sich zwar in der Systemsteuerung
einstellen, aber eigentlich wünscht man sich eine hohe Wiederholrate
nur bei den Pfeiltasten. WARPCU32.DLL erledigt genau dies.
Zugegeben, ein nicht sehr sinnvolles Programm, aber das erste in
Visual C++ erstellte Programm und in Miniaturausführung (= 4096 Byte .DLL).

WHEEL32:
Das Mausrad hat in älteren Programmen keine Funktion.
Da schafft WHEEL32.DLL Abhilfe - im Gegensatz zur 16-bit-Version (TYPHOON.DLL)
ist hier die Zuordnung fenster-bezogen für höhere Stabilität.
Benutzung:
 Zum Ein- und Ausschalten des Scroll-Effekts die Maus im Fenster lassen
 und das Mausrad 5mal jeweils 1 Schritt hoch und runter rollen.
 Einschaltquittung ist ein Piep wie bei OK-Fenstern.
 Ausschaltquittung ist ein Piep wie bei Abbruch-Fenstern.
Bei (neuen) Programmen, die per Mausrad skalieren, kann mit dieser Sequenz
zwischen Skalieren und Rollen umgeschaltet werden.
Ist der Mauszeiger im vertikalen Rollbalken, wird seitenweise gerollt,
ist er im horizontalen, wird horizontal gerollt.
ACHTUNG - Anders als die voranstehenden DLLs läuft diese nicht unter 9x/Me!


Ladevorgang:
Anders als bei 16-bit-Software muss eine 32-bit-DLL in den Adressraum einer
JEDEN Anwendung geladen (im Jargon: eingespritzt) werden. Dafür wird
wiederum eine initiale Anwendung gebraucht, die die DLL lädt.
Um diese DLLs auch wieder heraus zu bekommen, ist Code implementiert,
der beim Beenden der die DLL _zuerst_ ladenden Anwendung (hier LLIB.EXE)
den "Einspritzvorgang" rückgängig macht. LLIB.EXE ist deshalb ständig
als stummer, fensterloser Prozess aktiv. Mit dem Herauswerfen von
LLIB.EXE (z.B. über den Task-Manager nach Druck auf Strg-Alt-Entf)
verschwinden auch automatisch die von diesem Prozess geladenen DLLs;
sie ziehen sich automatisch aus allen anderen Adressräumen zurück.

32-Bit-DLLs greifen nur in 32-Bit-Prozesse. Für 64-Bit-Prozesse
sind 64-Bit-DLLs zu benutzen (was noch zu compilieren wäre).

Quelltexte:
Da es mir die Fußnägel hochrollt, wenn kleine Programme mal eben 100 KB
groß sind, und weil die Implementierung von shared Datensegmenten
(die man für solche DLLs braucht) offenbar nur mit VC5+ möglich ist
(welches zu benutzen ich zu blöd bin;-), habe ich mich für handfesten
Turbo-Assembler entschieden.
Interessant ist auch die seit Delphi2 bestehende Möglichkeit, OBJ-Dateien
aus .PAS zu generieren und ins Assemblerprogramm einzubinden.
(Zugegeben, die .PAS-Datei enthält auch nichts anderes als Assembler.)
Dennoch ist zu beachten, dass jede geladene DLL auch RAM braucht, nämlich
hier (mindestens) 8K + 4K * (Anzahl der GUI-Prozesse).

Etwas später ... Nun habe ich Zugang zum VC6, und die ersten Hürden
mit den #pragma-Anweisungen (damit fängt jedes gute C-Programm an:-)
sind geschafft.

MELODIE.EXE, melodie64.exe:
Einfaches Programm zum Ansteuern des PC-Lautsprechers zur monofonen
Melodieausgabe. Kommandozeile bspw. "melodie c e g".
Ideal zur Fertigmeldung von länglichen Matlab-Skripten.
Die 32-Bit-Version läuft auch unter 64-Bit-Windows.
Daher ist die 64-Bit-Version eher für diejenigen, die kein WoW32 wollen.

PnpEvent.EXE:
Ausgabe von Plug-And-Play-Ereignissen auf PC-Lautsprecher.
Eigentlich nur unter Windows 2000 (notfalls Windows 98) sinnvoll.
Für Windows 98 existiert in „t_und_m.zip“ ein gleichnamiges Programm,
welches Ansteckgeräusche auf die Soundkarte (wie Windows XP) ausgibt.

Gerätemanager.reg:
Setzt Umgebungsvariablen, um mehr Informationen beim Geräte-Manager
herauszuholen. Besonders wichtig, um bereits entfernte Netzkarten
tatsächlich aus dem System zu tilgen. Sonst gibt's Ärger mit DHCP.

disableport.exe, disableport64.exe:
Umschalten eines LPT- oder COM-Ports auf "deaktiviert" oder "aktiv"
(hin und her pro Aufruf). Nur für Windows 2000 und höher!

cycleport.dll, cycleport64.dll:
Abfragen, Einschalten, Ausschalten oder Umschalten eines Ports per
DLL-Eintrittspunkt "enableport", in ANSI oder UNICODE.
1. Parameter <portname> = Portname, bspw. "COM2" oder L"LPT1"
2. Parameter <action> = Aktionskode, 0 = abfragen, 1 = aktivieren,
				 2 = deaktivieren, 3 = umschalten
Rückgabewert: 0 = Fehler, 1 = aktiviert, 2 = deaktiviert
DLL-Eintrittspunkt "cycle", in Unicode, für den Aufruf durch rundll32.dll
zum Aus- und Wiedereinschalten eines Ports. Kommandozeile bspw.:
"rundll32.dll cycleport.dll,cycle com1"

HINWEIS: Ab Windows 7 SP1 sowie Windows 8 (64 bit) funktioniert das
Programm disableport.exe sowie die Bibliothek cycleport.dll nicht mehr,
weil Windows verhindert, dass 32-Bit-Prozesse auf die Geräte-
Installation (schreibend) zugreifen kann. Da hilft auch kein UAC-Prompt.
In diesem Fall ist disableport64.exe bzw. cycleport64.dll zu verwenden.
Detected encoding: UTF-80