[PROBLEM] Spamm-Tool

10/19/2010 14:52 18alex03#1
Hey User,
ich hab ein kleines Problem bei meinem Spamm-Tool.
Also man soll in die einzelnen Felder einen Text eingeben können und dann zB F1 drücken und dann wird der Text dahin geschrieben, in welchem Fenster man grade ist. Zum Beispiel ein Textdokument.

Hier mal der Quellcode:

Leider Funktioniert das nicht.
Könnte mir jemand helfen?
Achja und wenn die Checkbox aktiviert ist, soll nach dem man F1 gedrückt hat, der Text geschrieben werden und Enter gedrückt werden.
10/19/2010 15:00 omer36#2
ist eig. auch nicht die beste lösung, wegen den 2 while scheifen.. aber nja klapt :p

PHP Code:
#EndRegion ### END Koda GUI section ###

HotKeySet("{F1}""spam")
HotKeySet("{ESC}""_exit")

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch
WEnd


Func spam
()
    While 
1
        $read1 
GUICtrlRead($Input1)
        If 
BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
            Send
($read1)
            
Send("{Enter}")
        Else
            
Send($read1)
        EndIf
    
WEnd
EndFunc

Func _exit
()
    Exit
EndFunc 
10/19/2010 15:05 18alex03#3
ehm hab mich vllt unklar ausgedrückt, aber das programm soll den text nur einmal schreiben. also 1 mal f1 drücken -> 1 mal text schreiben. micht dauernd :S

aber danke
10/19/2010 15:09 ZaZiZu#4
also text nur 1x hinschreiben und dann ende?
dann fehlt dir exitloop oder so ^^
das mit enter (hab ich von nem anderen) kann man mit @CRLF lösen, also einfach : Send (@CRLF)


hier mal beispiel:
Quote:
If $Checkbox1 = True Then
Send($read1)
Send(@CRLF)
ExitLoop
und für was soll das enter sein? der bringt iwie nix ^^

und €dit: das mit dem kontrollkästchen macht iwie keinen unterschied ^^
und das "Else" find ich auch nirgends wieder
mit der checkbox kenn ich mich auch ganz und gar nicht aus. hab in meiner gui das selbe problem, der der es löst kriegt gleich 2 thanks :D

btw. die vielen FX und readX und tasteX usw kann man mit einer variable mit nur einer funktion/schleife vereinfachen ;)
beispiel:

10/19/2010 15:12 18alex03#5
ah danke ich habs, muss bei dem von omer36 nur die while schleife wegmachen, dann funzt alles.

das enter soll bewirken, das der text abgeschickt wird, zB in icq oder so ;)
10/19/2010 15:30 lolkop#6
ich würde dir empfehlen das ganze in eine schleife zu setzen...
etwa so:
Code:
#include <misc.au3>
Dim $input[6], $checkbox[6]

$gui =GUICreate("Spamm-Tool by 18alex03", 615, 606)
GUISetBkColor(0xA6CAF0)
GUICtrlCreateLabel("      Spamm-Tool by 18alex03", 2, -4, 525, 53)
GUICtrlSetFont(-1, 26, 800, 2, "Comic Sans MS")
For $i=0 To 5
	GUICtrlCreateLabel("Text für F"&$i+1&":", 14, 62 + $i*90, 88, 23)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
	$input[$i] = GUICtrlCreateInput("", 14, 94 + $i*90, 581, 21)
	$checkbox[$i] = GUICtrlCreateCheckbox('Enter', 16, 126 + $i*90, 50, 17)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
Next
GUISetState(@SW_SHOW)

$dll = DllOpen('user32.dll')
Do
	For $i=0 To 5
		If _IsPressed(70 + $i, $dll) Then
			If BitAND(GUICtrlRead($checkbox[$i]), 1) Then
				Send(GUICtrlRead($input[$i])&@CRLF)
			Else
				Send(GUICtrlRead($input[$i]))
			EndIf
			Do
				Sleep(1)
			Until Not _IsPressed(70 + $i, $dll)
		EndIf
	Next
Until GUIGetMsg() = -3
DllClose($dll)
natürlich hast du bei den F tasten den nachteil, das die meisten tools zb auf F1 ihre hilfe funktion haben...
10/19/2010 15:39 ZaZiZu#7
Quote:
Originally Posted by lolkop View Post
ich würde dir empfehlen das ganze in eine schleife zu setzen...
etwa so:
Code:
#include <misc.au3>
Dim $input[6], $checkbox[6]

$gui =GUICreate("Spamm-Tool by 18alex03", 615, 606)
GUISetBkColor(0xA6CAF0)
GUICtrlCreateLabel("      Spamm-Tool by 18alex03", 2, -4, 525, 53)
GUICtrlSetFont(-1, 26, 800, 2, "Comic Sans MS")
For $i=0 To 5
	GUICtrlCreateLabel("Text für F"&$i+1&":", 14, 62 + $i*90, 88, 23)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
	$input[$i] = GUICtrlCreateInput("", 14, 94 + $i*90, 581, 21)
	$checkbox[$i] = GUICtrlCreateCheckbox('Enter', 16, 126 + $i*90, 50, 17)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
Next
GUISetState(@SW_SHOW)

$dll = DllOpen('user32.dll')
Do
	For $i=0 To 5
		If _IsPressed(70 + $i, $dll) Then
			If BitAND(GUICtrlRead($checkbox[$i]), 1) Then
				Send(GUICtrlRead($input[$i])&@CRLF)
			Else
				Send(GUICtrlRead($input[$i]))
			EndIf
			Do
				Sleep(1)
			Until Not _IsPressed(70 + $i, $dll)
		EndIf
	Next
