ฟีเจอร์หนึ่งที่สำคัญมากของลินุกซ์ คือ ความสามารถในการปรับแต่งปุ่มเปลี่ยนภาษาให้เป็นปุ่มอะไรก็ได้ รวมถึงปุ่ม Caps Lock (ปุ่มที่มักสร้างความสับสนเวลาพิมพ์รหัสผ่านต่างๆ เสมอ) และส่วนตัวผมเองแล้วจะมีคอมพิวเตอร์สองเครื่อง เครื่องหนึ่งเป็นวินโดวส์ และเครื่องหนึ่งเป็นลินุกซ์เพื่อเรียนรู้หลายระบบปฎิบัติการไปพร้อมๆ กัน และข้อขัดใจที่สุดของวินโดวส์คือมันบังคับให้เปลี่ยนภาษาคีย์บอร์ดด้วยปุ่ม Alt+Shift หรือปุ่ม grave accent (~) เท่านั้น ซึ่งทั้งสองตัวไม่ใช่ตัวเลือกที่ผมสะดวก
ทางออกที่ง่ายๆ ของการปรับให้ใช้ Caps Lock ได้อีกครั้งคือการใช้โปรแกรม Auto Hotkeys (ดู nuuneoi.com) แต่จากการใช้งานจริงพบว่ามีข้อจำกัดเช่นไม่สามารถใช้ในบางหน้าจอเช่นจอล็อกอินได้ รวมถึงมีปัญหากับบางหน้าเว็บอยู่เสมอๆ
ทางออกหนึ่งที่ผมคิดไว้ คือ หากเราสามารถสร้างคีย์บอร์ดที่ยิงสัญญาณปุ่ม Alt+Shift ได้เองทุกครั้งที่มีการเปิดไฟ Caps Lock ก็จะสามารถกำหนดปุ่มเปลี่ยนภาษาเป็น Caps Lock แทนได้ ที่จริงแล้วด้วยแนวคิดนี้เราสามารถเปลี่ยนปุ่ม Caps Lock เป็นปุ่มใดๆ แทนก็ได้
ฮาร์ดแวร์: Atmel AT90USB162
จากการค้นคว้าระยะเวลาหนึ่ง แนวคิดของเรื่องนี้ก็เป็นจริง โดยสิ่งที่ผมต้องการคือไมโครคอนโทรลเลอร์ที่ไม่มีอินพุตใดๆ แต่มีส่วนสื่อสาร USB ในตัว และพบว่าอุปกรณ์แนวนี้มีอยู่จำนวนมากในตลาด เพราะมันคือ PlayStation Jailbreak ที่ภายในเป็นชิป AT90USB162 ต่อกับพอร์ต USB เพื่อส่งคำสั่ง USB ที่เป็นบั๊กของเครื่อง PlayStation 3 ให้สามารถรันซอฟต์แวร์จากผู้ผลิตอื่นที่ไม่ใช่โซนี่ได้ ในกรณีของผม ผมสั่ง ps3ukey มาลองใช้งาน โดยที่ตัวเครื่องไม่มีเฟิร์มแวร์มาให้ (น่าจะเพื่อเลี่ยงปัญหาทางกฎหมายในหลายประเทศ)

