Giúp code cấp key bản quyền cho file excel

Liên hệ QC

kcphuong

Thành viên mới
Tham gia
11/2/14
Bài viết
16
Được thích
0
kisper

tai sao khong tao key duoc nhi
 
Lần chỉnh sửa cuối:
Mình có một file excel có code, h do đặt tính công việc mình muốn khóa file này lại bằng 1 serial tương tự như của phần mêm kapesky, và 1 file excel khi mở lên thì phải cấp serial này có thời hạn sử dụng là 1 năm.hết hạn sử dụng thì phải cấp lại số serial mới.
Rất mong nhận được nhiều ý kiến đóng góp của mọi người.

Tôi chưa hình dung được bạn muốn khóa thế nào. Bạn phải dùng code để kiểm tra, mà tôi có thể khóa macro.
 
Upvote 0
Ý mình là :
+ ĐẦu tiên mình muốn có một đoan code để khi lần đầu tiên mở file lên thì phải cung cấp một số serial do mình cài đặt trước và giớ hạn số serial cấp lần đầu đó chỉ sử dụng được file trong thời gian một năm, sau một năm thì file excel đó không sử dụng được nữa -> phải cấp serial lại đó bạn
 
Upvote 0
Ý mình là :
+ ĐẦu tiên mình muốn có một đoan code để khi lần đầu tiên mở file lên thì phải cung cấp một số serial do mình cài đặt trước và giớ hạn số serial cấp lần đầu đó chỉ sử dụng được file trong thời gian một năm, sau một năm thì file excel đó không sử dụng được nữa -> phải cấp serial lại đó bạn

Thế nếu người ta không chạy code của bạn (Disable Macros) rồi bạn làm gì được người ta?
 
Upvote 0
Ý mình là :
+ ĐẦu tiên mình muốn có một đoan code để khi lần đầu tiên mở file lên thì phải cung cấp một số serial do mình cài đặt trước và giớ hạn số serial cấp lần đầu đó chỉ sử dụng được file trong thời gian một năm, sau một năm thì file excel đó không sử dụng được nữa -> phải cấp serial lại đó bạn

Thì tôi đã nói với bạn rồi. Bạn phải có code để kiểm tra. Tức bạn định ghi serial ở "đâu đó" rồi khi tôi mở tập tin thì code của bạn kiểm tra xem serial tôi nhập vào có khớp không, nếu khớp thì thời gian còn không. Thế chứ gì? Nhưng nếu tôi khóa macro thì code của bạn đâu có cơ hội chạy để mà kiểm tra?


Còn nếu bạn cứ mốn làm thì bạn hãy cho vd. bạn ghi serial ở đâu (sẽ dùng để so sánh với serial mà tôi sẽ nhập), và ghi thời gian (dùng để kiểm tra xem đã qua 1 năm chưa) ở đâu. Lúc đó sẽ có người viết code cho bạn. Mà nếu đúng theo như tôi hiểu thì code kiểm tra bạn cũng viết được vì so sánh là chuyện quá dễ.
 
Upvote 0
ok đúng rồi bạn.nhưng có cách nào để khi khóa macro thì code tự động bị delete hết không bạn, nếu có xin chỉ giáo nha.
File dính kiemf bên dưới :
http://www.mediafire.com/download/1916ew1rh2mkns8/thukf.rar
 
Lần chỉnh sửa cuối:
Upvote 0
ok đúng rồi bạn.nhưng có cách nào để khi khóa macro thì code tự động bị delete hết không bạn, nếu có xin chỉ giáo nha.
File dính kiemf bên dưới :
http://www.mediafire.com/download/1916ew1rh2mkns8/thukf.rar

Không có tự động gì cả. Phải có ai đó, cái gì đó làm cái việc kia. Code không tự bốc hơi được. Phải có đoạn code làm cái việc xóa kia. Nhưng nếu người ta khóa macro thì cái code kia có cơ hội đâu để mà "tung hoành"?
 
Upvote 0
Mình có một file excel có code, h do đặt tính công việc mình muốn khóa file này lại bằng 1 serial tương tự như của phần mêm kapesky, và 1 file excel khi mở lên thì phải cấp serial này có thời hạn sử dụng là 1 năm.hết hạn sử dụng thì phải cấp lại số serial mới.
Rất mong nhận được nhiều ý kiến đóng góp của mọi người.

bạn xem file của mình vừa tạo thử, có đáp ứng nổi yêu cầu trên ko? --=0

dưới đây là số serial được cấp: ACC2.jpg

'- - - - -
- Nếu nhập sai key thì user ko thể vào chỉnh sửa các sheet khác + ko thể vào xem code VBA.
- khi đóng file thì các sheet được được ẩn đi (ngoài sheet1) <=> Protected.
'- - - - -
pass VBA: phucbugis

'- - - -
thêm file check key 2 (sửa theo #14)
Link: https://www.mediafire.com/?360e4l38wmmwfq8
'- - - -
check CPUID: Bảo vệ file excel (#7) --> nên sửa lại thành Sub để check 1 lần duy nhất khi Open file (khi dùng hàm trực tiếp có thể ảnh hưởng đến file đang chạy)
 
Lần chỉnh sửa cuối:
Upvote 0
bạn xem file của mình vừa tạo thử, có đáp ứng nổi yêu cầu trên ko? --=0

dưới đây là số serial được cấp:
View attachment 116582

'- - - -
- Nếu nhập sai key thì user ko thể vào chỉnh sửa các sheet khác + ko thể vào xem code VBA.
- khi đóng file thì các sheet được được ẩn đi (ngoài sheet1) <=> Protected.

Sao bạn lại cho tôi sử dụng có 7 ngày thôi? Mà bạn đã trả phí chưa mà đòi dùng 1 năm hả?

Mã:
If Not sRng Is Nothing Then
        If sRng.Offset(, 2) < Date Then
            MsgBox ("So serial: ") & TextBox1 & " da~ het han su dung", vbExclamation, "Thong bao'": Exit Sub
        End If
    End If

Theo tôi thời gian nên kiểm tra hơi khác đề phòng trường hợp người ta (láu cá) "táy máy" lùi đồng hồ. Vd. trước khi mở tập tin thì người ta lùi đồng hồ về ngày tháng mua tập tin - trả phí - thời gian bắt đầu sử dụng file.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao bạn lại cho tôi sử dụng có 7 ngày thôi? Mà bạn đã trả phí chưa mà đòi dùng 1 năm hả?
OK rùi a (e đã sửa key) --=0 do e nhầm thứ tự (ưu tiên member nào trả lời bài này trước)

Mã:
If Not sRng Is Nothing Then
        If sRng.Offset(, 2) < Date Then
            MsgBox ("So serial: ") & TextBox1 & " da~ het han su dung", vbExclamation, "Thong bao'": Exit Sub
        End If
    End If
Theo tôi thời gian nên kiểm tra hơi khác đề phòng trường hợp người ta (láu cá) "táy máy" lùi đồng hồ. Vd. trước khi mở tập tin thì người ta lùi đồng hồ về ngày tháng mua tập tin - trả phí - thời gian bắt đầu sử dụng file.

Nếu ko dựa vào time của hệ thống thì check thế nào? bác có cao kiến gì ko?
 
Upvote 0
ờ thì mình copy dán dữ liệu, gửi xong xem lại thấy nó tóe loe vậy nên gửi lại ảnh . Biết có đề tài nói về cách gửi dữ liệu kiểu bảng nhưng chả nhớ . Nhờ bạn chắc không quên nữa đâu, cám ơn bạn !
 
Upvote 0
OK rùi a (e đã sửa key) --=0 do e nhầm thứ tự (ưu tiên member nào trả lời bài này trước)



Nếu ko dựa vào time của hệ thống thì check thế nào? bác có cao kiến gì ko?

Tất nhiên nếu có kết nối mạng thì lấy Date từ NET. Nhưng nếu người ta không bật internet thì sao?

Không thể bắt người ta phải bật internet vì vô lý quá. Mà cũng có thể người ta không dùng, quyền của người ta.
------------
Gọi là làm khó thêm thôi.

Mã:
sRng.Offset(, 2)

là ngày hết hạn. Ta dùng thêm

Mã:
sRng.Offset(, 3)

là ngày mở cuối.

1. Khi mở tập tin ta kiểm tra
Mã:
If Not sRng Is Nothing Then
        If sRng.Offset(, 2) < Date Or Date <= sRng.Offset(, 3) Or Date < Range("E1") Then
            MsgBox ("So serial: ") & TextBox1 & " da~ het han su dung", vbExclamation, "Thong bao'": 

Exit Sub
        End If
    End If

Bởi nếu đk Date <= sRng.Offset(, 3) thỏa thì có nghĩa là ta đã gặp phải thằng láu cá, lùi thời gian. Vì làm gì có lần khởi động sau mà thời điểm lại sớm hơn lần khởi động trước? Rõ ràng ăn gian.

đk Date < Range("E1") cũng cần có vì nếu không có thì vd. E1 = 18-2-2014 mà trước lần khởi động lần đầu "láu cá" lùi đồng hồ về 18-2-2004, rồi các ngày tiếp theo về 19-2-2004, 20-2-2004 ... thì hắn dùng 10 năm mà cả 2 đk kia không bao giờ thỏa.

Sau khi đk không thỏa, tức không có Exit Sub thì ghi Date vào sRng.Offset(, 3)

Như thế thì ở lần khởi động đầu tiên đồng hồ phải có ngày Date >= E1. Do có đk Date <= sRng.Offset(, 3) nên ngày hôm sau khi mở tập tin "hắn" không thể lùi đồng hồ về ngày <= sRng.Offset(, 3) được. Như vậy giá trị của ô sRng.Offset(, 3) cứ tăng dần và sẽ tới lúc sRng.Offset(, 3) >= sRng.Offset(, 2). Nếu là dấu "=" thì ngày tiếp theo sẽ có Date > sRng.Offset(, 3) (nếu <= thì ta phát hiện ra là ăn gian) >= sRng.Offset(, 2), tức Date > sRng.Offset(, 2) --> Exit Sub
------------
Tất nhiên cũng có thể ăn gian cách khác:
1. Khi mua tập tin về thì làm 10 bản sao.
2. Dùng bản 1 cho tới khi hết hạn
3. Lấy bản 2 ra dùng cho tới khi hết hạn
...
11. Lấy bản 10 ra dùng cho tới khi hết hạn

Cứ thế mãi. Tất nhiên khi dùng bản 2, 3, ..., 10 thì ở lần mở đầu lùi đồng hồ về ngày mua, tức E1, các ngày tiếp theo thì tăng đồng hồ thêm 1 ngày.

Vd. mua ngày 18-2-2014, với quyền dùng 1 năm cho tới ngày 18-2-2015 thì:

1. Làm vd. 10 bản sao.
2. Dùng bản sao 1 cho tới ngày 18-2-2015 - không cần lùi đồng hồ.
3. Lùi đồng hồ về 18-2-2014 và dùng bản sao 2, mỗi ngày tiếp theo lùi đồng hồ về 19-2-2014, ..., 18-2-2015. Tức kết thúc bản sao 2 vào ngày 18-2-2016
4. Lùi đồng hồ về 18-2-2014 và dùng bản sao 3, mỗi ngày tiếp theo lùi đồng hồ về 19-2-2014, ..., 18-2-2015. Tức kết thúc bản sao 3 vào ngày 18-2-2017
....
Nếu làm 100 bản sao thì dùng muôn đời.

Tất nhiên đấy là về lý thuyết thôi. Chứ nếu khổ sở lùi đồng hồ mỗi ngày như thế thì rồi "láu cá" cũng phải đầu hàng. Thôi thì trả phí bèo cho nó sướng thân.

Đấy là xét láu cá thôi. Chứ gặp "chuyên gia" thì bó tay. Vì chuyên gia vào mở VBA rồi xóa luôn code kiểm tra cho khỏe người. Gặp chuyên gia thì: "thôi, biếu ông dùng miễn phí ông nhé"
 
Lần chỉnh sửa cuối:
Upvote 0
bác siwtom giải thích thật dễ hiểu ---> e lại có kinh nghiệm hơn trong việc Protect file --=0, cảm ơn bác nhiều nhé!

e nghĩ có key cũng ko quan trọng nhất lắm, quan trọng nhất là phải bảo vệ được code VBA bên trong.
Trong quá trình sử dụng file nhất định sẽ có phát sinh vấn đề viết thêm code ---> phải chỉnh sửa ---> tới lúc đó cũng tìm gặp tác giả thôi :-=
 
Upvote 0
bạn xem file của mình vừa tạo thử, có đáp ứng nổi yêu cầu trên ko? --=0

dưới đây là số serial được cấp:
View attachment 116588

'- - - -
- Nếu nhập sai key thì user ko thể vào chỉnh sửa các sheet khác + ko thể vào xem code VBA.
- khi đóng file thì các sheet được được ẩn đi (ngoài sheet1) <=> Protected.
Bạn có thể cho mình tham khảo code của bạn được không.
 
Upvote 0
Nếu người ta Disable Macros thì người ta không thể sử dụng file được thầy ạ. Vì tác giả bảo file này có macro mà.

Thực ra là mọi người muốn "bàn ra" nên nói thế thôi. Vẫn có cách vd. như cách của bạn phucbugis. Có những cách mà ta có thể gọi là đủ. Vì dù cách nào thì cũng có người sẽ phá được, nhưng nếu họ chiếm tỉ lệ rất thấp thì có thể gọi là đủ. Lúc đó ta vẫn có thể kiếm tiền từ số đông.

Vấn đề của bạn chủ chủ đề có 2 khía cạnh: serial và giới hạn thời gian. Nếu chỉ là chống những người không biết serial - phải mua mới biết - thì chỉ cần thiết lập mật khẩu cho tập tin. Mật khẩu này hầu như chưa ai biết phá. Tôi nhấn mạnh "hầu như".

Còn vấn đề giới hạn thời gian, tức có mua và biết serial hay mật khẩu, thì hơi khó. Như tôi đã nói, kẻ "láu cá" vẫn có thể qua mặt được.

Chuyện dùng 10 năm hay dùng "muôn đời" là cách nói phóng đại mà thôi. Là nói về lý thuyết. Ý tôi là tôi có thể dùng 2 hoặc 3 năm nếu tôi muốn, nếu tôi cho là phiên bản hiện hành hoàn toàn thỏa mãn nhu cầu của tôi.

Tất nhiên phần mềm nào thì sau một thời gian cũg có phiên bản mới, nhưng nhiều khi những phiên bản mới đó nó chả thêm được gì có ích, có lợi tới mức mà tôi cần phải có phiên bản mới. Như Delphi, như VB (Visual Basic) hay thậm chí Windows, có những phiên bản mới mà chỉ có một câu: thất bại. Thêm những cái không đâu, mầu mè, multimedia hoặc những cái vớ vẩn, về chức năng thì chả hơn gì bản cũ, có cái còn xấu đi không bằng bản cũ. Ngoài ra có thể những chức năng được thêm vào nó chưa phải loại vượt bậc, chưa phải là bước nhẩy vọt từ máy hơi nước sang động cơ đốt thì rất có thể nhiều người không muốn hoặc không có nhu cầu chuyển sang phiên bản mới. Như tôi đây. Tôi chả làm gì tới mức phải có Excel 2010, 2013, Windows 7, 8. Cũng chả phải làm phim chuyên nghiệp hay đồ họa chuyên nghiệp nên cũng chả cần tới máy phải có cấu hình ngày càng mới, RAM khổng lồ, processor 2 nhân, 4 nhân, với đồng hồ đánh nhịp tới xyz GHz. Vậy tôi vẫn dùng XP, thậm chí không Professional mà chỉ Home Edition. Và Excel 2007. Thậm chí có người vẫn dùng Excel 2003.
Không phải ai khi có mới là họ muốn có mới bằng được. Vậy thì họ có thể mua 1 năm nhưng dùng 2, 3 năm. Hay nói theo cách phóng đại của tôi thì là dùng muôn đời.

Tóm lại thì về mặt lý thuyết có thể phá mọi rào cản nhưng về mặt thực tiễn thì ta chỉ cần chống "gà mờ" là đủ. Vì họ là số đông còn "chuyên gia", "láu cá" là thiểu số. Kiếm tiền từ "gà mờ" cũng là đủ rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
mình thanl mọi người nhiều nha.mấy bữa nay công việc bận quá không lên được h lên thấy mọi người quan tâm vấn đề của mình we}}}}} mình cón một vấn đề muốn hỏi nữa không biết mọi người có cách nào giúp được hem?
Là khi mà mở file check key lên nếu như chế độ macro không bậc thì tự động xoá luôn code không biết có lầm được không, nếu được mong mọi người giúp đỡ nha.--=0
 
Upvote 0
Thực ra là mọi người muốn "bàn ra" nên nói thế thôi. Vẫn có cách vd. như cách của bạn phucbugis. Có những cách mà ta có thể gọi là đủ. Vì dù cách nào thì cũng có người sẽ phá được, nhưng nếu họ chiếm tỉ lệ rất thấp thì có thể gọi là đủ. Lúc đó ta vẫn có thể kiếm tiền từ số đông.

Vấn đề của bạn chủ chủ đề có 2 khía cạnh: serial và giới hạn thời gian. Nếu chỉ là chống những người không biết serial - phải mua mới biết - thì chỉ cần thiết lập mật khẩu cho tập tin. Mật khẩu này hầu như chưa ai biết phá. Tôi nhấn mạnh "hầu như".

Còn vấn đề giới hạn thời gian, tức có mua và biết serial hay mật khẩu, thì hơi khó. Như tôi đã nói, kẻ "láu cá" vẫn có thể qua mặt được.

Chuyện dùng 10 năm hay dùng "muôn đời" là cách nói phóng đại mà thôi. Là nói về lý thuyết. Ý tôi là tôi có thể dùng 2 hoặc 3 năm nếu tôi muốn, nếu tôi cho là phiên bản hiện hành hoàn toàn thỏa mãn nhu cầu của tôi.

