พอดีอยากให้หันมาเขียน มาศึกษากันเองบ้างอ่ะครับ ไม่ทราบว่า ขัดข้องหรือไม่ และผมต้องการเผยแพร่ด้วยอ่ะครับ
+2
POS
rolovely
6 posters
ผมทำโปรแกรมช่วยเล่นเกม GFO แล้วเวลาใช้ต้องมาสมัครนี้ ไม่ทราบว่าอณุญาติไหมครับ
rolovely- PSsix Member Super Class II
จำนวนข้อความ : 193
ความนิยม : 26
เข้าร่วมเมื่อ : 15/10/2010
อายุ : 35
ที่อยู่ : THAILAND
rolovely- PSsix Member Super Class II
จำนวนข้อความ : 193
ความนิยม : 26
เข้าร่วมเมื่อ : 15/10/2010
อายุ : 35
ที่อยู่ : THAILAND
ผมประมาณว่าอย่างนี้ครับ
เวลาเข้าใช้โปร ต้องมาล็อคอินที่เว็บนี้ ในโปรแกรมที่ผมจำกัดไว้ให้ โดยตัวโปรแกรมจะโชว์เว็บของคุณ pos ไว้ เอางี้ ดูภาพดีกว่าครับ
ที่ปุ่มเริ่ม เกิดถ้าไม่ล็อคอินจะไม่มีปุ่ม เริ่ม และที่เห้นนั่นเว็บผมเอง ใช้วิธีเช็คว่าล็อคอินแล้วหรือไม่ เกิดถ้าใช่ ก็จะ ขึ้น แต่ก็อยู่ที่ความเร็วทางโฮสด้วย เพราะเว็บนั้น รู้สึกว่ามันช้าด้วย
เวลาเข้าใช้โปร ต้องมาล็อคอินที่เว็บนี้ ในโปรแกรมที่ผมจำกัดไว้ให้ โดยตัวโปรแกรมจะโชว์เว็บของคุณ pos ไว้ เอางี้ ดูภาพดีกว่าครับ
ที่ปุ่มเริ่ม เกิดถ้าไม่ล็อคอินจะไม่มีปุ่ม เริ่ม และที่เห้นนั่นเว็บผมเอง ใช้วิธีเช็คว่าล็อคอินแล้วหรือไม่ เกิดถ้าใช่ ก็จะ ขึ้น แต่ก็อยู่ที่ความเร็วทางโฮสด้วย เพราะเว็บนั้น รู้สึกว่ามันช้าด้วย
POS- PSsix
-
จำนวนข้อความ : 1152
ความนิยม : 326
เข้าร่วมเมื่อ : 19/07/2010
วิธีนี้ไม่ค่อยดี เพราะการใช้โปรแกรมต้องขึ้นอยู่กับเน็ต แล้วยิ่งพวกเว็บบอร์ดฟรีนี่ บางวันก็ดี บางวันก็ช้า หรือเปิดไม่ได้เลย
ถ้าจะใช้วิธีจำกัดการใช้โปรแกรม เฉพาะใช้วิธีการสร้างไฟล์ไอดีจะดีกว่า
ขั้นตอนหลักๆ
1. สร้างโปรแกรม โดยใช้คำสั่ง DriveGetSerial( "c:" ) ดึงเอาหมายเลขฮาร์ดดิสก์ผู้ใช้มาเก็บไว้ (ผู้ใช้ต้องส่งหมายเลขไอดีฮาร์ดดิสก์ที่ได้จากโปรแกรมนี้มาให้เรา เพื่อขอใช้โปรแกรม)
2. นำหมายเลขไอดีที่ได้ มาเข้ารหัสโดยคำสั่ง _StringEncrypt เก็บไว้ในไฟล์เช่น id.txt แล้วส่งให้ผู้ใช้อีกที
3. เขียนโปรแกรมโดยใส่คำสั่งถอดรหัสไฟล์ที่เก็บไอดี และดึงเอาไอดีของเครื่องที่เปิดโปรแกรมมาเทียบ ถ้าตรงกันก็ใช้งานได้ ถ้าไม่ตรงก็ปิดโปรแกรม
วิธีนี้จะทำให้แม้จะมีการอัปเดทโปรแกรมผู้ใช้ก็ยังใช้งานโปรแกรมได้อยู่ เพราะไฟล์ไอดีจะเป็นตัวกำหนดการใช้งาน
ปล. ทำโปรแกรมแจกจ่ายฟรีง่ายกว่า แล้วค่อยทำปุ่มลิงก์มาที่เว็บในหน้าต่างโปรแกรม
ถ้าจะใช้วิธีจำกัดการใช้โปรแกรม เฉพาะใช้วิธีการสร้างไฟล์ไอดีจะดีกว่า
ขั้นตอนหลักๆ
1. สร้างโปรแกรม โดยใช้คำสั่ง DriveGetSerial( "c:" ) ดึงเอาหมายเลขฮาร์ดดิสก์ผู้ใช้มาเก็บไว้ (ผู้ใช้ต้องส่งหมายเลขไอดีฮาร์ดดิสก์ที่ได้จากโปรแกรมนี้มาให้เรา เพื่อขอใช้โปรแกรม)
2. นำหมายเลขไอดีที่ได้ มาเข้ารหัสโดยคำสั่ง _StringEncrypt เก็บไว้ในไฟล์เช่น id.txt แล้วส่งให้ผู้ใช้อีกที
3. เขียนโปรแกรมโดยใส่คำสั่งถอดรหัสไฟล์ที่เก็บไอดี และดึงเอาไอดีของเครื่องที่เปิดโปรแกรมมาเทียบ ถ้าตรงกันก็ใช้งานได้ ถ้าไม่ตรงก็ปิดโปรแกรม
- Code:
$chars = FileRead("xxxxx")
$chars =_StringEncrypt(0,$chars,"xxxx",1)
$a= DriveGetSerial( "c:" )
if $a <> $chars Then exit
วิธีนี้จะทำให้แม้จะมีการอัปเดทโปรแกรมผู้ใช้ก็ยังใช้งานโปรแกรมได้อยู่ เพราะไฟล์ไอดีจะเป็นตัวกำหนดการใช้งาน
ปล. ทำโปรแกรมแจกจ่ายฟรีง่ายกว่า แล้วค่อยทำปุ่มลิงก์มาที่เว็บในหน้าต่างโปรแกรม
rolovely- PSsix Member Super Class II
จำนวนข้อความ : 193
ความนิยม : 26
เข้าร่วมเมื่อ : 15/10/2010
อายุ : 35
ที่อยู่ : THAILAND
ผมทำเข้ารหัสได้ แต่ ผมทำให้มันถอดรหัสไม่ได้ พยายามศึกษาและ แต่ก็งง
ยังไงขอดูวิธีทำหน่อยแล้วกันนะครับ ไม่เอาใน exam มาให้ดูนะ
ยังไงขอดูวิธีทำหน่อยแล้วกันนะครับ ไม่เอาใน exam มาให้ดูนะ
aut- PSsix Powerful Scripting Class
จำนวนข้อความ : 472
ความนิยม : 126
เข้าร่วมเมื่อ : 24/07/2010
ลองดู
หาไอดี ก่อน ตัว c: มันต้องมีเครื่องหมายทับ \ ต่อท้าย บอร์ดนี้มันลบออกไม่รู้ทำไม ตะแรกก็งงว่ามันไม่ออกหมายเลข
ได้แล้วก็เอาไอดีมาใส่ระหัสอันนี้
แล้วก็เอาอันนี้วางตรงหัวโปรแกรม กับไฟล์ ID
จบงิ แก้ไปแก้มาเกือบครึ่งชั่วโมง กว่าจะเส็ด
:lol!:
หาไอดี ก่อน ตัว c: มันต้องมีเครื่องหมายทับ \ ต่อท้าย บอร์ดนี้มันลบออกไม่รู้ทำไม ตะแรกก็งงว่ามันไม่ออกหมายเลข
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("หาไอดี", 268, 71, 192, 124)
$Input1 = GUICtrlCreateInput(DriveGetSerial( "c:" ), 16, 24, 217, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
ได้แล้วก็เอาไอดีมาใส่ระหัสอันนี้
#include <GuiConstantsEx.au3>
#include <String.au3>
_Main()
Func _Main()
Local $WinMain, $EditText, $InputPass, $InputLevel, $UpDownLevel, $EncryptButton, $DecryptButton, $string,$file
; GUI and String stuff
$WinMain = GUICreate('สร้าง ID', 400, 400)
; Creates window
$EditText = GUICtrlCreateEdit('', 5, 5, 380, 350)
; Creates main edit
$InputPass = GUICtrlCreateInput('abc', 5, 360, 100, 20 )
; Creates the password box with blured/centered input
$InputLevel = GUICtrlCreateInput(1, 110, 360, 50, 20, 0x2001)
$UpDownLevel = GUICtrlSetLimit(GUICtrlCreateUpdown($InputLevel), 10, 1)
; These two make the level input with the Up|Down ability
$EncryptButton = GUICtrlCreateButton('ใส่ระหัส', 170, 360, 105, 35)
; Encryption button
$DecryptButton = GUICtrlCreateButton('ถอด', 285, 360, 105, 35)
; Decryption button
GUICtrlCreateLabel('Password', 5, 385)
GUICtrlCreateLabel('Level', 110, 385)
; Simple text labels so you know what is what
GUISetState()
; Shows window
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $EncryptButton
GUISetState(@SW_DISABLE, $WinMain) ; Stops you from changing anything
$string = GUICtrlRead($EditText) ; Saves the editbox for later
GUICtrlSetData($EditText, 'Please wait while the text is Encrypted/Decrypted.') ; Friendly message
GUICtrlSetData($EditText, _StringEncrypt(1, $string, GUICtrlRead($InputPass), GUICtrlRead($InputLevel)))
$file = FileOpen(@ScriptDir&"\ID", 2)
If $file = -1 Then
MsgBox(0, "Error", "เปิดไม่ได้งะ")
EndIf
$string = GUICtrlRead($EditText)
FileWrite($file, $string)
FileClose($file)
MsgBox(0,"เรียบร้อยแว้ว","ทำไฟล์ ID เรียบร้อย ")
GUISetState(@SW_ENABLE, $WinMain) ; This turns the window back on
Case $DecryptButton
GUISetState(@SW_DISABLE, $WinMain) ; Stops you from changing anything
$string = GUICtrlRead($EditText) ; Saves the editbox for later
GUICtrlSetData($EditText, 'Please wait while the text is Encrypted/Decrypted.') ; Friendly message
GUICtrlSetData($EditText, _StringEncrypt(0, $string, GUICtrlRead($InputPass), GUICtrlRead($InputLevel)))
GUISetState(@SW_ENABLE, $WinMain) ; This turns the window back on
EndSwitch
WEnd ; Continue loop untill window is closed
Exit
EndFunc
แล้วก็เอาอันนี้วางตรงหัวโปรแกรม กับไฟล์ ID
#include <String.au3>
$file = FileOpen("test.txt", 0)
$chars = FileRead("ID")
$b = _StringEncrypt(0, $chars,"abc")
$a= DriveGetSerial( "c:" )
if $a <> $b Then
MsgBox(0,"ไม่ผ่าน","ไม่ผ่าน")
exit
Else
MsgBox(0,"ผ่าน","ผ่าน")
EndIf
จบงิ แก้ไปแก้มาเกือบครึ่งชั่วโมง กว่าจะเส็ด
:lol!:
sadd15- สมาชิกทั่วไป
-
จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/11/2011
อายุ : 37
POS พิมพ์ว่า:วิธีนี้ไม่ค่อยดี เพราะการใช้โปรแกรมต้องขึ้นอยู่กับเน็ต แล้วยิ่งพวกเว็บบอร์ดฟรีนี่ บางวันก็ดี บางวันก็ช้า หรือเปิดไม่ได้เลย
ถ้าจะใช้วิธีจำกัดการใช้โปรแกรม เฉพาะใช้วิธีการสร้างไฟล์ไอดีจะดีกว่า
ขั้นตอนหลักๆ
1. สร้างโปรแกรม โดยใช้คำสั่ง DriveGetSerial( "c:" ) ดึงเอาหมายเลขฮาร์ดดิสก์ผู้ใช้มาเก็บไว้ (ผู้ใช้ต้องส่งหมายเลขไอดีฮาร์ดดิสก์ที่ได้จากโปรแกรมนี้มาให้เรา เพื่อขอใช้โปรแกรม)
2. นำหมายเลขไอดีที่ได้ มาเข้ารหัสโดยคำสั่ง _StringEncrypt เก็บไว้ในไฟล์เช่น id.txt แล้วส่งให้ผู้ใช้อีกที
3. เขียนโปรแกรมโดยใส่คำสั่งถอดรหัสไฟล์ที่เก็บไอดี และดึงเอาไอดีของเครื่องที่เปิดโปรแกรมมาเทียบ ถ้าตรงกันก็ใช้งานได้ ถ้าไม่ตรงก็ปิดโปรแกรม
- Code:
$chars = FileRead("xxxxx")
$chars =_StringEncrypt(0,$chars,"xxxx",1)
$a= DriveGetSerial( "c:" )
if $a <> $chars Then exit
วิธีนี้จะทำให้แม้จะมีการอัปเดทโปรแกรมผู้ใช้ก็ยังใช้งานโปรแกรมได้อยู่ เพราะไฟล์ไอดีจะเป็นตัวกำหนดการใช้งาน
ปล. ทำโปรแกรมแจกจ่ายฟรีง่ายกว่า แล้วค่อยทำปุ่มลิงก์มาที่เว็บในหน้าต่างโปรแกรม
คุณ POS สอนละเอียดกว่านี้นิดหนึ่งได้มั้ยครับ งง ครับจะทำให้มันอ่านได้ยังไงเราใส่โค๊ดนี้ในโปรแกรมยังไงแล้วก็ ไฟล์ id.txt ใส่ค่าอะไรเข้าไปบ้างครับ
Arm- PSsix Member Super Class III
-
จำนวนข้อความ : 268
ความนิยม : 54
เข้าร่วมเมื่อ : 31/03/2011
อายุ : 26
ถ้าทำแบบนี้ต้องมี 2 ไฟล์ครับ ไฟล์แรกเป็นตัวโปรแกรมของเรา ที่ได้โค้ดเช็คการ Register ไว้ที่หัวไฟล์
1.au3
โค้ดข้างบนจะตรวจสอบว่ามีไฟล์ lic หรือไม่ ถ้าไม่มีจะสร้างไฟล์ขึ้นมาภายในไฟล์จะมี DriveGetSerial(@HomeDrive) ที่เราแปลงเป็นเลขฐานสิบไว้ แต่ถ้ามีไฟล์จะเช็คก่อนว่าคีย์ตรงกันหรือเปล่า (ตรงบรรทัดที่ If FileRead() <> _StringEncrypt() Then) ถ้าตรงกันจะขึ้น MsgBox ว่า ลงทะเบียนแล้ว ถ้าไม่ตรงจะสร้างไฟล์ lic ขึ้นมาใหม่ครับ
2.au3
ไฟล์นี้จะเป็นตัวเข้ารหัสไฟล์ lic ของเราครับ
* Remark *
หลักๆจะอยู่ที่ _StringEncrypt() ครับ เป็นคำสั่งเข้ารหัสข้อความ
_StringEncrypt(1, "text", "abc", 5)
1 คือเข้ารหัส 0 คือถอดรหัส (เงื่อนไขที่เหลือต้องตรงกันด้วยพวก Password กับ Level)
_StringEncrypt(1, "text", "abc", 5)
อันนี้คือข้อความที่เข้ารหัส
_StringEncrypt(1, "text", "abc", 5)
อันนี้รหัสผ่านที่เข้ารหัสแล้วแต่เราจะตั้งเลย แต่เวลาจะถอดต้องตรงกันด้วย
_StringEncrypt(1, "text", "abc", 5)
อันนี้จะใส่หรือไม่ใส่ก็ได้ครับ เป็นเวเวลในการเข้า/ถอดรหัส (1-10) ยิ่งตั้งค่าสูงความยาวของข้อความที่ถูกเข้ารหัสจะยิ่งมากและเวลาในการทำงานก็จะมากตามไปด้วยครับ
1.au3
- Code:
#include <String.au3>
$lic = @ScriptDir & "\lic"
If FileExists($lic) Then
If FileRead($lic, FileGetSize($lic)) <> _StringEncrypt(1, Dec(DriveGetSerial(@HomeDrive)), "pass") Then
FileDelete($lic)
FileWrite($lic, Dec(DriveGetSerial(@HomeDrive)))
MsgBox(0, "", "สร้างไฟล์ license เรียบร้อย")
;Exit
Else
MsgBox(0, "", "Registered!")
;Exit
EndIf
EndIf
โค้ดข้างบนจะตรวจสอบว่ามีไฟล์ lic หรือไม่ ถ้าไม่มีจะสร้างไฟล์ขึ้นมาภายในไฟล์จะมี DriveGetSerial(@HomeDrive) ที่เราแปลงเป็นเลขฐานสิบไว้ แต่ถ้ามีไฟล์จะเช็คก่อนว่าคีย์ตรงกันหรือเปล่า (ตรงบรรทัดที่ If FileRead() <> _StringEncrypt() Then) ถ้าตรงกันจะขึ้น MsgBox ว่า ลงทะเบียนแล้ว ถ้าไม่ตรงจะสร้างไฟล์ lic ขึ้นมาใหม่ครับ
2.au3
- Code:
#include <String.au3>
$file = FileOpenDialog("Choose lic file", @DesktopDir, "Lic File (lic)")
If @error Then Exit
$read = FileRead($file, FileGetSize($file))
$key = _StringEncrypt(1, $read, "pass")
FileDelete($file)
FileWrite($file, $key)
ไฟล์นี้จะเป็นตัวเข้ารหัสไฟล์ lic ของเราครับ
* Remark *
หลักๆจะอยู่ที่ _StringEncrypt() ครับ เป็นคำสั่งเข้ารหัสข้อความ
_StringEncrypt(1, "text", "abc", 5)
1 คือเข้ารหัส 0 คือถอดรหัส (เงื่อนไขที่เหลือต้องตรงกันด้วยพวก Password กับ Level)
_StringEncrypt(1, "text", "abc", 5)
อันนี้คือข้อความที่เข้ารหัส
_StringEncrypt(1, "text", "abc", 5)
อันนี้รหัสผ่านที่เข้ารหัสแล้วแต่เราจะตั้งเลย แต่เวลาจะถอดต้องตรงกันด้วย
_StringEncrypt(1, "text", "abc", 5)
อันนี้จะใส่หรือไม่ใส่ก็ได้ครับ เป็นเวเวลในการเข้า/ถอดรหัส (1-10) ยิ่งตั้งค่าสูงความยาวของข้อความที่ถูกเข้ารหัสจะยิ่งมากและเวลาในการทำงานก็จะมากตามไปด้วยครับ
sadd15- สมาชิกทั่วไป
-
จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/11/2011
อายุ : 37
ขอบคุณครับ ยังไงช่วยตอบเพิ่มใน อินบอกซ์ ให้ด้วยน่ะครับคุณ Arm
kensurakit- มือใหม่เพิ่งสมัคร
-
จำนวนข้อความ : 5
ความนิยม : 0
เข้าร่วมเมื่อ : 12/10/2012
ผมอยากจะขอ สคิป ที่ปุ่มเริ่ม เกิดถ้าไม่ล็อคอินจะไม่มีปุ่ม เริ่ม ใช้วิธีเช็คว่าล็อคอินแล้วหรือไม่ เกิดถ้าใช่ ก็จะ ขึ้น ปุ่มเริ่ม อ่ะครับ อยากจะเอาไปศึกษา
|
|