ชิป AT90USB162 นั้นเป็นชิปที่น่าสนใจ ในตัวมันเองมี bootloader มาให้ในตัว ทำให้สามารถเขียนโปรแกรมลงไปใหม่ได้ผ่าน USB ทันที หากรีเซ็ตชิปโดยหากดึงสัญญาณขา HWB (Hardware Boot) เป็น 0 ขณะที่กำลังรีเซ็ต คอมพิวเตอร์จะมองเห็นเป็นอุปกรณ์ USB เฉพาะของทาง Atmel เองและสามารถลงไดร์เวอร์เพื่อลงเฟิร์มแวร์ใหม่ได้ทางโปรแกรม FLIP ของทาง Atmel หรือโปรแกรม dfu-programmer ที่เป็นโอเพนซอร์สในลินุกซ์หลายดิสโทร (โดยส่วนตัวผมว่าการลง dfu-programmer บนลินุกซ์ง่ายกว่ามาก)
ซอฟต์แวร์: LUFA
แม้ว่าตัวชิป AT90USB162 จะมีส่วนสื่อสารด้วย USB อยู่ในตัวก็ตาม แต่การเรียกฟังก์ชั่นการทำงานของฮาร์ดแวร์โดยตรงก็ยังเป็นเรื่องยาก และต้องเข้าใจพื้นฐานการทำงานของโปรโตคอล USB โดยไม่จำเป็น ในส่วนนี้มีโครงการโอเพนซอร์สที่ชื่อว่า LUFA (Lightweight USB Framework for AVRs) ที่ช่วยจัดการการทำงานในระดับล่างให้
ตัว LUFA เองนั้นมีฐานข้อมูลของชิป และบอร์ดพัฒนาต่างๆ จำนวนมาก หากเราพัฒนาแอพพลิเคชั่นบนชิปและบอร์ดที่ความสามารถใกล้เคียงกัน ก็มีความเป็นไปได้ว่าจะสามารถย้ายซอฟต์แวร์ไปรันบนแพลตฟอร์มอื่นๆ ได้โดยเปลี่ยนเพียงค่าคอนฟิคเท่านั้น
ตัว LUFA เฟรมเวิร์คสำหรับการพัฒนาอุปกรณ์ USB มาให้สองแบบ คือ ClassDriver และ LowLevel สำหรับการพัฒนาทั่วไปนั้นการใช้ ClassDriver จะเขียนโค้ดสั้นกว่าและเข้าใจง่ายกว่ามาก ในส่วนของโครงการเดโมนั้นมีการสร้างคีย์บอร์ดจากบอร์ดพัฒนามาให้เรียบร้อย ทำให้เราสามารถสร้างจอยสติ๊กที่ส่งค่าเป็นคีย์บอร์ด WASD ได้
ในลินุกซ์นั้นการคอมไพล์โครงการเหล่านี้ทำได้ง่ายๆ ด้วยการติดตั้งแพ็กเกจ gcc-avr และ avr-libc พร้อมกับแพ็กเกจ build-essential (สำหรับการ make) เสียก่อน จากนั้นก็สั่ง make ได้เลย
ดัดแปลง
โครงการเดโมของ LUFA สำหรับการเดโมคีย์บอร์ดนั้นจะใช้ชิป AT90USB1287 ที่อยู่บนบอร์ด USBKEY ของ Atmel เอง เริ่มต้นสิ่งที่ต้องแก้ คือ makefile ที่ชื่อชิป (ช่อง MCU) ต้องเปลี่ยนเป็น at90usb162 ส่วนบอร์ดนั้นเนื่องจากเราไม่ได้ใช้ความสามารถอื่น เช่น LED ก็ไม่จำเป็นต้องเปลี่ยน
ไฟล์ที่ต้องแก้ต่อมาคือ Keyboard.h ที่จะต้องคอมเมนต์หรือลบสามไฟล์ออก เพื่อให้คอมไพล์ผ่าน
{syntaxhighlighter brush:cpp} #include <LUFA/Drivers/USB/USB.h>
//#include <LUFA/Drivers/Board/Joystick.h>
//#include <LUFA/Drivers/Board/Buttons.h>
//#include <LUFA/Drivers/Board/LEDs.h>{/syntaxhighlighter}
จากนั้นกลับมาดูที่ไฟล์ Keyboard.c สิ่งแรกที่เราต้องทำคือการคอมเมนต์หรือลบฟังก์ชั่นที่เกี่ยวกับ LED, joystick และ button ออกทั้งหมดตามที่เราคอมเมนต์ไฟล์ header ทิ้งไป เช่น ฟังก์ชั่นที่เกี่ยวกับ LED
ในการทำงานจริงเราต้องการเพิ่มกระบวนการสองอย่าง ได้แก่ การตรวจสอบว่ามีการกด Caps Lock หรือไม่ผ่านทางสัญญาณไฟ Caps Lock สังเกตว่าเมื่อเรากด Caps Lock บนคีย์บอร์ดตัวหนึ่ง ไฟจะติดบนคีย์บอร์ดทุกตัว เพราะระบบปฎิบัติการจะยิงข้อความไปบอกให้คีย์บอร์ดทุกตัวเปิดไฟ เราจะอาศัยพฤติกรรมนี้ในการเปลี่ยนปุ่ม Caps Lock เป็นปุ่มเปลี่ยนภาษา ภายใต้เฟรมเวิร์ค ClassDriver นั้นกำหนดให้ฟังก์ชั่น CALLBACK_HID_Device_ProcessHIDReport เป็นฟังก์ชั่นรับคำสั่งจากเครื่องแม่ (USB Host)
{syntaxhighlighter brush:cpp}static bool isGotCapLockSignal = false;
static bool isCancelledCaplock = false;
void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
const uint8_t ReportID,
const uint8_t ReportType,
const void* ReportData,
const uint16_t ReportSize)
{
uint8_t LEDMask = LEDS_NO_LEDS;
uint8_t* LEDReport = (uint8_t*)ReportData;
if (*LEDReport & HID_KEYBOARD_LED_CAPSLOCK){
PORTD = 0xFF;
isGotCapLockSignal = true;
}else{
PORTD = 0x00;
}
}{/syntaxhighlighter}
เริ่มต้นจากการสร้างตัวแปรสองตัว เพื่อเก็บสถานะว่าเราได้รับคำสั่งให้เปิดไฟ Caps Lock หรือไม่ ถ้าได้รับก็จะส่งสัญญาณ Caps Lock กลับไป เพื่อล้างคำสั่งเดิมทิ้ง หลังจากล้างคำสั่งแล้วจึงส่งคำสั่งใหม่ตามที่เราต้องการ (ในกรณีนี้คือคำสั่งเปลี่ยนภาษา) สำหรับฟังก์ชั่นในการส่งสัญญาณการกดปุ่มบนคีย์บอร์ด ในเฟรมเวิร์ค ClassDriver จะใช้ชื่อฟังก์ชั่น CALLBACK_HID_Device_CreateHIDReport
{syntaxhighlighter brush:cpp}bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
uint8_t* const ReportID,
const uint8_t ReportType,
void* ReportData,
uint16_t* const ReportSize)
{
USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;
static uint8_t sendcount = 0;
uint8_t UsedKeyCodes = 0;
if(isGotCapLockSignal){
KeyboardReport->KeyCode[UsedKeyCodes++] = HID_KEYBOARD_SC_CAPS_LOCK;
isGotCapLockSignal = false;
isCancelledCaplock = true;
PORTD = 0xFF;
PORTB = 0xFF;
}else if(isCancelledCaplock){
KeyboardReport->Modifier = HID_KEYBOARD_MODIFIER_LEFTSHIFT | HID_KEYBOARD_MODIFIER_LEFTALT;
if(sendcount < 50){
PORTD = 0x00;
PORTB = 0xFF;
sendcount++;
}else{
isGotCapLockSignal = false;
isCancelledCaplock = false;
sendcount = 0;
}
}else{
PORTD = 0x00;
PORTB = 0x00;
}
*ReportSize = sizeof(USB_KeyboardReport_Data_t);
return true;
}{/syntaxhighlighter}
ฟังก์ชั่นนี้จะทำหน้าที่สองอย่างได้แก่ส่งสัญญาณ Caps Lock เมื่อได้รับสัญญาณให้เปิดไฟ ซึ่งหลังจากส่งสัญญาณกลับไป ก็จะได้รับสัญญาณให้ปิดไฟตามมา จากนั้นจึงเข้าสู่ช่วงคำสั่ง Alt+Shift เพื่อเปลี่ยนภาษา จากการทดลองพบว่าจะต้องเปลี่ยนภาษานานเป็นระยะเวลาหนึ่ง หากกระบวนการเร็วเกินไป จะกลายเป็นเปลี่ยนภาษาไปมา ในกรณีนี้คือให้ส่งสัญญาณเปลี่ยนภาษาไป 50 รอบคำสั่ง
การแฟลชโปรแกรมใน Ubuntu
ใน Ubuntu รุ่น 12.10 ที่ผมใช้งาน ไม่รู้จักชิป AT90USB162 นี้แต่แรก ทำให้ต้องเขียนกฎการใช้งานใหม่ ลงในไฟล์ /etc/udev/rules.d/60-at90usb162.rules
# This file gives all users permission to update firmware for an AT90USB162
# device in DFU mode
SUBSYSTEM=="usb", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2ffa", GROUP="users", MODE="0666"หลังจากนั้นสั่ง service udev restart เป็นอันเรียบร้อย
เมื่อ make เฟิร์มแวร์ที่เราต้องการเสร็จแล้ว จะได้ไฟล์ออกมาจำนวนมาก แต่ไฟล์ที่ใช้งานจริงๆ คือ ไฟล์ Keyboard.nex เอาไว้สำหรับอัพโหลดขึ้นชิป เมื่อเสียบ dongle เข้าสู่บอร์ด หากไม่แน่ใจให้กดปุ่มโปรแกรมบนบอร์ดอีกครั้ง แล้วตรวจสอบสถานะด้วยคำสั่ง
sudo dfu-programmer at90usb162 get
หากมีการตอบกลับเลขรุ่น bootloader ก็แสดงว่าใช้งานได้แล้ว สามารถสั่งคำสั่งแฟลชเฟิร์มแวร์ลงไปต่อได้
sudo dfu-programmer at90usb162 erase sudo dfu-programmer at90usb162 flash Keyboard.hex sudo dfu-programmer at90usb162 reset
ตัว dongle ก็จะได้รับเฟิร์มแวร์ใหม่พร้อมใช้งาน
พัฒนาต่อ
แม้โครงการนี้จะพัฒนาขึ้นจากความรำคาญเล็กๆ แต่ในความเป็นจริงแล้วการเรียนรู้การพัฒนาอุปกรณ์ USB ด้วยตัวเองเปิดความเป็นไปได้จำนวนมาก เช่น การพัฒนาอุปกรณ์อินพุตอัตโนมัติรูปแบบต่างๆ ที่เราเห็นจำนวนมากได้แก่ เครื่องอ่านบาร์โค้ด และบัตรแม่เหล็กต่างๆ เราอาจจะพัฒนาเครื่องบันทึกค่าต่างๆ ในสิ่งแวดล้อมเช่นอุณหภูมิแล้วส่งค่าผ่านทาง USB สามารถบันทึกค่าลงโปรแกรม notepad ได้โดยง่าย ตลอดจนเราอาจจะสำรวจความปลอดภัยในรูปแบบต่างๆ เช่น การที่โปรแกรมบนเดสก์ทอปไม่มีการป้องกันการโจมตีแบบ brute force แฮกเกอร์อาจจะส่งรหัสผ่านมาเป็นสัญญาณคีย์บอร์ดอย่างรวดเร็วเป็นจำนวนมากๆ ได้
อุปกรณ์เช่นนี้ยังทำให้การออกแบบระบบรักษาความปลอดภัย ต้องคำนึงถึงการปิดพอร์ต USB ที่ไม่ใช้งานทั้งหมด แฮกเกอร์ที่อาจจะเป็นคนภายในด้วยกันเองอาจจะเสียบพอร์ต USB เอาไว้เพื่อตั้งเวลาให้ทำงานเมื่อถึงเวลาที่ต้องการ หรือมีสัญญาณกระตุ้นบางอย่าง เช่น ไฟ Caps Lock ที่ใช้ในบทความนี้ แล้วส่งคำสั่งตามต้องการโดยที่ผู้ใช้จริงเป็นผู้ล็อกอินระบบให้
on
ว้าว!! น่าสนใจมากครับ
iamcmnut Mon, 11/03/2013 - 03:11
ว้าว!! น่าสนใจมากครับ
ยกนิ้วให้เลยครับ ^^
kajokman Mon, 11/03/2013 - 03:29
ยกนิ้วให้เลยครับ ^^
ตรง "พัฒนาต่อ" มีคำว่า
btxxxx Mon, 11/03/2013 - 04:51
ตรง "พัฒนาต่อ" มีคำว่า อุณภูมิ-->อุณหภูมิ ครับ
ค่าคอนฟิด ฟิด =>
hisoft Mon, 11/03/2013 - 08:18
In reply to ตรง "พัฒนาต่อ" มีคำว่า by btxxxx
ฟิด => ฟิค
Triple ญ ครับ
ตรง Code ที่ 2 มี </em>
mix5003 Mon, 11/03/2013 - 10:04
In reply to ตรง "พัฒนาต่อ" มีคำว่า by btxxxx
ตรง Code ที่ 2 มี </em> เกินมาครับ
{syntaxhighlighter "brush:plain"}if (LEDReport & HID_KEYBOARD_LED_CAPSLOCK){{/syntaxhighlighter}
เยี่ยมครับ! อยากถามว่าในกรณีน
SaMzAn Mon, 11/03/2013 - 05:07
เยี่ยมครับ!
อยากถามว่าในกรณีนี้ใช้ Caps lock เป็นตัวเปลี่ยนภาษา แล้วถ้าเกิดในสถานการณ์ที่เราต้องการกดปุ่ม Caps lock จริงๆ จะสามารถทำได้มั้ยครับ
ผมเดาว่า ถอดตัวนี้ออกครับ
mix5003 Mon, 11/03/2013 - 10:01
In reply to เยี่ยมครับ! อยากถามว่าในกรณีน by SaMzAn
ผมเดาว่า ถอดตัวนี้ออกครับ แล้ว Caplock จะกลับมาใช้ได้
ถอดแล้วได้แน่นอนครับ
hisoft Mon, 11/03/2013 - 11:16
In reply to ผมเดาว่า ถอดตัวนี้ออกครับ by mix5003
ถอดแล้วได้แน่นอนครับ เพียงแต่ว่าผมยังไม่เคยเจอสถานการณ์ที่ต้องเปิดไฟ caplock ตอนใช้งานเลย - -"
อ้อ แต่ปุ่ม caplock ผมใช้นะ ใช้สลับโหมดคีย์บอร์ดญี่ปุ่น กดไม่ได้นี่มีงานงอก
ผมใช้ Caps lock
SaMzAn Mon, 11/03/2013 - 16:37
In reply to ถอดแล้วได้แน่นอนครับ by hisoft
ผมใช้ Caps lock ตอนเขียนโปรแกรมครับ โดยเฉพาะเวลาเขียนชื่อพวก Constance ต่างๅ ผมชอบตั้งเป็น Capital letter ทั้งหมด
อยากรู้ว่าที่คุณใช้ Capslock สลับโหมดคีย์บอดญี่ปุ่น สลับโหมดอะไรหรอครับ ロマンジ=>漢字? หรือว่าแค่เปลี่ยนจากภาษาอื่นไปเป็นภาษาญี่ปุ่น?
ที่ถามเพราะผมลองกดดู ผลลัพธ์เหมือนกับคีย์บอร์ดภาษาอังกฤษ อยากรู้เฉยๆ เผื่อได้เทคนิกใหม่
ผมถนัดใช้นิ้วก้อยค้าง Shift
hisoft Mon, 11/03/2013 - 18:47
In reply to ผมใช้ Caps lock by SaMzAn
ผมถนัดใช้นิ้วก้อยค้าง Shift เลยอ่ะครับ - -" ยาวแค่ไหนก็กดค้างไว้ยังงั้น
Ctrl + Caplock => ひらがな、Alt+Caplock => カタカナ อ่ะครับ เห็นมัน default มาแบบนี้ก็เลยจำไว้ใช้
มีที่ไหนรวม ๆ เทคนิคคีย์บอร์ดญี่ปุ่นไหมครับ? ผมไม่รู้จะหาจากไหน นั่งแกะเอาเองจากหน้าตั้งค่าปุ่มลัดของวินโดว์
เพิ่งรู้ว่า Ctrl-Capslock
SaMzAn Mon, 11/03/2013 - 22:24
In reply to ผมถนัดใช้นิ้วก้อยค้าง Shift by hisoft
เพิ่งรู้ว่า Ctrl-Capslock ก็ใช้ได้ ขอบคุณสำหรับความรู้ครับ
คีย์บอร์ดที่ผมใช้บ่อยๆ ก็มีตามนี้ครับ
ロマンジ => ひらがな OR ひらがな => ロマンジ = Alt+`
カタカナ => ひらがな = F6
ひらがな => カタカナ = F7
半角カタカナ = F8
Hand Writing = F5 ต้องพิมพ์ตัวญี่ปุ่นก่อนตัวนึง
ได้ของใหม่เพียบเลย โดยเฉพาะ
hisoft Mon, 11/03/2013 - 22:46
In reply to เพิ่งรู้ว่า Ctrl-Capslock by SaMzAn
ได้ของใหม่เพียบเลย โดยเฉพาะ F5 ปกติผมต้องไปคลิกขวามาจาก language bar - -"
ปกติใช้แค่ ALT+`, CTRL+Cap lock, ALT+Cap lock ขอบคุณครับ
แล้วเครื่องผมเอาคีย์บอร์ดอังกฤษออกไปเลย เวลาเปลี่ยนภาษาแล้วมันเกะกะครับ ต้องกดข้ามไปข้ามมา ใช้ ロマンジ พิมพ์แทนเอาตลอดเลย
จริง ๆ ผมยังสงสัยเลยว่าทำไมเค้าต้องใส่คีย์บอร์ด ロマンジ มาให้ด้วย (-.-)a
Caplock
Eka-X Mon, 11/03/2013 - 12:29
In reply to เยี่ยมครับ! อยากถามว่าในกรณีน by SaMzAn
Caplock ใช้กับภาษาอังกฤษเท่านั้นครับ คงไม่มีใครใช้ caps lock กับภาษาไทย
ถ้าเป็นเครื่องแมค เมื่อเราอยู่ในโหมดคีย์บอร์ดภาษาไทย จะใช้ capslock เปลี่ยนกลับเป็นอังกฤษได้ แต่ถ้าคีย์บอร์ดอยู่ในโหมดอังกฤษ Capslock ก็จะทำหน้าที่ตัวใหญ่ของมัน ต้องใช้ comd + space bar เปลี่ยนกลับเป็นคีย์บอร์ดไทยก่อนถึงจะใช้ caplock เปลี่ยนภาษาได้
แบบนี้ก็รัดกุมดีนะครับ
นึกถึง 8051 ขึ้นมาทันที
sakuraba Mon, 11/03/2013 - 06:55
นึกถึง 8051 ขึ้นมาทันที
ตรง </em>LEDReport
AmidoriA Mon, 11/03/2013 - 07:19
ตรง </em>LEDReport แท็กเกินมารึเปล่าครับ
ประเทืองปัญญาดีมากครับ
PaPaSEK Mon, 11/03/2013 - 07:30
ประเทืองปัญญาดีมากครับ ขอบคุณครับ
แวมไพร์ปัญญาดีมากเหมือนกันครั
viroth Mon, 11/03/2013 - 14:54
In reply to ประเทืองปัญญาดีมากครับ by PaPaSEK
แวมไพร์ปัญญาดีมากเหมือนกันครับ ขอบคุณครับ
ตึกโป๊ะ!!
PaPaSEK Mon, 11/03/2013 - 15:15
In reply to แวมไพร์ปัญญาดีมากเหมือนกันครั by viroth
ตึกโป๊ะ!!
ซูโม่ปัญญาดีมากเหมือนกันครับ
kswisit Mon, 11/03/2013 - 15:53
In reply to แวมไพร์ปัญญาดีมากเหมือนกันครั by viroth
ซูโม่ปัญญาดีมากเหมือนกันครับ ขอบคุณครับ
//เล่นด้วย
เคยบอกแล้วครับ
PaPaSEK Mon, 11/03/2013 - 15:58
In reply to แวมไพร์ปัญญาดีมากเหมือนกันครั by viroth
เคยบอกแล้วครับ อย่าเอาอายุมาโชว์กันมาก อย่าอวดครับ
ผมมั่นใจว่าอายุผมเยอะเหมือนกัน ... แก่น่ะแหละครับ = =
บอกตรงๆ อายุ 17
Volition Mon, 11/03/2013 - 16:10
In reply to แวมไพร์ปัญญาดีมากเหมือนกันครั by viroth
บอกตรงๆ อายุ 17 ยังไม่เข้าใจมุกเลยครับ
+1 ยังไม่เก็ทมุขด้วยคน -*-
SaMzAn Mon, 11/03/2013 - 16:23
In reply to บอกตรงๆ อายุ 17 by Volition
+1 ยังไม่เก็ทมุขด้วยคน -*-
เป็นแผ่นเพลงผี mp3
xestz Mon, 11/03/2013 - 20:13
In reply to +1 ยังไม่เก็ทมุขด้วยคน -*- by SaMzAn
เป็นแผ่นเพลงผี mp3 ครับ
ปล.ผมพึ่ง 19 นะ แต่ยังทัน -..-
ชื่อแผ่นผีเมือก่อนล่ะครับ
tonkung Mon, 11/03/2013 - 16:29
In reply to บอกตรงๆ อายุ 17 by Volition
ชื่อแผ่นผีเมือก่อนล่ะครับ ระบบ 20 up นั้นล่ะ(มีเพลงด้วยนะ)
ปัญญามยุราดีมากเหมือนกันครับ
mr_tawan Mon, 11/03/2013 - 22:35
In reply to แวมไพร์ปัญญาดีมากเหมือนกันครั by viroth
ปัญญามยุราดีมากเหมือนกันครับ ขอบคุณครับ
น่าเล่นมากครับ สอบถามเพิ่มนิด
hisoft Mon, 11/03/2013 - 08:17
น่าเล่นมากครับ
สอบถามเพิ่มนิดนึง ใน Windows ต้องลง Driver หรือเปล่าครับ ถ้าไม่นี่เรื่อง brute force เข้าหน้า log-in Windows ก็มีสิทธิ์ทำได้จริงเหมือนกันนะ
แต่ผมยังสงสัยอยู่อย่างนึง ทำไมเวลาพิมพ์รหัสผิดติดกันหลาย ๆ ครั้งมันต้องใช้เวลาตรวจรหัสผ่านนานขึ้น - -" บางทีนานจนเหมือนเครื่องค้างเลย
ก็มันใช้กัน brute force
nat3738 Mon, 11/03/2013 - 09:30
In reply to น่าเล่นมากครับ สอบถามเพิ่มนิด by hisoft
ก็มันใช้กัน brute force ไงครับ โดยการหน่วงเวลา
คือสงสัยว่าแค่หน่วงเวลากันดื้
hisoft Mon, 11/03/2013 - 09:34
In reply to ก็มันใช้กัน brute force by nat3738
คือสงสัยว่าแค่หน่วงเวลากันดื้อ ๆ เลยเหรอครับ? หรือมันมี algorithm อะไรซับซ้อนกว่านั้นมั้ย? อย่างน้อยถ้าหน่วงเวลากันดื้อ ๆ ก็น่าจะขึ้นบอกเวลาใส่รหัสผิดหลาย ๆ รอบสักหน่อย ประมาณว่าผิดบ่อยไปแล้วนะ
แต่เห็นเวลาถอดรหัสกันตรง ๆ มันก็ไม่มีปัญหาอะไร รัวได้อย่างใจหมาย - -"
หน่วงเวลานี่แหละครับวิธีป้องก
lancaster Mon, 11/03/2013 - 14:00
In reply to คือสงสัยว่าแค่หน่วงเวลากันดื้ by hisoft
หน่วงเวลานี่แหละครับวิธีป้องกันชั้นยอด จากที่จะมั่วได้นาทีละเป็นร้อยเป็นพันครั้ง ก็เหลือแค่ไม่ถึงสิบครั้ง
ด้วยความเคารพ
EThaiZone Mon, 11/03/2013 - 10:10
ด้วยความเคารพ อยากได้สักตัวแม้ตอนนี้จะไม่มี PS3
+1
hisoft Mon, 11/03/2013 - 11:16
In reply to ด้วยความเคารพ by EThaiZone
+1
เคยคิดจะทำเป็นเครื่องช่วยตี
PiKO Mon, 11/03/2013 - 10:38
เคยคิดจะทำเป็นเครื่องช่วยตี Pangya (เกมส์ online) ตอนนี้มี hardware น่ารักๆแบบนี้ขายก็น่าสนใจ :D
+1
illuminator Mon, 11/03/2013 - 11:14
In reply to เคยคิดจะทำเป็นเครื่องช่วยตี by PiKO
+1
ผมเห็นแล้วอยากทำโปรแกรม Robot
hisoft Mon, 11/03/2013 - 11:15
In reply to เคยคิดจะทำเป็นเครื่องช่วยตี by PiKO
ผมเห็นแล้วอยากทำโปรแกรม Robot Mouse & Keyboard เลย ตัวโปรแกรมเหมือนมันจะโดนตรวจจับได้ง่าย ถ้าทำเป็นคีย์แบบนี้สงสัยจะทะลุได้หมด
สมัยเกมส์ Gunbound ผมเอา
vitnu Mon, 11/03/2013 - 20:03
In reply to เคยคิดจะทำเป็นเครื่องช่วยตี by PiKO
สมัยเกมส์ Gunbound ผมเอา Microcontroller PIC ยัดเข้าไปใน Mouse ให้มันคลิกซ้ายทุกวินาที เพื่อให้มันเข้าเกมเองได้ แล้วเอากระดาษยัดปุ่ม space bar ไว้ให้มันยิงสุดแรงตลอด เอาไว้เป็นคู่ซ้อม ช่วยปั้มแต้ม
อ่านตอนแรกก็มีความสงสัยว่าทำไ
Onewings Mon, 11/03/2013 - 12:44
อ่านตอนแรกก็มีความสงสัยว่าทำไมถึงควรจะเขียนโปรแกรมลงในระดับ Hardware ด้วยเพราะสามารถทำการ Intercept ข้อมูลที่ตัว Windows ได้(คือรับ Input มาเป็น Caplock แต่เราให้มันทำอย่างอื่นแทน คล้ายๆกับ Key config ในเกม/โปรแกรมต่างๆ)เวลาเลิกการใช้งานได้ได้ง่ายกว่าเพียงแค่ทำการปิดโปรแกรมที่เขียนไว้แต่มีข้อเสียบางอย่างเช่น อาจจะมีปัญหากับบางโปรแกรมที่ทำงานซ้อนกัน และจำเป็นต้อง run โปรแกรมก่อนจึงจะใช้งานได้ (ไม่ได้ลองกับ Win 8)
พออ่านถึงย่อหน้าสุดท้ายถึงบางอ้อเลย
ผมใช้ caps lock
ZeventhSense Mon, 11/03/2013 - 11:52
ผมใช้ caps lock เปลี่ยนภาษาด้วยการแก้ไข registry ครับ ไม่ต้องลงโปรแกรม, ไม่มีปัญหาหน้าจอล็อคอิน (windows8), ยังไม่เคยเจอปัญหากับเวบไหน และสามารถใช้ปุ่ม grave accent (~) เพื่อเปลี่ยนภาษาได้ด้วย (คนอื่นมาใช้คอมเรา จะได้ไม่งง)
วิธีนี้สามารถใช้ได้กับ windows xp และ windows 8 (windows อื่นยังไม่เคยทำครับ)
1.กด win + r พิมพ์ regedit
2.ไปที่ hkey_local_machine > system > current control set > control > keyboard layout
3.click ขวาที่พื้นที่ว่างด้านขวามือ เลือก new > binary value ตั้งชื่อว่า Scancode Map
4.ใส่โค้ดตามนี้ 00 00 00 00 00 00 00 00 02 00 00 00 29 00 3a 00 00 00 00 00 (ไม่ต้องเคาะวรรค มันจะเว้นวรรคให้เอง)
5.ตั้งค่าให้ปุ่ม grave accent (~) ให้เป็นปุ่มเปลี่ยนภาษา
6.restart ;)
ในกรณีของผม ผมต้องการใช้ปุ่ม
lew Mon, 11/03/2013 - 11:56
In reply to ผมใช้ caps lock by ZeventhSense
ในกรณีของผม ผมต้องการใช้ปุ่ม grave accent เพื่อพิมพ์ครับ
grave accent
lancaster Mon, 11/03/2013 - 14:01
In reply to ผมใช้ caps lock by ZeventhSense
grave accent นี่สำคัญมากสำหรับสาย linux/unix ฮะ
ผมเก็บ grave accent ไว้ใช้กับ
chayaninw Mon, 11/03/2013 - 19:17
In reply to ผมใช้ caps lock by ZeventhSense
ผมเก็บ grave accent ไว้ใช้กับ US-International Keyboard ครับ
แล้วถ้าอยากใช้ caps lock
Thaitop_BN Mon, 11/03/2013 - 20:47
In reply to ผมใช้ caps lock by ZeventhSense
แล้วถ้าอยากใช้ caps lock ขึ้นมานี่ต้องกดปุ่มอะไรครับ หรือต้องไปเปลี่ยน registry ให้กลับเป็นเหมือนเดิม (ในลิกนุกซ์เท่าที่ผมเคยใช้ คือ ubuntu, debian, fedora ใช้ shift + caps lock แทน)
ผมนึกว่า (`) เรียกว่า grave
ZeroEngine Mon, 11/03/2013 - 13:37
ผมนึกว่า (`) เรียกว่า grave accent ซะอีก
ส่วน (~) เรียกว่า tiled
พอดีเคยหาคำอ่าน
http://en.wikipedia.org/wiki/Grave_accent
http://www.giss.nasa.gov/tools/latex/ltx-401.html
ท่านใดพอจะทราบไหมครับว่าทำไมถึงเรียก (~) ว่า grave accent
อย่างในของ windows เองก็ใช้ (`) ว่า grave accent ไม่ใช่เหรอครับ
grave คือ (`) ถูกแล้วครับ
wichate Mon, 11/03/2013 - 14:00
In reply to ผมนึกว่า (`) เรียกว่า grave by ZeroEngine
grave คือ (`) ถูกแล้วครับ มันเอาไว้เขียนโปรแกรม จึงไม่ควรเอามาใช้เป็นปุ่มเปลี่ยนภาษา (แต่ user ทั่วไปคงไม่ได้ใช้ เลยเอามาใช้เปลี่ยนภาษากัน)
ผมไม่ชอบใช้ `
hisoft Mon, 11/03/2013 - 14:44
In reply to grave คือ (`) ถูกแล้วครับ by wichate
ผมไม่ชอบใช้ ` ด้วยสามสาเหตุครับ คือหนึ่ง บางทีมันต้องใช้คีย์นั้น (คีย์ไทยก็ใช้นะ ขี้เกียจเปลี่ยนภาษา) ข้อสอง มันใกล้ Esc มาก เผลอไปโดนประจำ โดยเฉพาะสมัยเล่นเอ็ม โดนแล้วหน้าคุยปิดเลย ข้อสุดท้าย มันไม่สากลแล้วเดี๋ยวนี้ - -" เน้นใช้ตาม default ที่เค้าให้มาแทน
ผมว่า
kswisit Mon, 11/03/2013 - 14:00
In reply to ผมนึกว่า (`) เรียกว่า grave by ZeroEngine
ผมว่า ตามท่านว่ามาอ่ะถูกแล้ว
แต่พอดีว่า ~ กับ ` มันอยู่ปุ่มเดียวกัน เลยเรียกปนกัน
ส่วน (~) เรียกว่า -> tilde
sdh Mon, 11/03/2013 - 14:40
In reply to ผมนึกว่า (`) เรียกว่า grave by ZeroEngine
ส่วน (~) เรียกว่า -> tilde
ผมพิมพ์ผิดครับ ;-)
mr_tawan Mon, 11/03/2013 - 22:37
In reply to ส่วน (~) เรียกว่า -> tilde by sdh
ผมพิมพ์ผิดครับ ;-)
ทดลองเขี่ยนให้มันกดปุ่ม
wichate Mon, 11/03/2013 - 14:03
ทดลองเขี่ยนให้มันกดปุ่ม Ctrl+Alt+Del แล้ว Enter
ให้ทำงานทุกครั้งที่ไฟ Num
kswisit Mon, 11/03/2013 - 14:09
In reply to ทดลองเขี่ยนให้มันกดปุ่ม by wichate
ให้ทำงานทุกครั้งที่ไฟ Num lock ติด
ให้มันทำงานทุกครั้งที่กดปุ่ม
PaPaSEK Mon, 11/03/2013 - 15:18
In reply to ให้ทำงานทุกครั้งที่ไฟ Num by kswisit
ให้มันทำงานทุกครั้งที่กดปุ่ม Left Shift + Right Ctrl + Scroll lock + Num lock + F6 + Windows key
อยากเห็นท่ากดจัง (ต้องมีซัก 8
wichate Mon, 11/03/2013 - 15:29
In reply to ให้มันทำงานทุกครั้งที่กดปุ่ม by PaPaSEK
อยากเห็นท่ากดจัง (ต้องมีซัก 8 มือ ถึงจะกดได้)
คิดว่ามือเป็นตะคริวแน่ๆ ครับ
PaPaSEK Mon, 11/03/2013 - 15:33
In reply to อยากเห็นท่ากดจัง (ต้องมีซัก 8 by wichate
คิดว่ามือเป็นตะคริวแน่ๆ ครับ
Laptop สองมือกดได้ครับ
hisoft Mon, 11/03/2013 - 18:48
In reply to อยากเห็นท่ากดจัง (ต้องมีซัก 8 by wichate
Laptop สองมือกดได้ครับ บ้าจี้ทำตามไปแล้ว (T^T)
คีย์บอร์ดปรกติกดได้ครับ
viroth Mon, 11/03/2013 - 19:09
In reply to Laptop สองมือกดได้ครับ by hisoft
คีย์บอร์ดปรกติกดได้ครับ แต่ท่าพิลึกน่าดูยากขนาดนี้เอาเมาส์จิ้มเอาเหอะ
คีย์บอร์ดคอมก็ทำได้ครับ..
X3STeNLiTE Wed, 13/03/2013 - 00:42
In reply to Laptop สองมือกดได้ครับ by hisoft
คีย์บอร์ดคอมก็ทำได้ครับ.. ผมก็บ้าจี้ทำตามไปแล้วด้วยเหมือนกัน (>_<)
~~~~~~~~~ (ลบๆๆๆๆ) ~
equivalent Mon, 11/03/2013 - 23:38
(ลบๆๆๆๆ)
~