I remember someone here pointed out a good eBay deal on ELO touchscreen monitors, 17", 1747L. I got two of them and they're the best monitors I ever had. During a (failed) search here to find how I learned of them, I notice several people now use these or similar, and maybe some of you use W98 too. If so you might like this...
MonMouse is based on ELO's touchscreen driver v3.01, downloaded file SW500085.EXE (354KB),
for W9X and WME. It adds two executable files to improve it.
MonMouse.exe launches SysMulti.exe, and if already loaded, terminates it and relaunches it.
The driver often fails during drag operations in graphic intensive programs like PDF viewers
and image editors. MonMouse.exe is the fastest way to restore correct behaviour.
Invoke it by keyboard shortcut, ideally with Ctrl+Alt+Shift+Tilde.
RevMouse.exe swaps left and right mouse buttons. It replaces the Rbutton.exe tool, which was
a clumsy way to do the same thing. Unlike Rbutton, RevMouse stays in whichever mode is set
instead of reverting to left click after each single right click. It toggles between states,
and gives two beeps (clicks in W9X) from the system speaker when entering right button mode,
and one beep (or click) when reverting to left click mode.
Invoke it by keyboard shortcut, ideally with Alt+Shift+Tilde.
The control sequences suggested aren't as awkward as they appear. It is easiest to handle these
operations with the left hand, at the left end of a keyboard, and they are unlikely to conflict
with existing keyboard shortcut sequences: Ctrl+Tab,Alt+Tab, both OS GUI standards to alternate
between documents and processes, and Ctrl+Shift+Tilde which is best used to shut a monitor off
to save power on demand, and Ctrl+Shift+N where N is a specific disk drive number to shut down
for power saving.*
*Tools to do that not included here, just using that as examples of things usefully triggered by left hand for general OS use while using a keyboard...
SOURCE CODE, ideally compiled with TCC for smallest size. GCC also works well.
MonMouse.exe:
Code:
#include <windows.h>
int WINAPI WinMain(HINSTANCE H_inst,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
DWORD I=0; STARTUPINFO S; memset(&S,0,sizeof(S)); PROCESS_INFORMATION P; memset(&P,0,sizeof(P));
GetWindowThreadProcessId(FindWindow("EloXyLdrAppClass",0),&I);
if(I)TerminateProcess(OpenProcess(PROCESS_TERMINATE,0,I),I);
Sleep(0);
CreateProcess("C:\\WINDOWS\\SYSTEM\\SysMulti.exe",0,0,0,0,CREATE_DEFAULT_ERROR_MODE,0,0,&S,&P);
//DO NOT use ShellExecuteEx(), TCC doesn't use it, and importing GCC headers may be unwise.
//Also, CreateProcess() stores process ID and a lot of other useful details.
return 0;
}
RevMouse.exe:
Code:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{MessageBeep(-1); if(SwapMouseButton(1))SwapMouseButton(0); else {Sleep(32); MessageBeep(-1);} return 0;}