ฟอรั่มของบล็อก http://pssix.blogspot.com


กดปุ่มค้าง

Share

sleepdogg
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 4
ความนิยม : 0
เข้าร่วมเมื่อ : 02/07/2015

กดปุ่มค้าง

ตั้งหัวข้อ by sleepdogg on 07/08/15, 02:40 am

รายละเอียดคือว่า  ถ้ากดปุ่มค้าง แล้วให้โปรแกรมกดปุ่มนั้นและกดคลิ๊ก แล้ววนซ้ำเรื่อยๆ แต่เมื่อปล่อยมือจากปุ่มนั้นโปรแกรมจะหยุดทำงาน(ไม่ได้ออกจากโปรแกรม)

เช่น กด f3
โปรแกรมจะทำงาน
F3 + คลิ๊ก  วนๆๆๆๆ

พอปล่อย f3 โปรแกรมจะหยุด


ท่านใดพอจะมีแนวทางช่วยแนะนำหน่อยครับ

ปล.มือใหม่

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: กดปุ่มค้าง

ตั้งหัวข้อ by thunmor on 07/08/15, 11:49 am

แบบนี้เลยครับ
Code:
#include <Misc.au3>
$hDLL = DllOpen("user32.dll")

While Sleep(100)
   If _IsPressed("72", $hDLL) Then
      Send("{F3}")
      MouseClick("left")
   EndIf
WEnd

sleepdogg
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 4
ความนิยม : 0
เข้าร่วมเมื่อ : 02/07/2015

Re: กดปุ่มค้าง

ตั้งหัวข้อ by sleepdogg on 07/08/15, 05:39 pm

thunmor พิมพ์ว่า:แบบนี้เลยครับ
Code:
#include <Misc.au3>
$hDLL = DllOpen("user32.dll")

While Sleep(100)
   If _IsPressed("72", $hDLL) Then
      Send("{F3}")
      MouseClick("left")
   EndIf
WEnd


ขอบคุณมากน่ะครับ
ถ้าไม่รบกวนมากช่วยอธิบาย
1. #include
2. $hDLL = DllOpen("user32.dll")

แล้วก็ ถ้า while เราไม่ใส่ sleep ได้ไหมครับ(ไม่อยากให้มีdelay)

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: กดปุ่มค้าง

ตั้งหัวข้อ by thunmor on 07/08/15, 06:42 pm

-#includeเป็นการรวมเอาสคริป(ไฟล์.au3)อื่นมาใช้งาน ซึ่งฟังชั่น_IsPressedมันอยู่ในMisc.au3
จำเป็นต้อง #include เพื่อใช้งานฟังชั่น_IsPressed
ลองทดสอบดูก็ได้ถ้าไม่#include แล้วรันสคริปจะErrorแจ้วว่าไม่มีฟังชั่น_IsPressed

-DllOpen("user32.dll") เป็นการเรียกไฟล์dll ของwindowsที่ชื่อuser32ขึ้นมาใช้งานในฟังชั่น_IsPressed

-sleepไม่ต้องใส่ก็ได้ แต่ควรจะใส่ไว้สักเล็กน้อยเพื่อไม่ให้ใช้CPUเกินความจำเป็น อาจใส่ไว้สัก10
แต่ถ้าไม่เอาsleep ก็ while1 ไปเลย
Code:
While 1 ;ตัวอย่าง1
   Sleep(100)
WEnd

While Sleep(100) ;ตัวอย่าง2
WEnd

; ตัวอย่าง1กับ2 ทำงานเหมือนกันเขียนแบบไหนก็ได้


sleepdogg
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 4
ความนิยม : 0
เข้าร่วมเมื่อ : 02/07/2015

Re: กดปุ่มค้าง

ตั้งหัวข้อ by sleepdogg on 08/08/15, 02:49 am

thunmor พิมพ์ว่า:-#includeเป็นการรวมเอาสคริป(ไฟล์.au3)อื่นมาใช้งาน ซึ่งฟังชั่น_IsPressedมันอยู่ในMisc.au3
จำเป็นต้อง #include เพื่อใช้งานฟังชั่น_IsPressed
ลองทดสอบดูก็ได้ถ้าไม่#include แล้วรันสคริปจะErrorแจ้วว่าไม่มีฟังชั่น_IsPressed

-DllOpen("user32.dll") เป็นการเรียกไฟล์dll ของwindowsที่ชื่อuser32ขึ้นมาใช้งานในฟังชั่น_IsPressed

-sleepไม่ต้องใส่ก็ได้ แต่ควรจะใส่ไว้สักเล็กน้อยเพื่อไม่ให้ใช้CPUเกินความจำเป็น อาจใส่ไว้สัก10
 แต่ถ้าไม่เอาsleep ก็ while1 ไปเลย
Code:
While 1 ;ตัวอย่าง1
   Sleep(100)
WEnd

While Sleep(100) ;ตัวอย่าง2
WEnd

; ตัวอย่าง1กับ2 ทำงานเหมือนกันเขียนแบบไหนก็ได้



ครับผม เข้าใจขึ้นเยอะเลย

แต่หลังจากที่ผมลองcopy ไปใช้ดู เหมือนจะมีช่วงเวลาหนึ่งที่โปรแกรมมันค้าง อยากจะทราบว่าเป็นเพราะเหตุใด

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: กดปุ่มค้าง

ตั้งหัวข้อ by thunmor on 08/08/15, 12:04 pm

เรื่องโปรแกรมค้างนี่มันค้างได้หลายสาเหตุครับ ผมก็ไม่ทราบเหมือนกันว่ามันค้างเพราะอะไร

sleepdogg
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 4
ความนิยม : 0
เข้าร่วมเมื่อ : 02/07/2015

Re: กดปุ่มค้าง

ตั้งหัวข้อ by sleepdogg on 08/08/15, 12:54 pm

thunmor พิมพ์ว่า:เรื่องโปรแกรมค้างนี่มันค้างได้หลายสาเหตุครับ ผมก็ไม่ทราบเหมือนกันว่ามันค้างเพราะอะไร


มันไม่เชิงค้างหรือerror แต่มันแบบ หยุดคลิ๊กแปบนึง แล้วก็ทำงานต่อ

    เวลาขณะนี้ 26/09/17, 05:57 pm