PDA

View Full Version : در خواست یک راهنمایی کوچیک



CrazyMEmber
جمعه 15 شهریور 1392, 15:52 عصر
سلام دوستان
من می خوام یک برنامه بنویسم که مثلا برای یک بازی که وقتی این برنامه رو باز کردم و رفتم توی بازی و مثلا دکمه F4 رو فشار دادم خود به خود موس شروع به کلیک کردن بکنه و وقتی F4 رو دوباره زدم قطع بشه یا مثلا وقتی F3 رو می کنم خود به خود دکمه ی f5 زده بشه بعدش دکمه b و بعدش دکمه c و همین روند ادامه پیدا کنه تا وقتی که دوباره f3 رو بزنم کسی می تونه کمکم کنه ؟

mohamad_torabi
جمعه 15 شهریور 1392, 16:43 عصر
سلام اول باید بری تو properties شی بعد keypreview رو True کنی بعد یه دستور شرطی بزاری که مثلا اگه کاربر اینو زد تو این کا رو کن مثل زیر

Select Case e.KeyCode
Case Keys.NumPad0
Me.Button16_Click(sender, e)
Case Keys.NumPad1
Me.Button12_Click(sender, e)
Case Keys.NumPad2
Me.Button11_Click(sender, e)
Case Keys.NumPad3
Me.Button10_Click(sender, e)
Case Keys.NumPad4
Me.Button8_Click(sender, e)
Case Keys.NumPad5
Me.Button7_Click(sender, e)
Case Keys.NumPad6
Me.Button6_Click(sender, e)
Case Keys.NumPad7
Me.Button1_Click(sender, e)
Case Keys.NumPad8
Me.Button2_Click(sender, e)
Case Keys.NumPad9
Me.Button3_Click(sender, e)

End Select

CrazyMEmber
جمعه 15 شهریور 1392, 16:51 عصر
ببخشید ولی من متوجه نشدم من توی ویژوال بیسیک تازه وارد هستم اگه میشه بیشتر راهنمایی کنید کلید های ترکیبی رو چجوری بزارم و یا این که خودش تا وقتی دوباره F4 رو نزدم همینجور خودش یه کلید رو مدام بزنه

mohamad_torabi
جمعه 15 شهریور 1392, 16:59 عصر
مدام تکرار شه رو نمیدونم ولی دستو زیر میگه اگه کاربر دکمه f4 رو زد کلیک کن رو باتن 1

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.F4
Me.Button1_Click(sender, e)
End Select
End Sub

CrazyMEmber
جمعه 15 شهریور 1392, 17:04 عصر
این کد رو می زنم قرمز نشون میده کد رو و میگه کد مشکل داره

mohamad_torabi
جمعه 15 شهریور 1392, 17:11 عصر
برید تو قسمت کد فرم اصلی از event هاش KeyDown رو انتخاب کنبد وکد زیر رو توش بنویسیسد بین این دوتا
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

End Sub

دستور این کد رو بنویسید
Select Case e.KeyCode Case Keys.F4
Me.Button1_Click(sender, e)
End Select

CrazyMEmber
جمعه 15 شهریور 1392, 20:03 عصر
بازم قرمز می کنه و به قسمت handles و جاهای دیگش گیر میده

CrazyMEmber
جمعه 15 شهریور 1392, 20:14 عصر
ببینید من یه کد پیدا کردم و کار می کنه این کد یک Auto Clicker هست که تست کردم کار می کنه با زدن F11 شروع به کلیک کردن می کنه و با زدن F12 وایمیسته
حالا اگه میشه با یه تغییراتی می خوام یه کاری کنم که یه hotkey هم اضافه کنم که وقتی F4 رو می زنم مدام دکمه های F3 + 3 + 4 رو پشت سر هم بزنه (همزمان نه پشت سر هم یعنی اول f3 بعد 3 بعد 4 )
اگه راهنماییم کنید ممنون میشم :
Private Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Long) As Integer
Private Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const LEFTDown = &H2
Private Const LEFTUP = &H4
Private Const MIDDLEDOWN = &H20
Private Const MIDDLEUP = &H40
Private Const MMOVE = &H1
Private Const ABSOLUTE = &H8000
Private Const RIGHTDOWN = &H8
Private Const RIGHTUP = &H10



Private Sub Form_Load()
Text1.Text = 1000
Timer1.Enabled = False
Timer1.Interval = 1000
Timer2.Enabled = True
Timer2.Interval = 1
End Sub

Private Sub Text1_Change()
Timer1.Interval = Text1.Text
End Sub

Private Sub Timer1_Timer()
'Clicking Timer
LeftClick
End Sub

Private Sub Timer2_Timer()

'Hotkey Timer
If GetKeyPress(vbKeyF11) Then
Timer1.Enabled = True
End If

If GetKeyPress(vbKeyF12) Then
Timer1.Enabled = False
End If

End Sub

Private Sub LeftClick()
mouse_event LEFTDown, 0, 0, 0, 0
mouse_event LEFTUP, 0, 0, 0, 0
End Sub

Private Sub RightClick()
mouse_event RIGHTDOWN, 0&, 0&, cButt, dwEI
mouse_event RIGHTUP, 0&, 0&, cButt, dwEI
End Sub

CrazyMEmber
شنبه 23 شهریور 1392, 13:22 عصر
من هنوز منتظرما

aliagamon
شنبه 23 شهریور 1392, 14:36 عصر
من هنوز منتظرما
با sendkeys امتحان کردین؟:

SendKeys.Send("{F3}")
SendKeys.Send("3")
SendKeys.Send("4")

CrazyMEmber
یک شنبه 24 شهریور 1392, 00:38 صبح
بیشتر راهنمایی کنین چجوری تعیین کنم که این کلید ها با هم نخورن و به ترتیب پشت سر هم مثلا با فاصله زمانی 1 ثانیه از هم بخورن

Saman_12
یک شنبه 24 شهریور 1392, 13:06 عصر
ببین واسه این کار چند تا حالت داریم(که زیاد مهم نیست من یکیشو میگم).
با api - ی GetAsyncKeyState فشرده شدن کلید موردنظر (f11) و چک کنی بعد اگه فشرده شده بود تو یه حلقه با Sendkeys یا api کلید ها رو بفرستین تا دوباره فشرده شه.
بعدشم با sendkeys کلید ها با هم نمیخورن و پشت سر هم هستن مهم فاصله زمانی بین اون هاست که با sleep درست میشه.