Until GUIGetMsg() = -3
DllClose($dll)
natürlich hast du bei den F tasten den nachteil, das die meisten tools zb auf F1 ihre hilfe funktion haben...
kannst mir diesen teil erläutern pls?
Quote:
If _IsPressed(70 + $i, $dll) Then
was ist das für eine dll?



€dit: den spammbot könnte man gut mit Nummerntasten laufen lassen ^^
10/19/2010 15:55 lolkop#8
Quote:
Originally Posted by ZaZiZu View Post
kannst mir diesen teil erläutern pls?

was ist das für eine dll?
das ist die user32.dll die ich vorher einmalig geöffnet habe, da sie sehr oft in der sekunde gebraucht wird.
wenn man das ganze weggelassen hätte, würde die dll jedes mal geöffnet und geschlossen werden...

die 70 steht eben für F1. die for schleife checkt die ganze zeit ob die tasten von F1 bis F6 (70+5) gedrückt werden.
10/19/2010 16:03 ZaZiZu#9
Quote:
Originally Posted by lolkop View Post
das ist die user32.dll die ich vorher einmalig geöffnet habe, da sie sehr oft in der sekunde gebraucht wird.
wenn man das ganze weggelassen hätte, würde die dll jedes mal geöffnet und geschlossen werden...

die 70 steht eben für F1. die for schleife checkt die ganze zeit ob die tasten von F1 bis F6 (70+5) gedrückt werden.
wollte eigentlich bei der dll nur wissen was die überhaupt macht ^^ aber ok, habs hier nachgeschaut
[Only registered and activated users can see links. Click Here To Register...]
10/19/2010 17:20 18alex03#10
Quote:
Originally Posted by lolkop View Post
ich würde dir empfehlen das ganze in eine schleife zu setzen...
etwa so:
Code:
#include <misc.au3>
Dim $input[6], $checkbox[6]

$gui =GUICreate("Spamm-Tool by 18alex03", 615, 606)
GUISetBkColor(0xA6CAF0)
GUICtrlCreateLabel("      Spamm-Tool by 18alex03", 2, -4, 525, 53)
GUICtrlSetFont(-1, 26, 800, 2, "Comic Sans MS")
For $i=0 To 5
	GUICtrlCreateLabel("Text für F"&$i+1&":", 14, 62 + $i*90, 88, 23)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
	$input[$i] = GUICtrlCreateInput("", 14, 94 + $i*90, 581, 21)
	$checkbox[$i] = GUICtrlCreateCheckbox('Enter', 16, 126 + $i*90, 50, 17)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
Next
GUISetState(@SW_SHOW)

$dll = DllOpen('user32.dll')
Do
	For $i=0 To 5
		If _IsPressed(70 + $i, $dll) Then
			If BitAND(GUICtrlRead($checkbox[$i]), 1) Then
				Send(GUICtrlRead($input[$i])&@CRLF)
			Else
				Send(GUICtrlRead($input[$i]))
			EndIf
			Do
				Sleep(1)
			Until Not _IsPressed(70 + $i, $dll)
		EndIf
	Next
Until GUIGetMsg() = -3
DllClose($dll)
natürlich hast du bei den F tasten den nachteil, das die meisten tools zb auf F1 ihre hilfe funktion haben...
das programm ist schön und gut, doch leider funktioniert das mit der checkbox nicht.
wenn man eine f taste drückt, macht der immer enter, egal ob nen hacken drin ist oder nicht
10/19/2010 17:45 ZaZiZu#11
Quote:
Originally Posted by 18alex03 View Post
das programm ist schön und gut, doch leider funktioniert das mit der checkbox nicht.
wenn man eine f taste drückt, macht der immer enter, egal ob nen hacken drin ist oder nicht
wo ist das problem? also bei mir klappt es wunderbar im editor^^
wie lolkop schon sagte, viele programme haben eigene funktionen, deswegen hab ich es mal auf Nummerntasten umgeschrieben:
und grad dazueditiert: abfragefenster, welches abfragt wieviele reihen da rein sollen :D da ich sicherlich nicht jedes mal 6 nachrichten auf kurzwahl habe, ma 2, ma 9
Quote:
#include <misc.au3>

$lol=InputBox("Test", "Anzahl der Reihen", "1-9 möglich")
Dim $input[$lol], $checkbox[$lol]

$gui =GUICreate("Spamm-Tool by 18alex03", 615, 606)
GUISetBkColor(0xA6CAF0)
GUICtrlCreateLabel(" Spamm-Tool by 18alex03", 2, -4, 525, 53)
GUICtrlSetFont(-1, 26, 800, 2, "Comic Sans MS")
For $i=0 To $lol-1
GUICtrlCreateLabel("Text für #"&$i+1&":", 14, 62 + $i*90, 88, 23)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
$input[$i] = GUICtrlCreateInput("", 14, 94 + $i*90, 581, 21)
$checkbox[$i] = GUICtrlCreateCheckbox('Enter', 16, 126 + $i*90, 50, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
Next
GUISetState(@SW_SHOW)

$dll = DllOpen('user32.dll')
Do
For $i=0 To $lol-1
If _IsPressed(61 + $i, $dll) Then
If BitAND(GUICtrlRead($checkbox[$i]), 1) Then
Send("{BS}"&GUICtrlRead($input[$i])&@CRLF)
Else
Send("{BS}"&GUICtrlRead($input[$i]))
EndIf
Do
Sleep(1)
Until Not _IsPressed(61 + $i, $dll)
EndIf
Next
Until GUIGetMsg() = -3
DllClose($dll)