/* Find .LNK files with hotkeys in them This program needs 4DOS ( http://www.jpsoft.com ) and BREXX interpreter ( ftp://ftp.gwdg.de/pub/languages/rexx/brexx/ ) to run Note - program handles .LNK files found under c:\windows\Start Menu Hotkeys can also be in .PIF files - I haven't figured out how to decode these yet */ '*DIR /F /S /M /K /X C:\WINDOWS\STARTM~1\*.LNK (STACK' DU='' F.0=QUEUED() DO I=1 TO F.0 PARSE PULL F.I CALL HK F.I END EXIT HK:PROCEDURE EXPOSE DU ARG FI F=OPEN(FI,'RB') X=READ(F,64) KEY=READ(F,1) SEC=READ(F,1) /* 2 bytes, starting with byte 65 are the hotkey. I think 2nd byte is always '06' when the key is assigned */ K=C2X(STR(KEY,1)) IF K<>'00' THEN DO SAY FI SAY DECODE(KEY,SEC) END CALL CLOSE F RETURN STR:PROCEDURE ARG S,I RETURN SUBSTR(S,I,1) DECODE:PROCEDURE EXPOSE DU PARSE ARG K,SEC IF WORDPOS(K,DU)>0 THEN SAY 'Duplicate hotkey!' ELSE DU=DU K D=C2D(K) IF SEC=D2C(6) THEN DO SELECT WHEN IF D>=48 & D<=90 THEN C='Ctrl-Alt-' || K WHEN D>='112' & D<='123' THEN DO PF=D-111 C='Ctrl-Alt-F' || PF END OTHERWISE C='Unknown: ascii code' D END END ELSE C='Unknown: dec' D C2D(SEC) '| hex' C2X(K) C2X(SEC) RETURN C