ยินดีต้อนรับแขกผู้มาเยือน กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?
 
Please Login!

ผู้เขียน หัวข้อ: การใช้งานโปรแกรม AutoHotKey เบื้องต้น  (อ่าน 22988 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #20 เมื่อ: 25 สิงหาคม 10, 18:56:44 »
รวม SourceCode .ahk
----------------------------------------
UserName & Password Protection
โค๊ด: [Select]
Loop
{
InputBox, OutputVar, Password Confirm, Enter:Password, Hide, 250, 120, 400, 330
If ErrorLevel
{
ExitApp
}
If OutputVar =
{
MsgBox, 0, Info, กรุณาใส่รหัส
Continue
}
If OutputVar <> xxx  ;<--- your password = xxx ---<<
{
MsgBox, 48, Info, รหัสผิด ลองใหม่.
}
Else
{
MsgBox, 64, Info, Your Password = %OutputVar%
Break
}
}
-----------------------------------------------------------------
ใครที่ชอบติดตั้งโปรแกรมต่างๆ แบบอัตโนมัติ เอาโค๊ดนี้ไปใช้ Auto Installer Packer (โค๊ดนี้สั่งติดตั้ง AutoIT v3)
โค๊ด: [Select]
MsgBox, 36, AutoIT v3 AutoSetup, Do you wanted to Install?
IfMsgBox, Yes
{
ToolTip, Installing...please wait!
RunWait, autoit-v3-setup.exe /S
ToolTip
MsgBox, 64, , Installation Complete.
}
Else
ExitApp
------------------------------------------------------------------
NetSim Modem Connections
โค๊ด: [Select]
#NoTrayIcon
Gui, Color, Aqua 
Gui, Add, Picture, x115 y1 w100 h30 , huawei_e220_2.jpg
Gui, Add, Button, x0 y0 w115 h30 , Connect_DisConnect
Gui, Add, Button, x201 y0 w115 h30 , Firefox
Gui, Add, Text, x130 y18 w50 h30 +Center, AIS
Gui, Show, x702 y w316 h30, NetSim Modem Connections
Return

ButtonConnect_DisConnect:
Run, C:\Documents and Settings\All Users\Start Menu\Programs\Accessories\Communications\Network Connections
WinActivate, , Connect
WinWaitActive, , Connect, 2
Send, {Space}
Sleep, 1000
Send, {Enter}
Sleep, 1000
Send, {Right}
Sleep, 1000
Send, {Enter}
Sleep, 1000
WinActivate, Network Connections
WinWaitActive, Network Connections, , 2
WinClose, Network Connections
Return

ButtonFirefox:
IfNotExist, C:\Program Files\Mozilla Firefox\firefox.exe
{
MsgBox, 48, Error!, ท่านยังไม่ได้ติดตั้งโปรแกรม Firefox.
Return
}
Else
{
Run, www.google.co.th
Return
}

Esc::
ExitApp
Return

GuiClose:
ExitApp
+0 โดย  
« แก้ไขครั้งสุดท้าย: 27 สิงหาคม 10, 22:43:10 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #21 เมื่อ: 27 สิงหาคม 10, 14:23:45 »
Hotkey.ahk
-----------------------------------------------------------------------
โค๊ด: [Select]
;<-------------------------------------- Start Hotkey -----------------------------------------<<
#C::
Run, C:\Documents and Settings\All Users\Start Menu\Programs\Accessories\Communications\Network Connections
WinActivate, , Connect
WinWaitActive, , Connect, 2
Send, {Space}
Sleep, 1000
Send, {Enter}
Sleep, 1000
Send, {Right}
Sleep, 1000
Send, {Enter}
Sleep, 1000
WinActivate, Network Connections
WinWaitActive, Network Connections, , 2
WinClose, Network Connections
Return

#G::
IfNotExist, C:\Program Files\Mozilla Firefox\firefox.exe
{
MsgBox, 48, Error!, ท่านยังไม่ได้ติดตั้งโปรแกรม Firefox.
Return
}
Else
{
Run, http://www.google.co.th
Return
}

#Z::
Run, http://www.zone-it.com/162185
Return

#Q::
WinActivate, Mozilla Firefox
WinClose, ahk_class MozillaUIWindowClass
Return

#D::
IfNotExist, C:\Program Files\Mozilla Firefox\firefox.exe
{
MsgBox, 48, Error!, ท่านยังไม่ได้ติดตั้งโปรแกรม Firefox.
Return
}
Else
{
Run, http://www.zone-it.com/download
Return
}

Esc::
ExitApp
;<-------------------------------------- Design by: sak2005 -----------------------------------------<<
-----------------------------------------------------------------------
รายละเอียด:
ให้รันคำสั่งนี้ไว้ แล้วท่านจะได้รับความสดวก ดังนี้
ถ้ากดปุ่ม windows พร้อมกับปุ่ม C   หมายถึง  สั่ง Connect และ DisConnect Mobile Net Modem
ถ้ากดปุ่ม windows พร้อมกับปุ่ม G   หมายถึง  สั่งรัน Firefox Browser เปิดเว็บ Google.co.th
ถ้ากดปุ่ม windows พร้อมกับปุ่ม Z   หมายถึง  สั่งรัน Firefox Browser เปิดเว็บ zone-it.com ..ไปที่กระทู้นี้
ถ้ากดปุ่ม windows พร้อมกับปุ่ม Q   หมายถึง  สั่งปิด Browser Firefox
ถ้ากดปุ่ม windows พร้อมกับปุ่ม D   หมายถึง  ไปที่ห้อง Download ณ.โซนไอที
ถ้ากดปุ่ม Esc                          หมายถึง  สั่งยกเลิกการใช้งาน Hotkey
----------------------------------------------------------------------------------
Tip:
ถ้าท่านต้องการใช้งานโค๊ดนี้ทุกครั้งที่เปิดเครื่องขึ้นมา ..ให้ท่านนำไฟล์.ahk ที่แปลงเป็นไฟล์.exeแล้ว
นำไปเก็บไว้ที่โฟลเดอร์ Startup ตามที่อยู่นี้เลยครับ..
โค๊ด: [Select]
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
+0 โดย  
« แก้ไขครั้งสุดท้าย: 27 สิงหาคม 10, 16:21:07 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #22 เมื่อ: 27 สิงหาคม 10, 16:32:06 »
Registry.ahk
คำเตือน: การเข้าไปแก้ไขข้อมูลในรีจิสทรีย์ มีความเสี่ยง! ถ้าทำโดยขาดความรู้ความเข้าใจ อาจทำให้วินโดว์เสียหายได้
คำสั่งของ AHK ที่ใช้จัดการข้อมูลในรีจิสทรีย์ มีดังนี้
1.Loop (registry)  รูปแบบ: Loop, RootKey [, Key, IncludeSubkeys?, Recurse?]
2.RegRead          รูปแบบ: RegRead, OutputVar, RootKey, SubKey [, ValueName]
3.RegWrite         รูปแบบ: RegWrite, ValueType, RootKey, SubKey [, ValueName, Value]
4.RegDelete       รูปแบบ: RegDelete, RootKey, SubKey [, ValueName]
------------------------------------------------------------------------------------------------------
ก่อนที่จะมาเล่นกับ Registry ซึ่งเป็นระบบฐานข้อมูลของ Windows ..ควรศึกษาทำความเข้าเบื้องต้นกันก่อน จะได้มีข้อผิดพลาดน้อย
ความรู้ต่อไปนี้เป็นเป็นแค่ Basic Registry เท่านั้น ยังมีความรู้ขั้น Advance อีกมากมาย ..ไว้รอจบบทความนี้แล้ว จะนำมาลงให้.
------------------------------------------------------------------------------------------------------
อันนี้ไม่ใช่ Hotkey ที่เราสร้างขึ้นนะครับ แต่เป็นปุ่มร้อนๆของ Windows เองเลย ให้ท่านกดปุ่ม Windows พร้อมกับปุ่ม R (windows+r) ..พิมพ์คำว่า regedit ลงไปในช่อง กด Enter ..หน้าต่าง Registry Editor จะเปิดขึ้นมา หรือรันด้วยโค๊ดนี้
โค๊ด: [Select]
Run, %A_WinDir%\regedit.exeRegistry ใน WindowsXP จะประกอบไปด้วยคีย์หลัก หรือ HKEY จำนวน5คีย์ และที่เราเข้าไปปรับแต่งได้ มีอยู่2-3คีย์เท่านั้น
รูปแบบ: Registry มีดังนี้ คีย์หลักหรือ Hkey(Folder) , SubKey(SubFolder) , Value name , Value data
รายละะเอียด:
Hkey หมายถึง โฟลเดอร์หลักที่รวบรวมข้อมูลทั้งหมดไว้
Subkey หมายถึง โฟลเดอร์รอง หรือ ย่อยเป็นชั้นๆออกมาจากโฟลเดอร์หลัก
Value name หมายถึง ชื่อข้อมูลที่อยู่ใน Hkey และ Subkey
Value data หมายถึง ข้อมูลที่ใหลออกมา แบ่งออกเป็น2ชนิด คือ
1.ข้อมูลชนิด 'รายละเอียด'
2.ข้อมูลชนิด 'คำสั่ง'
-----------------------------------------------------------------
การอ่านข้อมูลRegistry รูปแบบ: RegRead, OutputVar, RootKey, SubKey [, ValueName]
รายละเอียด:
OutputVar หมายถึง ตัวแปรที่เป็นค่ารีเทิร์น หรือ Value data  เช่น. %OutputVar%
RootKey หมายถึง คีย์หลัก หรือ Hkey เช่น. HKEY_LOCAL_MACHINE หรือชื่อย่อว่า HKLM
SubKey หมายถึง โฟลเดอร์ย่อยของคีย์หลัก หรือ ซับโฟลเดอร์ เช่น. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
ValueName หมายถึง ชื่อข้อมูลในโฟลเดอร์หลักและโฟลเดอร์ย่อย

ตัวอย่าง:System Infomation Report (ชนิดข้อมูล 'รายละเอียด')
โค๊ด: [Select]
RegRead, WindowsName, HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ProductName
RegRead, VersionName, HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion, CSDVersion
MsgBox, 64, System Info, OperateSystem: %WindowsName% %VersionName%
---------------------------------------------------------------------------------------
การเขียนข้อมูล Registry รูปแบบ: RegWrite, ValueType, RootKey, SubKey [, ValueName, Value]
รายละเอียด:
ValueType หมายถึง สกุลของข้อมูลคำสั่งหรือรายละเอียด เช่น. REG , DWORD , และ BINARY
Value หมายถึง ข้อมูลคำสั่งหรือรายละเอียดที่เขียนลงไปในรีจิสทรีย์
ตัวอย่าง:
โค๊ด: [Select]
;----------------------------------start script-----------------------------------------------------
MsgBox, 36, ยืนยันการเขียนข้อมูลลงในรีจิสทรีย์, ท่านต้องทดสอบเขียนข้อมูลรีจิสทรีย์ใช่หรือไม่?
IfMsgBox Yes
{
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, UseName, sak2005
RegRead, VarName, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, UseName
If Not ErrorLevel
{
MsgBox, 64, RegWrite_Sample, Write registry data complete..UseName = %VarName%
}
Else
{
MsgBox, 48, Error!, Cannot write registry.
Return
}
;.....................................delete confirm..............................................
MsgBox, 36, Delete_Sample data Confirm, ท่านต้องการลบข้อมูลที่ทดสอบเขียน ใช่หรือไม่?
IfMsgBox Yes
{
RegDelete, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, UseName
if ErrorLevel
{
MsgBox, 48, Error!, Cannot delete_data.
Return
}
Else
MsgBox, 64, Info, Delete data completed.
}
}
;-----------------------------------end script------------------------------------------------------
+0 โดย  
« แก้ไขครั้งสุดท้าย: 29 สิงหาคม 10, 19:11:53 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #23 เมื่อ: 29 สิงหาคม 10, 11:30:59 »
Project Code โปรแกรม Auto Installer Manager
โปรแกรมนี้ผมใช้เวลาออกแบบและเขียน.. 12 ช.ม. จึงสำเร็จ ..ท่านสามารถนำไปพัฒนาเขียนต่อยอดได้
ถ้าท่านต้องการติดตั้งอัตโนมัติ ก็หาค่า Silent Switch Parameter ของโปรแกรมนั้นๆมาใส่
โค๊ด: [Select]
#NoTrayIcon
Gui, Add, Edit, x16 y31 w360 h20 vProgramSetup
Gui, Add, Button, x385 y31 w70 h20 , Browse
Gui, Add, Button, x100 y71 w70 h30 , Install
Gui, Add, Button, x290 y71 w70 h30 , Cancel
Gui, Show, w470 h115, Auto Installer Manager v1.0
Return

ButtonBrowse:
FileSelectFile, FileTable, 3,, Select a Program to Install, Program Setup (*.exe;*.msi)
GuiControl,, ProgramSetup, %FileTable%
Return

ButtonInstall:
Gui, Submit
ToolTip, กำลังติดตั้ง..โปรดรอสักครู่, x330
RunWait, %ProgramSetup%
If FileTable =
{
MsgBox, 0, Info, กรุณาเลือกโปรแกรมที่จะติดตั้ง.
Return
}
else
{
   ToolTip
   Sleep, 500
    MsgBox, 64, Info, Installation Complete.
ExitApp
Return
}

ButtonCancel:
GuiClose:
ExitApp
คำอธิบาย: เกี่ยวกับคำสั่ง Control Edit
vProgramSetup  เป็น Value ตัวแปรของ GuiEdit ทำหน้าที่ รับ-ส่งข้อมูล
ProgramSetup เป็นตัวแปรดำเนินการควบคุมการนำเข้าข้อมูลมาไว้ใน Edit
%ProgramSetup% เป็นตัวแปรดำเนินการควบคุมการส่งข้อมูลออกมาจาก Edit
โดยมีคำสั่ง Submit เป็นตัวประสานงาน ..ถ้าไม่ใส่คำสั่งนี้ไว้ จะไม่สามารถส่งข้อมูลได้.
FileTable เป็นค่ารีเทิร์นของคำสั่ง FileSelectFile และส่งออกข้อมูลที่เลือก

+0 โดย  
« แก้ไขครั้งสุดท้าย: 29 สิงหาคม 10, 13:46:10 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #24 เมื่อ: 29 สิงหาคม 10, 13:50:45 »
ความรู้เกียวกับคำสั่ง: อ่่าน-เขียน Text File (read-Write Console)
คำสั่ง: FileAppend รูปแบบ: FileAppend [, Text, Filename]
เป็นคำสั่งที่ใช้เขียนหรือโคลน ไฟล์ที่เป็นข้อความ(*.txt)ทั้งฉบับ
ตัวอย่าง:
โค๊ด: [Select]
FileAppend, Hello World!, %A_Desktop%\MyFile.txtรายละเอียด: เขียนข้อความว่า  Hello World! เสร็จแล้ว Save เป็นชื่อ MyFile.txt วางไว้ที่หน้าจอ
---------------------------------------------------------------------------
FileRead รูปแบบ:FileRead, OutputVar, Filename
อันนี้ใช้โคลนข้อความทั้งหมดจากฉบับหนึ่ง ขึ้นมาเป็นอีกฉบับหนึ้ง ตั้งชื่อว่า NewMyFile.txt
โค๊ด: [Select]
FileRead, OutputVer, %A_Desktop%\MyFile.txt
FileAppend, %OutputVer%, %A_Desktop%\NewMyFile.txt
ความหมายของคำสั่ง:
OutputVer เป็นค่ารีเทิร์น หรือข้อความที่ถูกอ่านจาก MyFile.txt และถูกส่งออกมาพร้อมที่จะแสดงผลในคำสั่งถัดไป
%OutputVer% หมายถึง ค่ารีเทิร์นที่ถูกแปร นำมาใส่ไว้อีกคำสั่งหนึ่ง แ้ล้ว Save เป็น NewTextFile ฉบับใหม่ขึ้นมา.
-----------------------------------------------------------------------------------------
Tip
Run, %A_Desktop%\NewMyFile.txt หมายถึง คำสั่ง เปิด TextFile
WinClose, ahk_class Notepad หมายถึง  คำสั่ง ปิด TextFile
----------------------------------------------------------------------
คำสั่งส่งข้อความทั้งหมดใน TextFile ที่สร้า้งขึ้น หรือมีอยู่แล้ว ลงใน GUI Edit
โค๊ด: [Select]
IfExist, %A_Desktop%\MyFiles.txt
FileDelete, %A_Desktop%\MyFiles.txt
Gui, Add, Edit, w400 h200 vMyEdit, ต้องการส่งข้อความทั้งหมดใน MyFile.txt ลงใน GUI Edit คลิ๊กปุม SendText
Gui, Add, Button, x100 w100 h30, SendText 
Gui, Show, h250, Send Text to GUI Edit Sample
FileAppend, Hello World! by:sak2005, %A_Desktop%\MyFiles.txt
If ErrorLevel
MsgBox, 48, Error!, Cannot write text to MyFiles.txt.
Return

ButtonSendText:
FileRead, FileContents, %A_Desktop%\MyFiles.txt
If Not ErrorLevel
{
GuiControl,, MyEdit, ข้อความจากใน MyFiles.txt คือ ' %FileContents% '
}
Else
{
MsgBox, 48, Error!, Cannot write text to gui edit.
}
Return

GuiClose:
ExitApp
รายละเอียดของคำสั่งแต่ละคำสั่ง
IfExist, %A_Desktop%\MyFiles.txt
FileDelete, %A_Desktop%\MyFiles.txt
หมายถึง เป็นคำสั่งตรวจสอบว่าได้สร้าง MyFiles.txt ไว้หรือไม่?
ถ้าสร้างไว้ ให้ลบทิ้งไปก่อน (ป้องกันการส่งข้อความซ้ำซ้อน ลงใน gui edit) แล้วสร้า้งขึ้นมาใหม่
...
FileAppend, Hello World! by:sak2005, %A_Desktop%\MyFiles.txt
หมายถึง คำสั่งเขียนข้อความและสร้า้ง TextFile ขึ้นมาใหม่
...
FileRead, FileContents, %A_Desktop%\MyFiles.txt หมายถึง อ่านและส่งออกข้อความใน
TextFile ที่สร้าง ยังคำสั่งถัดไป
...
GuiControl,, MyEdit, ข้อความจากใน MyFiles.txt คือ ' %FileContents% '
หมายถึง คำสั่งส่ง ข้อความทั้งหมดใน TextFile ลงใน GUI Edit
+0 โดย  
« แก้ไขครั้งสุดท้าย: 31 สิงหาคม 10, 16:57:02 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #25 เมื่อ: 01 กันยายน 10, 15:26:28 »
การเขียนโปรแกรมด้วย Forms Modules
เป็นการเขียนโปรแกรมในรูปแบบกลุ่มคำสั่ง หรือ โมดูล
รูปแบบการเขียนจะแตกต่างไปจากการเขียนแบบปกติเล็กน้อย

รายละเอียดเพิ่มเติม:http://www.autohotkey.net/~majkinetor/Forms/_doc/files/inc/_Forms-ahk.html

Download:Forms Script Include.ahk & Sample. Click here
---------------------------------------------------------------------------------
ตัวอย่าง:การเขียนโปรแกรมและรายละเอียดของคำสั่ง Forms Modules
ผมจะเขียนเปรียบเทียบคำสั่งสร้างฟอร์มแบบปกติกับแบบโมดูล เพืี่อให้เห็นความแตกต่างของคำสั่งที่เขียน
ซึ่งเมื่อสั่งให้ทั้งสองแบบแสดงผลออกมาแล้ว ก็แสดงผลได้เหมือนกัน แตกต่างกันที่การใส่ลูกเล่นให้กับคำสั่งเท่านั้น
----------------------------------------------
แบบปกติ:
โค๊ด: [Select]
Gui, Show, x300 w300 h200, Normal GUI Sample
Return

GuiClose:
ExitApp
----------------------------------------------
แบบโมดูล
โค๊ด: [Select]
w := 300,  h := 200
Gui, show, w%w% h%h%, Module GUI Sample
Return

GuiClose:
ExitApp
+0 โดย  
« แก้ไขครั้งสุดท้าย: 01 กันยายน 10, 23:09:37 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #26 เมื่อ: 02 กันยายน 10, 23:05:21 »
Forms Script Include
อันนี้เป็นการเขียนคำสั่งที่ยากขึ้น ผมจะพยายามอธิบายความหมายของแต่ละคำสั่งให้ท่านเข้าใจ จะได้เขียนกันได้
จริงๆแล้วไม่มีอะไร เป็นลูกเล่นของคำสั่งที่จำเป็นต้องที่สร้างขึ้น เพื่อดึงความสามารถของคำสั่งที่เขียนออกมา
ซึ่งความสามารถที่ว่านี้ ถ้าเขียนด้วยคำสั่งแบบปกติแล้ว จะไม่สามารถดึงเอาความสามารถที่ว่านี้ออกมาได้
อย่าเพิ่งท้อนะครับ ท่านต้องถือคติที่ว่า.. 'ผมเขียนได้ ท่านก็ต้องเขียนได้' ไม่มีอะไรยากเกินความพยายาม
ดาวน์โหลดก็ลงไว้ให้แล้วด้านบน นำมาใช้ให้เป็นประโยชน์
--------------------------------------------------------------------------------
ตัวอย่าง:
โค๊ด: [Select]
_("mm!")
    CMenu =
(LTrim
[Edit]
edit item 1
edit item 2
edit item 3
x=[sub]

[sub]
meh=123
blah=456

[Picture]
pic item1
pic item2
)

hForm1 := Form_New("e3 w200 h500")
Form_Add(hForm1, "Edit", "ESC to close script. F2 to resize. Drag picture to move. Right click controls for the context menu.", "-vscroll w200 r3 0x8000","Align T", "Attach w", "CMenu Edit, Menu_Controls")
Form_Add(hForm1, "Picture", "res\test.bmp", "gPictureDrag", "Cursor size", "CMenu Picture, Menu_Controls")

hFont := Font("", "s12 italic, Courier New")
sz := Font_DrawText("Click here to go to Google", "", hFont, "calcrect ahksize")
pos := Form_GetNextPos(hForm1, sz)
Form_Add(hForm1, "HLink", "Click 'here':www.google.com to go to Google", pos " " sz, "Font " hFont, "CMenu Sub, Menu_Controls")
pos := Form_GetNextPos(hForm1, "x+50 yp")
Form_Add(hForm1, "HLink", "Click 'here':www.google.com to go to Google", pos " " sz, "Font " hFont, "CMenu Sub, Menu_Controls")

Form_AutoSize( hForm1, 10.5)
Form_Show(hForm1, "xCenter yCenter")
return

Form1_ContextMenu:
m("Form1 context menu")
return

Menu_Controls:
m("Menu: " A_ThisMenu, "Item: " A_ThisMenuItem, "Data: " ShowMenu_Data(Menu_Controls))
return

PictureDrag:
PostMessage, 0xA1, 2,,, A
Return

F1::
WinShow, ahk_id %hForm1%
WinActivate, ahk_id %hForm1%
return

F2::
WinSet, Style, ^0x40000, ahk_id %hForm1%
Form_AutoSize(hForm1)
Win_Redraw()
return

Form1_Close:
ExitApp
return

#include inc
#include _Forms.ahk
จะเห็นได้ว่ารูปแบบคำสั่งที่เขียนเปลี่ยนแปลงไป แถมต้องอ้างไฟล์คำสั่งอื่นซึ่งเรียกว่าไฟล์ include หรือไฟล์ Library Modulde ลงไปด้วย
เพราะต้องทำงานร่วมกันกับคำสั่งที่เขียน ถ้าไม่ใส่ หรือ ใส่ไว้ไม่ถูกต้อง โปรแกรมที่เขียนจะไม่แสดงผลหรือเกิด Error!
ขนาดหรือสัดส่วนของฟอร์ม จะเล็กหรือใหญ่ จะถูกกำหนดด้วยขนาดของ Object ที่วางอยู่บน Form ด้วยคำสั่ง AutoSize
--------------------------------------------------------------------------------------------
รายละเอียดของกลุ่มคำสั่ง:
_("mm!")
    CMenu =
   (LTrim
      [Edit]
      edit item 1
      edit item 2
      edit item 3
      x=
      
      
      meh=123
      blah=456

      [Picture]
      pic item1
      pic item2
   )

เป็นคำสั่งสร้าง เมนูคลิ๊กขวา บน Gui Edit
-------------------------------------------------------
hForm1   :=   Form_New("e3 w200 h500")   
   Form_Add(hForm1, "Edit", "ESC to close script. F2 to resize. Drag picture to move. Right click controls for the context menu.", "-vscroll w200 r3 0x8000","Align T", "Attach w", "CMenu Edit, Menu_Controls")
   Form_Add(hForm1, "Picture", "res\test.bmp", "gPictureDrag", "Cursor size", "CMenu Picture, Menu_Controls")

   hFont := Font("", "s12 italic, Courier New")
   sz := Font_DrawText("Click here to go to Google", "", hFont, "calcrect ahksize")
   pos := Form_GetNextPos(hForm1, sz)
   Form_Add(hForm1, "HLink", "Click 'here':www.google.com to go to Google", pos " " sz, "Font " hFont, "CMenu Sub, Menu_Controls")
   pos := Form_GetNextPos(hForm1, "x+50 yp")
   Form_Add(hForm1, "HLink", "Click 'here':www.google.com to go to Google", pos " " sz, "Font " hFont, "CMenu Sub, Menu_Controls")

   Form_AutoSize( hForm1, 10.5)
   Form_Show(hForm1, "xCenter yCenter")

เป็นคำสั่งสร้า้ง Form และ Object Control ขึ้นมาพร้อมๆกัน ขาดอย่างใดอย่างหนึ่งไม่ได้
สมมุติว่าลืมใส่ Object ..จะทำให้ Form หดเหลือนิดเดียว
ส่วนคำสั่งที่เหลือก็เป็น Hotkey และไฟล์ include


--------------------------------------------------------------------------
อันนี้เป็นการเขียนคำสั่งอีกรูปแบบหนึ่ง
โค๊ด: [Select]
#SingleInstance force

   Gui, +LastFound
   hGui := WinExist() +0

   HLink_Add(hGui, 10,  10,  250, 20, "OnLink", "'Click here':www.Google.com ..go to Google" )
   HLink_Add(hGui, 10,  40,  250, 20, "OnLink", "'คลิ๊กที่นี่':www.zone-it.com ..go to ZoneIT")
   HLink_Add(hGui, 10,  170, 100, 20, "OnLink", "'About HLink':About")
   HLink_Add(hGui, 110, 170, 100, 20, "OnLink", "'Forum':http://www.autohotkey.com/forum/topic19508.html")
   Gui, Show, w300 h200, Hyper Links Sample
return

OnLink(hCtrl, Text, Link){
    if Link = About
        msgbox Hlink control`nby majkinetor
    else return 1

}

#include inc
#include _Forms.ahk
+0 โดย  
« แก้ไขครั้งสุดท้าย: 03 กันยายน 10, 02:34:57 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #27 เมื่อ: 30 กันยายน 10, 12:55:24 »
Over Button Change Cursor หรือ Set Cursor ปกติแล้วใน Visual Form Design จะมีคำสั่งสำหรับเซ็ตเคอร์เซอร์ไว้ให้เลย
แต่ใน AutoHotkey ไม่มี ..เราต้องสร้างขึ้นมาเอง โดยดึงเอาความสามารถของ Windows ออกมาใช้ ดังตัวอย่างคำสั่งด้านล่าง
โค๊ด: [Select]
Gui, Add, Button, x50 y25 w90 h20  vGui1MyButton, Google
Gui1MyButton_Tooltip = Link to Google Website
Gui1MyButton_MouseCursor = %A_WinDir%\Cursors\harrow.cur

Gui, Add, Button, x210 y25 w90 h20  vGui2MyButton, Zone-it
Gui2MyButton_Tooltip = Link to Zone-it Website
Gui2MyButton_MouseCursor = %A_WinDir%\Cursors\harrow.cur

Gui, Add, Text, x120 y75 w100 h20, [Design by:Sak2005]
GuiControl, Disable, [Design by:Sak2005]

Gui, Show, w350 h100, Over Button Change Cursor Sample
OnMessage(0x200, "GuiHoverControl")
Return

ButtonGoogle:
Run, http://www.google.co.th
Return

ButtonZone-it:
Run, http://www.Zone-it.com
Return

GuiEscape:
GuiClose:
ExitApp

; /////////////////////Start Set Cursor Function ///////////////////////
GuiHoverControl()
{
  static CurrControl, PrevControl, _Tooltip, hCurs
  CurrControl := A_GuiControl
  If (CurrControl <> PrevControl and not InStr(CurrControl, " "))
{
  ToolTip  ; Turn off any previous tooltip.
 SetTimer, GuiDisplayToolTip, 1000
 PrevControl := CurrControl
 DllCall("DestroyCursor","Uint",hCurs)
 hCurs =
}
 If (%CurrControl%_MouseCursor)
{
 If ((SubStr(%CurrControl%_MouseCursor, -3, 4)) = ".cur" or (SubStr(%CurrControl%_MouseCursor, -3, 4)) = ".ani")
{
 If hCurs =
{
 IfExist, % %CurrControl%_MouseCursor
 hCurs:=DllCall("LoadCursorFromFile","Str",%CurrControl%_MouseCursor)
}
}
 Else
{
 If hCurs =
 hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",%CurrControl%_MouseCursor,"UInt")
}
 If hCurs <>
 DllCall("SetCursor","UInt",hCurs)
}
 return
; /////////////////////End Set Cursor Function ///////////////////////
 
 GuiDisplayToolTip:
  SetTimer, GuiDisplayToolTip, Off
  ToolTip % %CurrControl%_Tooltip
  SetTimer, GuiRemoveToolTip, 3000
  return
 GuiRemoveToolTip:
  SetTimer, GuiRemoveToolTip, Off
  ToolTip
  return
}
รายละเอียด:
GuiHoverControl() หมายถึง กลุ่มคำสั่งดึงความสามารถ Windows ในการ Set Cursor
%A_WinDir%\Cursors\harrow.cur หมายถึง อ้างและนำไฟล์สกุล *.cur ของวินโดว์ออกมาใช้ ในกรณีย์นี้เป็นเคอร์เซอร์รูปมือ

+0 โดย  
« แก้ไขครั้งสุดท้าย: 30 กันยายน 10, 13:17:37 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ nongpaoza

  • นักเรียนประถม

  • 26
  • Coolfirms

  • โพสต์: 28
  • zula: 11

  • **

  • OS: WindowsBrowser: Opera

  • ล็อคอินล่าสุด
    23 พฤษภาคม 13, 17:06:24
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #28 เมื่อ: 10 กุมภาพันธ์ 11, 11:49:29 »
โทษนะครับ ติดพาสเวิร์ด อ่าพี่ พาสอะไรหรอครับ
+0 โดย  

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #29 เมื่อ: 14 กุมภาพันธ์ 11, 15:25:11 »
การใช้งาน AutoHotkey Form Design เบื้องต้น
การสร้างโปรแกรมอะไรก็แล้วแต่ ถ้ามัวแต่สร้าง Form ด้วยการเขียนสคริ๊ปคำสั่ง
คงไม่ทันกินแน่ ถ้าจะสร้างโปรแกรมให้เสร็จ ด้วยเวลาอันรวดเร็ว ก็ต้องใช้โปรแกรมเสริมเข้ามาช่วย
ซึ่ง AutoHotkey ก็เตรียมไว้ให้ใช้หลายโปรแกรม แต่จะมีโปรแกรมอะไรบ้างนั้น เดี๋ยวจะแจกแจงให้ภายหลัง
บางท่านสามารถเขียนและออกแบบโปรแกรมได้  แต่สุดท้าย..กองไว้เฉยๆ เพราะไม่สามารถเขียนคำสั่งเพื่อควบคุมโปรแกรมนั้นได้
อันนี้แหละเป็นจุดที่เราต้องช่วยกันเสริมทักษะนักเขียนโปรแกรมรุ่นใหม่ๆให้มีพัฒนาการ สามารถสร้างโปรแกรมขึ้นมาใช้งานได้สำเร็จ
ขอให้ท่านที่สนใจ ติดตามบทความนี้ไปเรื่อยๆ จะได้ความรู้จากบทความนี้อีกเยอะเลย

Download: AutoHotkey Form Design Portable (กำลังอยู่ในระหว่างจัดทำ)



+0 โดย  
« แก้ไขครั้งสุดท้าย: 14 กุมภาพันธ์ 11, 15:44:46 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #30 เมื่อ: 14 กุมภาพันธ์ 11, 22:27:08 »
บางท่านบอกว่า.. เขียน AutoIt ง่ายกว่า AutoHoykey ..จริงๆแล้ว ยากพอๆกัน หรือ ง่ายไปคนละแบบ
สิ่งที่ท่านต้องสนใจศึกษาให้ถ่องแท้ เพื่อให้เกิดความเข้าใจ คือ รูปแบบของคำสั่งนั้นๆ (sinex) และ
คำสั่งที่ทำให้เกิดการเปลี่ยนแปลงต่อ Form Object (Event Control)
การเขียนโปรแกรมไม่มีสูตรสำเร็จ มันจะเปลี่ยนแปลงไปตามจินตนาการของผู้เขียน เมื่อไหร่ที่เราหยุดคิด
โปรแกรมที่เรากำลังเขียน ก็จะหยุดทำงานตามไปด้วย การศึกษาค้นคว้าทดลองด้วยตัวเองอยู่สม่ำเสมอ
จะทำให้ท่านเป็นโปรแกรมเมอร์ที่มีคุณภาพ ก้าวไปใกลตราบนานเท่านาน...

โดยทั่วไป คำสั่งควบคุม (Event Control) แบ่งการควบคุมออกเป็น3ระดับ ดังนี้
1.On Event Form
2.On Event Object
3.Over Event Form Object
--------------------------------------------------------------
On Event Form หมายถึง ควบคุมการทำงานโดยอาศัย Form ..ลองพิจารณาดูที่โค๊ด

โค๊ด: [Select]
Gui, Color, White
Gui, Add, Progress, x10 y10 w300 h20 cRed, 50 
Gui, Show, x350 y300 w320 h40, Sample
Return

อธิบาย:
Gui, Color, White หมายถึง กำหนดพื้นหลังของฟอร์มให้เป็นสีขาว
Gui, Add, Progress หมายถึง สร้างหรือติดตั้ง Progressbar ไว้บนฟอร์ม
x10 y10 w300 h20 หมายถึง กำหนดตำแหน่งที่ให้ progressbar ปรากฏ
                                   หรือ x y หรือ บน ล่าง และ ขนาดสัดส่วนของ progressbar
                                   หรือ w h หรือ กว้้าง ยาว
cRed หมายถึง กำหนดสีให้กระแส หรือ Value ของ Progressbar
50 หมายถึง กำหนดจำนวนกระแส หรือ Value Progress ..ต้องใส่เครื่องหมาย comma
    หรือตัวลูกน้ำคั่นแยกไว้จากคำสั่งอื่น ..ถ้าไม่ใส่ไว้ กระแส Progress จะไม่เกิด
Gui, Show หมายถึง คำสั่งที่ทำให้ Form หรือ หน้าต่างโปรแกรมปรากฏ
x350 y300 w320 h40 หมายถึง กำหนดตำแหน่งที่ตั้งและขนาดสัดส่วนของฟอร์ม
Sample หมายถึง ข้อความที่ปรากฏบน Title bar ด้านบนของหน้าต่างโปรแกรม
Return หมายถึง คำสั่ง ส่งค่ากลับ ..ถ้าไม่ใส่คำสั่งนี้ไว้ จะไม่สามารถทำให้หน้าต่างโปรแกรมคงอยู่ได้ (แว๊บเดียวก็หายไป)             

ข้อควรคิด: ผมจะไม่สามารถอธิบายเกี่ยวกับคำสั่งเหล่านี้ได้เลย ถ้าผมไม่ศึกษา-ค้นคว้า-ทดลอง อย่างจริงจัง                         
--------------------------------------------------------------------------------
On Event Object หมายถึง ควบคุมการทำงานโดยอาศัย Object หรือสิ่งต่างๆที่อยู่บนหน้าต่างโปรแกรม ..ลองพิจารณาดูที่โค๊ด

โค๊ด: [Select]
Gui, Color, White
Gui, Add, Progress, vMyProgress x10 y10 w300 h20 cRed
Gui, Add, Button, x130 y50 w50 h25, Start
Gui, Show, x350 y300 w320 h80, Sample
Return

ButtonStart:
Loop
   {
    GuiControl,, MyProgress, %A_index%
Sleep, 100
    If A_index = 50
   MsgBox, 64, Info, halp value current = 50, 2
If A_index = 100
   MsgBox, 64, Info, full value current = 100, 2
   }
Until A_index = 100
Return

GuiClose:
ExitApp
Return
----------------------------------------------------------------------------
Over Event Form Object หมายถึง คำสั่งที่เป็น Automatic อยู่เหนือการควบคุมใดๆ ..ลองพิจารณาจากคำสั่งด้านล่าง

โค๊ด: [Select]
Gui, -Caption
Gui, Color, White
Gui, Add, Progress, vMyProgress x10 y10 w300 h20 cRed
Gui, Show, x350 y300 w320 h40, Sample

Loop, 100
   {
    GuiControl,, MyProgress, %A_index%
Sleep, 100
    If A_index = 50
   MsgBox, 64, Info, halp value current = 50, 2
If A_index = 100
   MsgBox, 64, Info, full value current = 100, 2
   }
ExitApp
-----------------------------------------------------------------
Progressbar Percent Change Color Text

ท่านต้องติดตั้ง AutoHotkey_L เพิ่มเติม ..คำสั่ง Loop Until นี้ ถึงจะทำงานได้.

คำสั่งทีมีอยู่ใน AutoHotkey_L Click here


โค๊ด: [Select]
Gui, -Caption
Gui, Color, White
Gui, Add, Progress, vMyProgress x10 y10 w300 h25 cBlue
Gui, Add, text, vProgBarTxt cRed x150 y17 w50 h25 BackgroundTrans
Gui, show, w320 h45 Center, Sample
   
   Loop {
         GuiControl,, MyProgress, %A_Index%
         GuiControl,, ProgBarTxt, %A_Index%`%
     Sleep, 100
     If A_Index = 48
     GuiControl, +cWhite, ProgBarTxt
        }
   Until A_Index >= 100
         MsgBox, 64, Info, Completed., 2
WinHide, Sample
   ExitApp
+0 โดย  
« แก้ไขครั้งสุดท้าย: 25 สิงหาคม 11, 20:18:54 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #31 เมื่อ: 04 กันยายน 11, 15:11:38 »
รวมโค๊ดโปรแกรมเพื่อการศึกษา

ใครสงสัยหรืออยากรู้อะไร? เกี่ยวกับคำสั่ง AutoHotkey ขอให้โฟสท์ถามไว้นะครับ

การสมัครสมาชิก เพื่อเข้าใช้งานเว็บบอร์ด ไม่ใช่เรื่องที่เสียหาย ตรงกันข้าม กลับเป็นประโยชน์กับตัวท่านเอง

สิ่งที่ท่านสงสัยอยากรู้ บนอินเทอรฺเน็ต มักจะมีคำตอบที่หลากหลาย ชวนให้ท่านต้องค้นหาความจริง

มีสิ่งหนึ่งที่ท่านต้องพึงระวัง! ไม่ให้ตกเป็นเหยื่อ คือ การคบหาหรือติดต่อคนที่เราไม่รู้จัก (อยู่ที่ไหน? ลูกเต้าเหล่าใคร?)

จากบนอินเทอร์เน็ต สู่สังคมภายนอก อาจเป็นดาบสองคม หรือ คารมผสมยาพิษ เพราะมีทั้งคนดีและคนไม่ดี.

อุปนิสัยที่แทัจริง หรือ สันดานที่แท้จริงของคน จะปรากฏขึ้นก็ต่อเมื่อ คนผู้นั้น กำลังคิดจะทำดีหรือไม่ดี กับคนอีกคนหนึ่ง

และไม่อาจเดาหรือรู้ล่วงหน้าได้ การอยู่บนเส้นทางของตนเอง โดยปราศจากข้อผูกมัดใดๆจากบุคคลอื่น มักจะเป็นอิสระและปลอดภัย.

+0 โดย  
« แก้ไขครั้งสุดท้าย: 04 กันยายน 11, 15:44:53 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #32 เมื่อ: 04 กันยายน 11, 19:49:03 »
Mouse Get Pixel Color ..ใช้ Control Loop While

โค๊ด: [Select]
While, 1
{
MouseGetPos, MouseX, MouseY
PixelGetColor, Color, %MouseX%, %MouseY%
ToolTip, X=%MouseX%`nY=%MouseY%`nC=%Color%
Sleep, 10
}
return

Esc::
ExitApp
return

GuiClose:
ExitApp
==========================================================================
หรือใช้คำสั่ง SetTimer แทน Control Loop ก็ได้

โค๊ด: [Select]
#Persistent
SetTimer, timer, 10

timer:
MouseGetPos, MouseX, MouseY
PixelGetColor, Color, %MouseX%, %MouseY%
ToolTip, X=%MouseX%`nY=%MouseY%`nC=%Color%
return

Esc::
ExitApp
return

GuiClose:
ExitApp
==========================================================================
Desktop Wallpaper Changer

โค๊ด: [Select]
#NoEnv 
SendMode Input 
SetWorkingDir %A_ScriptDir%

Gui, Add, Edit, x10 y31 w100 h20 +Center vMyEdit +ReadOnly
Gui, Add, Picture, x205 y30 w90 h60 +Border vMyPicture
Gui, Add, Text, x25 y11 w70 h15 +Center, Picture name
Gui, Add, Text, x210 y11 w70 h15 +Center, View Picture
Gui, Add, Button, x115 y30 w70 h20 , Browse
Gui, Add, Button, x25 y65 w70 h25 , Change
GuiControl, Disable, Change
Gui, Add, Button, x140 y70 w40 h20 , Defult
Gui, Show, w300 h94, DWC
return

ButtonBrowse:
FileSelectFile, FileVar, 3, , Open a file, Image (*.bmp)
if FileVar 
SplitPath, FileVar, name
GuiControl,, MyEdit, %name%
GuiControl, Enable, Change
GuiControl,, Mypicture, %name%         
return

ButtonChange:
DllCall("SystemParametersInfo", UInt, 0x14, UInt, 0, Str, FileVar, UInt, 2)
if not Error
GuiControl,, MyEdit
GuiControl, Disable, Change
return

ButtonDefult:
DllCall("SystemParametersInfo", UInt, 0x14, UInt, 0, int, 0, UInt, 2)
return

GuiClose:
ExitApp








+0 โดย  
« แก้ไขครั้งสุดท้าย: 05 กันยายน 11, 20:42:58 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #33 เมื่อ: 05 กันยายน 11, 22:01:35 »
Run System Info with Dos. Use notepad.

โค๊ด: [Select]
Run, %comspec% /c SYSTEMINFO > info.txt,, Hide===========================================
Ping Info

โค๊ด: [Select]
RunWait, %ComSpec% /c Ping www.google.com > pingInfo.txt,, Hide
+0 โดย  
« แก้ไขครั้งสุดท้าย: 06 กันยายน 11, 01:04:36 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #34 เมื่อ: 06 กันยายน 11, 00:11:44 »
ตัวอย่างการเขียนคำสั่ง: Run หลายรูปแบบ

โค๊ด: [Select]
MsgBox, 64, Sample1, Use Verb
Run, Open Notepad.exe
WinWait, ahk_class Notepad
Sleep, 2000
WinClose, ahk_class Notepad

MsgBox, 64, Sample2, Use Defult DirPath (C:\Windows\Notepad.exe) or Marcro DirPath
Run, Notepad.exe, A_WinDir
Sleep, 2000
WinClose, ahk_class Notepad

MsgBox, 64, Sample3, Use Marcro DirOutputPath
Run, %A_WinDir%\Notepad.exe
Sleep, 2000
WinClose, ahk_class Notepad

MsgBox, 64, Sample4, Use ComSpec command.
Run, %ComSpec% /c Notepad.exe,, Hide
Sleep, 2000
WinClose, ahk_class Notepad
ExitApp


+1 โดย NusZz
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #35 เมื่อ: 06 กันยายน 11, 09:02:30 »
Registry Tweak

Disable/Enable Task Manager(All in One)

โค๊ด: [Select]
RegRead, OutputVar, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableTaskMgr
if OutputVar = 1
{
MsgBox, 36, Registry Tweak, Do you wanted Enable Task Manager?
    IfMsgBox, No
        return
    else
    RegWrite, REG_DWORD, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableTaskMgr, 0
    ExitApp
}
else
{
    MsgBox, 36, Registry Tweak, Do you wanted Disable Task Manager?
    IfMsgBox, No
        return
    else
        RegWrite, REG_DWORD, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableTaskMgr, 1
        ExitApp
}
======================================================================
Hide/Show RUN Dialog

โค๊ด: [Select]
RegRead, OutputVar, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, NoRun
if OutputVar = 1
{
MsgBox, 36, Registry Tweak, Do you wanted Show Run Dialog?
    IfMsgBox, No
        return
    else
    RegWrite, REG_DWORD, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, NoRun, 0
    MsgBox, 33, Show, Restart now?
    IfMsgBox, Cancel
        return
    else
        Shutdown, 2
}
else
{
    MsgBox, 36, Registry Tweak, Do you wanted Hide Run Dialog?
    IfMsgBox, No
        return
    else
        RegWrite, REG_DWORD, HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, NoRun, 1
        MsgBox, 33,, Restart now?
    IfMsgBox, Cancel
        return
    else
       Shutdown, 2
}
=================================================================
Disable/Enable Register Tools

โค๊ด: [Select]
TypeName := "REG_DWORD"
HKeyName := "HKCU"
SubKey := "Software\Microsoft\Windows\CurrentVersion\Policies\System"
ValueName := "DisableRegistryTools"
ValueDataEnable := 0
ValueDataDisable := 1
RegRead, OutputVar, %HKeyName%, %SubKey%, %ValueName%
if (OutputVar = ValueDataEnable){
MsgBox, 36, Registry Tweak, Do you wanted Disable RegEdit?
IfMsgBox, No
return
else
RegWrite, %TypeName%, %HKeyName%, %SubKey%, %ValueName%, %ValueDataDisable%
}
else
{
MsgBox, 36, Registry Tweak, Do you wanted Enable RegEdit?
IfMsgBox, No
return
else
RegWrite, %TypeName%, %HKeyName%, %SubKey%, %ValueName%, %ValueDataEnable%
}
ExitApp
=================================================================
หยุดการทำงานโปรแกรมต่างๆ เช่นเกมส์ของเด็กดื้อ เล่นไม่ยอมเลิก

ไปที่ช่อง RUN พิมพ์ gpedit.msc กด Enter

คลิ๊กที่โฟลเดอร์ Administrative Templates

ดับเบิ้ลคลิ๊กที่โฟลเดอร์ System

ดับเบิ้ลคลิ๊กที่ Don't run specified Windows applications

คลิ๊ก Enable

คลิ๊ก Show

คลิ๊ก Add ..ระบุชื่อ-สกุล ของโปรแกรม ลงไปในช่อง ..คลิ๊ก OK ..OK
+0 โดย  
« แก้ไขครั้งสุดท้าย: 07 กันยายน 11, 11:07:24 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #36 เมื่อ: 07 กันยายน 11, 02:03:58 »
Folder Security

โค๊ด: [Select]
IfNotExist, NewFolder
FileCreateDir, NewFolder
FileGetAttrib, OutputVar, NewFolder
if OutputVar = D
{
MsgBox, 36,, Do you wanted hide NewFolder now?
IfMsgBox, No
return
else
FileSetAttrib, +H, NewFolder
}
else
{
MsgBox, 36,, Do you wanted show NewFolder now?
IfMsgBox, No
return
else
FileSetAttrib, -H, NewFolder
}
ExitApp
+0 โดย  
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #37 เมื่อ: 07 กันยายน 11, 04:30:27 »
ComObject Mouse Get Pixel Color. Use AutoItX3.dll

โค๊ด: [Select]
oAhk := ComObjCreate("AutoItX3.Control")
while 1
{
posX := oAhk.MouseGetPosX()
posY := oAhk.MouseGetPosY()
PixelGetColor, iColor, posX, posY
ToolTip, X=%posX%`r`nY=%posY%`r`nC=%iColor%
oAhk.Sleep(10)
}


+0 โดย  
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..

ออฟไลน์ sak2005

  • เว็บดีไซน์เนอร์

  • 7962
  • Coolfirms

  • โพสต์: 1,965
  • zula: 3721.25

  • *
  • สมาชิกกิตติมศักดิ์

  • OS: WindowsBrowser: Firefox
  • ตำแหน่ง:ครูผู้ให้

  • ล็อคอินล่าสุด
    เมื่อวานนี้ เวลา 19:18
Re: การใช้งานโปรแกรม AutoHotKey เบื้องต้น
« ตอบกลับ #38 เมื่อ: 03 มิถุนายน 12, 19:55:12 »
ตัวอย่างการเขียนคำสั่ง: Loop Input

โค๊ด: [Select]
#NoEnv 
SendMode Input
SetWorkingDir %A_ScriptDir% 
while 1
{
    InputBox, OutputVar, Example, Enter: Yourname,, 200, 115
    If(ErrorLevel){
    break
    }
else if(OutputVar=""){
MsgBox, 0, Info, Press yourname in to the box
continue
    }
else{
MsgBox, 64, Info, Yourname is %OutputVar%
break
}
}
Loop
ExitApp

อธิบาย:

ถ้าคลิ๊กที่ปุ่ม Cancel ..คำสั่งจะทำงานในตำแหน่ง ErrorLevel เป็นการปิดหรือยกเลิกการทำงานของ InputBox

ถ้าคลิ๊กที่ปุ่ม OK แต่ไม่ได้พิมพ์ข้อความใดๆลงใน InputBox ..คำสั่งจะทำงานในตำแหน่ง continue

InputBox ยังถูก Loop ให้ต้องทำงานอยู่ จนกว่าจะพิมพ์ข้อความใดๆลงไป


+0 โดย  
« แก้ไขครั้งสุดท้าย: 03 มิถุนายน 12, 20:14:46 โดย sak2005 »
จำเป็นต้องใช้ FlashPlayer

คำคม: เมื่อเวลาเปลี่ยน.. ทุกอย่างเปลี่ยน..