200分求光驱中光盘检测问题!(200分)

  • 主题发起人 主题发起人 etong2
  • 开始时间 开始时间
E

etong2

Unregistered / Unconfirmed
GUEST, unregistred user!
目前在开发一个软件,需要在市面上出售,因此涉及防止非法拷贝的问题。
这就需要每次程序在执行操作的时候,都会去检测光驱中有没有特定的光盘文件存在,
请问详细的代码应该怎么写?
比如说我要指定程序去读取一个名为sn.txt的文件,如果文件存在,就继续运行,
如果文件不存在,弹出对话窗口:“光驱中没有光盘!”,并且停止运行。
如果光盘存在,则继续运行。
多谢!


 
这样可以防止非法拷贝吗?如果你的光盘sn.txt被复制了,
不等于软件被拷贝了一样
 
我也知道是这个样子,可是这个软件不是太机密的那种,随书发售,只是涉及专业的一般的人才买,
所以说这样子解决也就可以了。
 
FileOpen
该函数应给可以解决你的问题,你需要把文件的路径告诉它。
 
问题是不同的机子光驱盘符是不一样的!所以必须是光驱!
 
//判断光盘上sn.text是否存在
function TForm1.FileFound : boolean;
var
FFound : Boolean;
i : integer;
C : string;
DType : integer;
DataString : string;
begin

FFound := false;
for i := 65 to 90do

begin

C := chr(i) + ':/';
DType := GetDriveType(PChar(C));
if (DType=DRIVE_CDROM) then

begin

DataString := C + 'sn.txt';
if FileExists(DataString)=true then
FFound := true;
end;

end;

Result :=FFound;
end;


别忘了给分呀!!
 
多谢啊,就是调试的时候出了一些问题。
代码是越详细越好,最好可以弄个程序源代码到我邮箱里面了
realetong@hotmail.com
 
这是一个函数,用的时候直接调用就行了,返回值是boolean型;
声明:
function FileFound : Boolean;
定义函数:
function TForm1.FileFound : boolean;
var
FFound : Boolean;
i : integer;
C : string;
DType : integer;
DataString : string;
begin

FFound := false;
for i := 65 to 90do

begin

C := chr(i) + ':/';
DType := GetDriveType(PChar(C));
if (DType=DRIVE_CDROM) then

begin

DataString := C + 'sn.txt';
if FileExists(DataString)=true then
FFound := true;
end;

end;

Result :=FFound;
end;


引用函数:
if FileFound=true then

begin

//程序正常执行!
end
else

begin

//请将光盘放入光驱!
end;



 
发到你的邮箱了,请查收!!
 
呵呵,多谢!
180给你!
 
多人接受答案了。
 
后退
顶部