Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 13:22

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Hilfe]Kompliziertes Problem :O

Discussion on [Hilfe]Kompliziertes Problem :O within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
[Hilfe]Kompliziertes Problem :O

Hey ich habe grade aus spaß folgendes vor.

Ich möchte, dass durch halten 2 verschiedener tasten, verschiedene tastenfunktionen an ein Spiel Gesendet werden.

z.B. Ich halte die Taste M, und es soll an das fenster eines Spieles folgendes Gesendet werden.

D taste down
Leertaste down
e taste down
Rechte maustaste down

und die linke maus soll gespammt werden.

Im Umkehr schluss, soll sobald die taste nicht gedrückt is, keine dieser funktionen erfolgen, aber die entsprechenden tasten sollen immer noch im spiel funktionieren, d.H. key up in eine schleife machen is nicht, sonst kann man ingame die taste nicht benutzen.

Ich steh vor einem rätsel wie das funktionieren soll.

Und WICHTIG ist, dass die tasten down sind, also nicht nur ein einer schleife gesendet werden.

Ich habe einen weg probiert, aber bei dem wird die key up kommands in einer schleife ausgeführt, und die tasten sind nutzlos.

Hoffe jemand hat ne ahnung wie/ob das funktionieren soll.
freehuntx is offline  
Old 08/12/2011, 09:34   #2


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
komische problembeschreibung. ich interpretier da immer komische dinge rein ..
könntest du das gemeint haben?

Code:
HotKeySet("{M}", "Main")

Global $Spam = 0

AdlibRegister("Left", 10)

Func Main()
	Send("{SPACE down}")
	Send("{D down}")
	Send("{E down}")
	MouseDown("right")

	$Spam = 1
EndFunc

Func Left()
	If $Spam Then MouseClick("left")
EndFunc

While 1
	Sleep(100)
WEnd
buFFy! is offline  
Old 08/12/2011, 09:37   #3
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
Nein das ist ja mit Hotkey, wo nur durch einmaliges drücken die funktion ausgeführt wird, und nicht gesteuert werden kann, wann diese aufhören soll.

Ich habe es mit While IsPressed gemacht, aber ich weiß einfach nicht wie ich die entsprechenden tasten auf up stellen soll, und das ohne eine schleife, damit man diese ingame noch benutzen kann.
freehuntx is offline  
Old 08/12/2011, 10:37   #4
 
elite*gold: 0
Join Date: Aug 2011
Posts: 56
Received Thanks: 5
buffy`s lösung ist doch genau das was du willst
.....Durch das drücken wird diese function wie du gesehen hast doch nur einmal ausgeführt,durch nochmaliges drücken wird es wieder ausgeführt oder



*Edit
Sorry hab mich vertan :/
Toastiix is offline  
Old 08/12/2011, 11:03   #5
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
du fragst in einer whileschleife ob der key down ist. am ender der schleife setzt du $a = true

dann eine schleife in der du fragst ob der key up ist und gleichzeitig $a = true, dann soller up an die tasten senden und danach $a = false setzen.

wird also in der schleife nur ausgeführt wenn zuvor m gedrückt wurde, so wrid nciht die ganze zeit up gesendet.


nur im kopf entworfen, keine garantie
butter123 is offline  
Old 08/12/2011, 12:30   #6


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Quote:
Originally Posted by freehuntx View Post
Nein das ist ja mit Hotkey, wo nur durch einmaliges drücken die funktion ausgeführt wird, und nicht gesteuert werden kann, wann diese aufhören soll.

Ich habe es mit While IsPressed gemacht, aber ich weiß einfach nicht wie ich die entsprechenden tasten auf up stellen soll, und das ohne eine schleife, damit man diese ingame noch benutzen kann.
dann eben so?
Code:
HotKeySet("{m}", "Main")

Global $Spam = 0

AdlibRegister("Left", 10)

Func Main()
	If $Spam = 0 Then
		Send("{SPACE down}")
		Send("{D down}")
		Send("{E down}")
		MouseDown("right")
	ElseIf $Spam = 1 Then
		Send("{SPACE up}")
		Send("{D up}")
		Send("{E up}")
		MouseUp("right")
	EndIf

	$Spam = Not $Spam
EndFunc   ;==>Main

Func Left()
	If $Spam Then MouseClick("left")
EndFunc   ;==>Left

While 1
	Sleep(100)
WEnd
buFFy! is offline  
Old 08/12/2011, 13:08   #7
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
dein programm benutz den hotkey als schalter für an und aus, er wollte es aber so, dass nur solange gesendet wird, bis der key losgelassen wird
butter123 is offline  
Old 08/12/2011, 13:37   #8


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Code:
$dll = DllOpen('user32.dll')
If $dll = -1 Then Exit

AdlibRegister("Left", 10)

Global Const $VK_M = 0x4D
Global $Spam = 0

While 1
	If _IsPressed($VK_M, $dll) Then
		Send("{SPACE down}")
		Send("{D down}")
		Send("{E down}")
		MouseDown("right")
		$Spam = 1

		While _IsPressed($VK_M, $dll)
			Sleep(10)
		WEnd

		Send("{SPACE up}")
		Send("{D up}")
		Send("{E up}")
		MouseUp("right")
		$Spam = 0
	EndIf
	Sleep(10)
WEnd

Func Left()
	If $Spam Then MouseClick("left")
EndFunc   ;==>Left
??
buFFy! is offline  
Old 08/12/2011, 14:38   #9
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by freehuntx View Post
Hey ich habe grade aus spaß folgendes vor.

Ich möchte, dass durch halten 2 verschiedener tasten, verschiedene tastenfunktionen an ein Spiel Gesendet werden.

z.B. Ich halte die Taste M, und es soll an das fenster eines Spieles folgendes Gesendet werden.

D taste down
Leertaste down
e taste down
Rechte maustaste down

und die linke maus soll gespammt werden.

Im Umkehr schluss, soll sobald die taste nicht gedrückt is, keine dieser funktionen erfolgen, aber die entsprechenden tasten sollen immer noch im spiel funktionieren, d.H. key up in eine schleife machen is nicht, sonst kann man ingame die taste nicht benutzen.

Ich steh vor einem rätsel wie das funktionieren soll.

Und WICHTIG ist, dass die tasten down sind, also nicht nur ein einer schleife gesendet werden.

Ich habe einen weg probiert, aber bei dem wird die key up kommands in einer schleife ausgeführt, und die tasten sind nutzlos.

Hoffe jemand hat ne ahnung wie/ob das funktionieren soll.
hmm ich habs so verstanden:
PHP Code:
#Include <Misc.au3>

$dll DllOpen("user32.dll")

$go False

While Sleep(10)
    If 
_IsPressed("4D"$dllThen
        Send
("{D down}")
        
Send("{SPACE down}")
        
Send("{E down}")
        
MouseDown("right")
        
MouseClick("left")
        
$go True
    
Else
        If 
$go True Then
            Send
("{D up}")
            
Send("{SPACE up}")
            
Send("{E up}")
            
MouseUp("right")
            
$go False
        
EndIf
    EndIf
WEnd 
omer36 is offline  
Old 08/13/2011, 07:58   #10
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
Quote:
Originally Posted by omer36 View Post
hmm ich habs so verstanden:
PHP Code:
#Include <Misc.au3>

$dll DllOpen("user32.dll")

$go False

While Sleep(10)
    If 
_IsPressed("4D"$dllThen
        Send
("{D down}")
        
Send("{SPACE down}")
        
Send("{E down}")
        
MouseDown("right")
        
MouseClick("left")
        
$go True
    
Else
        If 
$go True Then
            Send
("{D up}")
            
Send("{SPACE up}")
            
Send("{E up}")
            
MouseUp("right")
            
$go False
        
EndIf
    EndIf
WEnd 
Genau so hatte ich es selber gemacht, aber da ist das problem, dass wenn die bestimmte Taste nicht gedrückt ist, die entsprechenden tasten auf up gesetzt werden, und das in einer schleife.

Wenn man nun ingame z.B. e oder space drücken will, wird das nicht flüssig funktionieren, dar diese taste von autoit auf up gesetzt wird.

Das wollte ich egendlich beheben aber hab wirklich keine ahnung wie das funzen soll.
freehuntx is offline  
Old 08/13/2011, 08:44   #11


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
ich habs doch geschrieben xD

das geht mit while _ispressed(taste) { sleep(x) };
buFFy! is offline  
Reply


Similar Threads Similar Threads
[S] kompliziertes avatar
06/04/2011 - elite*gold Trading - 16 Replies
hallo epvpgfxers :> ich würde gerne etwas, meiner meinung nach sehr kompliziertes in auftrag geben. dazu wird viel skill benötigt. ihr müsst wahrscheinlich folgendes können: zeichen animieren es geht um ein bild wie dieses: http://www.elitepvpers.com/forum/customavatars/ava tar3403648_21.gif oder das: http://img7.imagebanana.com/img/24x5s3ul/Benutzerb ildvonotomot95.gif nur möchte ich kein schweinchen, sondern ein zebra'chen :> außerdem muss es in diesem style sein.
[HILFE]Problem beim Starten von MT2-Pserver..[HILFE]
03/16/2011 - Metin2 Private Server - 0 Replies
Closerequest habe den Problem gelöst :)
[HILFE] FreeBSd auf Linux Root Problem +Belohnung[HILFE]
06/06/2010 - Metin2 Private Server - 2 Replies
Hi ich habe ein Großes Problem ich kann irgendwie keine Image erstellen kann mir jemand helfen Natürlich mit Belohnung ! 10er Psc oder mehr wenn man es hinbekommt ! Wenn mir jemand FreeBSD auf Ubuntu Root macht (32-bit) Add mich dan Skype !



All times are GMT +1. The time now is 13:22.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.