จะเขียนสคริปตรวจจับการเปลี่ยนภาษาต้องทำไงคับ แบบถ้าเราเปลี่ยนเป็นพิมพ์ไทย โปรแกรมก็จะไปอีกฟังชั่น ถ้าเราเปลี่ยนเป็นพิมพ์อังกฤษ ก็จะไปอีกฟังชั่นอ่ะคับ
3 posters
เขียนสคริป ตรวจจับการเปลี่ยนภาษา
foolsopts- PSsix Member
จำนวนข้อความ : 29
ความนิยม : 17
เข้าร่วมเมื่อ : 24/08/2010
- Post n°1
เขียนสคริป ตรวจจับการเปลี่ยนภาษา
sirchet- PSsix Member High Class
จำนวนข้อความ : 96
ความนิยม : 1
เข้าร่วมเมื่อ : 21/07/2010
อายุ : 35
- Post n°2
Re: เขียนสคริป ตรวจจับการเปลี่ยนภาษา
ผมก็อยากรู้เหมือนกันครับ เคยเขียนให้ มันตรวจจับปุ่มเปลี่ยนภาษา ว่าถ้ากดครั้งนี้ให้เป็น ENG อีกครับให้เป็น THA แต่กำ ยังไม่ทันกดเลยแค่เปลี่ยนไปใช้อีกโปรแกรมมันก็เปลี่ยนให้อัตโนมัติแล้ว ปนกันมั่วไปหมด อิอิ รอคนตอบครับ
POS- PSsix
-
จำนวนข้อความ : 1152
ความนิยม : 326
เข้าร่วมเมื่อ : 19/07/2010
- Post n°3
Re: เขียนสคริป ตรวจจับการเปลี่ยนภาษา
ใช้มาโคร @KBLayout ในการตรวจครับ แต่ตัวมาโครจะดึงเอาเฉพาะสถานะปัจจุบันของแป้นพิมพ์ และมีปัญหากับ Windows 7 (ที่ทดสอบ ไม่สามารถตรวจแป้นพิมพ์ไทยได้) วิธีแก้ไขปัญหาทั้งสอง ก็เขียนเป็นฟังก์ชั่นให้มันทำงานในลูป และตรวจเฉพาะแป้นพิมพ์ภาษาอังกฤษ ถ้าเปลี่ยนเป็นภาษาอื่นก็ตีว่าเป็นไทยซะ
ตัวอย่างโค้ด
ตัวอย่างโค้ด
- Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 272, 129, 192, 124)
$Label1 = GUICtrlCreateLabel("แป้นพิมพ์ :: ", 200, 96, 62, 17)
$Edit1 = GUICtrlCreateEdit("", 16, 8, 233, 81)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
if CheckLayout() = 1 Then
GUICtrlSetData($Label1 ,"อังกฤษ")
Else
GUICtrlSetData($Label1 ,"ไทย")
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func CheckLayout()
Sleep(10)
If @KBLayout = 00000409 Or @KBLayout = 0409 Then Return 1
EndFunc
|
|