home *** CD-ROM | disk | FTP | other *** search
- program Instances;
- { uploaded by Ron Aaron as a demonstration of how to
- prevent multiple instances of a program in different
- VMs. This program will work compiled for Windows, DOS
- or DPMI.
- }
- uses strings,
- {$IFDEF WINDOWS}
- wincrt
- {$ELSE}
- crt
- {$ENDIF}
- ;
-
- var
- { Inter Program Area: 16 bytes set aside by IBM for
- just this sort of thing...
- }
- IPA : array[0..15] of char absolute $40:$f0;
-
- const
- ident : PChar = 'INSTTEST';
-
- function isrunning : boolean;
- begin
- if StrComp(IPA, ident) = 0 then
- isrunning := true
- else
- isrunning := false;
- end;
-
- procedure install;
- begin
- StrCopy(IPA, ident);
- end;
-
- procedure deinstall;
- begin
- StrCopy(IPA,'xxxxx');
- end;
-
- begin
- if isrunning then
- begin
- writeln('Previous copy is running.');
- end
- else
- begin
- install;
- writeln('No previous copy is running. Press any key to quit...');
- while not keypressed do
- ;
- deinstall;
- end;
- end.