Giới hạn sử dụng một chương trình

4 531 1
Giới hạn sử dụng một chương trình

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giới hạn sử dụng một chương trình

Giới hạn sử dụng chương trìnhPhan Thanh ấnNgàynay, vấn đề bản quyền đang là một vấn đề nổi cộm trong nhiều cuộc thảo luận,nhiều hội nghị bàn về kinh tế trí thức ở Việt Nam. Thực tế cho thấy phần lớnngười dùng máy tính dễ dàng mua những phần mềm có chất lượng cao chỉ bằngkhoảng 15 000 VNĐ, thậm chí là không tốn đồng nào trong khi giá bán thực của nócỡ khoảng . vài trăm đôla. Để ngăn chặn vấn đề này, hầu hết các chương trìnhviết ra đều được cài đặt mật khẩu hoặc khoá sử dụng hay là giới hạn chươngtrình được sử dụng trong một khoảng thời gian hay số lần chạy nào đó rồi khôngcho sử dụng nữa để bắt buộc người dùng phải trả tiền. Tuy nhiên, tôi không có ýđịnh nói về bản quyền mà chỉ xin đưa ra một cách để các bạn bảo vệ chương trìnhcủa mình khi không muốn cho ai đụng vào hoặc giới hạn số lần chạy nhất định.Tôi xin giới thiệu hai thủ tục viết bằng Pascal như sau:Thủ tục thứ nhất,đòi mật mã truy xuất chương trình. Nếu mật mã sai thì thông báo và dừngchương trình. Trong thủ tục này tôi sử dụng hàm Readkey để đọc từng kítự mật mã từ bàn phím sau đó viết lại dạng '*', như vậy sẽ tránh lộ mật mã khita sơ ý và thủ tục Halt để dừng chương trình không cho chạy nữa khi mậtmã không đúng. Mật mã là một chuỗi kí tự mà bạn có thể thay đổi ở trong khaibáo Const. Thủ tục này bạn nên gọi đầu tiên trong chương trình chính đểđảm bảo nó thi hành trước nhất.{usescrt; } Procedurenhap_mat_ma;Constpassword = "hello"Var mat_ma:string;tempcode: char;Beginmat_ma:='';gotoxy(22,10);textcolor(12);write('* Mat ma truy xuat:');repeat tempcode := readkey;If (tempcode >= #32) and(tempcode <= #127) then beginwrite('*');mat_ma := mat_ma + tempcode;end;until (tempcode = #13);If (mat_ma <> password) then begingotoxy(22,11);write('* Mat ma khong dung!','Chuong trinh bi dung!*');readln; halt;end;clrscr;End;Thủ tục thứ hai,xoá chương trình sau một số hữu hạn lần chạy. Thủ tục này dựa vào việcthay đổi ngày giờ của file để thực hiện. Trên mỗi file đều có lưu thông tinngày giờ tạo file. Ta sử dụng các thủ tục Unpacktime, Packtime đểgiải nén và nén thông tin về ngày giờ lưu trên file còn các thủ tục Getftime,Setftime để đọc và ghi lại thông tin về ngày giờ tạo file, Datetimelà kiểu Record định nghĩa sẵn của Pascal dùng để ghi thông tin ngày giờ do thủtục Unpacktime giải nén. Sau khi chạy thủ tục, thời gian tạo file đượcghi lại thành 00:01:00, mỗi lần chạy sau đó ta tăng lên 1 phút va ghi lại trênfile nhờ thủ tục Setftime, đến lần chạy giới hạn thì thông báo và gọithủ tục Erase để xoá file. Tên file được đọc nhờ hàm Paramstr(n=0).Bạn có thể thay việc xoá file bằng việc gọi lại thủ tục Nhap_mat_ma saocho hợp lí để đỡ phải dịch lại. Thủ tục này nên đặt cuối chương trình sau khiđã hoàn tất khâu xử lí. Bạn thử thay việc tăng 1 phút bằng việc tăng 1 giây xemhiện tượng gì xảy ra.{usescrt, dos, windos;} Proceduretu_xoa_file;Var f : file;ftime: longint;dt : TDateTime;Beginassign(f, paramstr(0));reset(f);getftime(f, ftime);unpacktime(ftime, dt);with dt dobeginif (sec <> 0) and (hour <>0) then min := 0;sec := 0;hour := 0;inc(min);if (min = 2) thenbegingotoxy(22,11);textcolor(12);write('* Ban chi chay duoc','1 lan nua!*');readln;gotoxy(80,25); end;if (hour = 0) and (min = 3) and (sec= 0) then erase(f);packtime(dt,ftime);setftime(f, ftime);end;close(f);End; . đề này, hầu hết các chương trìnhviết ra đều được cài đặt mật khẩu hoặc khoá sử dụng hay là giới hạn chươngtrình được sử dụng trong một khoảng thời gian. Giới hạn sử dụng chương trìnhPhan Thanh ấnNgàynay, vấn đề bản quyền đang là một vấn đề nổi cộm trong nhiều cuộc thảo

Ngày đăng: 10/09/2012, 14:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan