ลบกวนนอกเรื่องหน่อยครับ เกี่ยวกัน VB
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 261   6
URL.หัวข้อ / URL
ลบกวนนอกเรื่องหน่อยครับ เกี่ยวกัน VB

ผมเขียนโปรแกรมด้วย VB 6.0 ตอนนี้เขียนเสร็จแล้ว แต่อยากให้ผู้ใช้สามารถ ลงได้จำนวน 3 ครั้งจะทำอย่างไร หรือจะมีวิธีอย่างไรครับรบกวนทีครับ อีกเรื่องครับ อยากให้ ไม่สามารถก๊อปปี่จากแผ่นด้วยครับ จะเป็นจาก Drive A หรือ CD ก็ได้ครับ ขอบคุณมากครับ

6 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04047
คงจะทำยากเหมือนกันครับ เพราะต้องมีการเก็บข้อมูลว่าได้ลงไปแล้วกี่ครั้งแล้ว
ซึ่งส่วนใหญ่ที่เคยอ่านเจอ (แต่ยังไม่เคยทำครับ) เขาจะใช้ Floppy Disk ช่วยในการเก็บจำนวนครั้งที่ได้ลงไปแล้ว ส่วนจะเก็บอย่างไรนั้นผมไม่ทราบวิธีครับ บางคนว่าเขียนเข้าไปเป็นไฟล์อะไรสักอย่างแล้วเข้ารหัสไว้ เวลาติดตั้งเราต้องเขียนโค้ดไปถอดรหัสนั้น แล้วเขียนข้อมูลลงไป

เคยเห็นโปรแกรมสอนการเขียน VB 6.0 ของจุฬาฯ ที่มี 7 แผ่น เขาก็พยายามใช้หลักการนี้เหมือนกัน แต่ก็มีคน crack ได้เหมือนเดิมครับ

ลองอ่านกระทู้ของต่างประเทศตรงนี้ดูครับ http://www.andreavb.com/forum/viewtopic.php?TopicID=907&page=0#2653 จะเป็นการแลกเปลี่ยนแนวความคิดในการป้องกันการ Copy CD แต่เขาก็พูดถึงหลักการป้องกันแบบต่างๆ ไว้ด้วย เผื่อเกิดแนวความคิดบ้างครับ

2 @R04053
ขอบคุณอย่างแรงครับ แต่อยากได้ตัวอย่างอยู่ดิครับ หุหุหุ
3 @R04074
ป้องกันการก๊อปปี้จากดิกส์หรือ เมื่อก่อนผมเคยทำงานที่บริษัทซอฟท์แวร์เฮ้าส์ เห็นเขาใช้โปรแกรม Prokeydisk
แต่ crack ได้อยู่ดี (เห็นเขาว่ากันนะ)

ป้องกันคงยากครับ ลองหาวิธีอื่นๆ ดูสิ

ปัจจุบันผมก็ป้องกันเหมือนกัน ผมใช้วิธีด้วยการล๊อกโปรแกรมไว้ ตอนติดตั้งต้องขอรหัสผ่านอะไรแบบนี้ ถ้าไม่ขอรหัสผ่านก็ใช้โปรแกรมไม่ได้ การหารหัสผ่านก็ให้อ่านค่าตัวเลขของเครื่องตัวนั้นๆ มา เช่น serial harddisk หรือ แลนการ์ด เป็นต้น แล้วมาผ่านสูตรคำนวนหลายตลบหน่อย แค่นี้ก็แคร๊กเกอร์ก็ต้องเหนื่อยหน่อยแล้ว


4 @R04101
คือผม อยากให้บอกโค๊ตที่ใช้อ่าน Serial HDD มาทีครับ ของผมเขียนแล้วแต่ไม่ได้เรื่อง อีกอย่างนึง Serial HDD จะมีตัวหนังสือปนอยู่ด้วยจะทำไงให้เอาแค่ตัวเลขมาใช้ได้ครับ รบกวนทีครับ ยากหน่อยนะครับ
5 @R04108
Public Declare Function GetVolumeInformation& Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName _
As String, ByVal pVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As _
Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long)

Public Const MAX_FILENAME_LEN = 256


Public Function GetDriveSerialNumber(Drive As String) As String
'ตรวจสอบ Harddisk Serial ID
Dim No&, s As String * MAX_FILENAME_LEN
Call GetVolumeInformation(Drive + ":\", s, MAX_FILENAME_LEN, _
No, 0&, 0&, s, MAX_FILENAME_LEN)
GetDriveSerialNumber = Mid(Hex(No), 1, 4) & "-" & Mid(Hex(No), 5, 4)
End Function

ลอกเขามาอีกทีหนึ่งนะ ส่วนตัวผมไม่ได้ใช้ sn ฮาร์ดดิกส์หรอก ผมเอาค่าอื่นๆ ที่อยู่ในเครื่องมาแปลง

เรื่องตัวอักษรที่อยู่ใน ซีเรี่ยล

ก็ใช้คำสั่ง ASC แปลงเป็นค่าตัวเลขแอสกี้สิ จบเลย เอาไปบวกลบคูณหายได้ตามอัธยาศัย
6 @R04148
บคุณหลายๆ เด้อครับ คนไทยต้องงี้สิ หุหุหุ ไทยช่วยไทย
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0625s