On which storage is you application? (Views: 30)
Problem/Question/Abstract: Sometimes, when you develop a software you need to disable the execution of the code from certain types of media, for example, if your application uses a database file, you can't write on it if it's located on a CR-ROM. How to manage this in a easy way? There's the solution. Answer: Just write down these short routines: function IsOnHDD: boolean; begin result := GetDriveType(pChar(uppercase(copy(ParamStr(0), 1, 3)))) = DRIVE_FIXED; end; function IsOnCD: boolean; begin result := GetDriveType(pChar(uppercase(copy(ParamStr(0), 1, 3)))) = DRIVE_CDROM; end; function IsOnRemoveable: boolean; begin result := GetDriveType(pChar(uppercase(copy(ParamStr(0), 1, 3)))) = DRIVE_REMOVABLE; end; The use them in your project file (.DPR) like this: program Project1; uses Windows, // Added manually SysUtils, // Added manually Dialogs, // Added manually Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} function IsOnCD: boolean; begin result := GetDriveType(pChar(uppercase(copy(ParamStr(0), 1, 3)))) = DRIVE_CDROM; end; begin Application.Initialize; if IsOnCD then begin ShowMessage('This program cannot be executed from a CD-ROM drive.'); Application.Terminate; end else begin Application.CreateForm(TForm1, Form1); Application.Run; end; end. This program will not start if located on a CD-ROM. And no other code than the necessary one will be executed. Christian Cristofori |