Tất nhiên phần mềm nào thì sau một thời gian cũg có phiên bản mới, nhưng nhiều khi những phiên bản mới đó nó chả thêm được gì có ích, có lợi tới mức mà tôi cần phải có phiên bản mới. Như Delphi, như VB (Visual Basic) hay thậm chí Windows, có những phiên bản mới mà chỉ có một câu: thất bại. Thêm những cái không đâu, mầu mè, multimedia hoặc những cái vớ vẩn, về chức năng thì chả hơn gì bản cũ, có cái còn xấu đi không bằng bản cũ. Ngoài ra có thể những chức năng được thêm vào nó chưa phải loại vượt bậc, chưa phải là bước nhẩy vọt từ máy hơi nước sang động cơ đốt thì rất có thể nhiều người không muốn hoặc không có nhu cầu chuyển sang phiên bản mới. Như tôi đây. Tôi chả làm gì tới mức phải có Excel 2010, 2013, Windows 7, 8. Cũng chả phải làm phim chuyên nghiệp hay đồ họa chuyên nghiệp nên cũng chả cần tới máy phải có cấu hình ngày càng mới, RAM khổng lồ, processor 2 nhân, 4 nhân, với đồng hồ đánh nhịp tới xyz GHz. Vậy tôi vẫn dùng XP, thậm chí không Professional mà chỉ Home Edition. Và Excel 2007. Thậm chí có người vẫn dùng Excel 2003.
Không phải ai khi có mới là họ muốn có mới bằng được. Vậy thì họ có thể mua 1 năm nhưng dùng 2, 3 năm. Hay nói theo cách phóng đại của tôi thì là dùng muôn đời.

Tóm lại thì về mặt lý thuyết có thể phá mọi rào cản nhưng về mặt thực tiễn thì ta chỉ cần chống "gà mờ" là đủ. Vì họ là số đông còn "chuyên gia", "láu cá" là thiểu số. Kiếm tiền từ "gà mờ" cũng là đủ rồi.
Mong thầy Siwtom viết đoạn code để em cùng các thành viên học hỏi với ạ!!!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom