Schreibe für euch einfache Programme zum üben

01/05/2012 21:33 xShizoidx#1
Guten Abend,

da ich noch etwas in Autoit üben muss und mir gerade nichts einfällt, was ich schreiben kann, gebe ich euch die Möglichkeit mir zu schreiben, was für ein Programm ich schreiben soll und ich euch anschließend das Script gebe.

Programme, die auf jeden Fall nicht schreiben werde :

- Bots
- Internet Automatisierungen

Erwünscht sind alle anderen Programme, solange sie mir nicht zu schwer sind.
Ich hoffe auf gute Vorschläge.

Mit freundlichen Grüßen,

Netterwurm8
01/05/2012 22:38 Project_X#2
Ein guten Taschenrechner ;)

Also: +,-,*,/,sin,cos,tan usw
01/05/2012 22:49 lolkop#3
eine art spambot, mit einer unbegranzenten anzahl von spam-messages, welche jeweils seperat getimt laufen, start- und stopbar sind. das ganze sollte ohne hotkeys nur über ein gui laufen.
01/05/2012 22:50 xShizoidx#4
Quote:
Originally Posted by Project_X View Post
Ein guten Taschenrechner ;)

Also: +,-,*,/,sin,cos,tan usw
Habe ich schon einmal geschrieben, daher bitte etwas Anderes.
Den Kramms mit Sinus, Cos habe ich von anderen Scripten damals geklaut, da ich selber nicht wusste wie man soetwas berechnet. ;D

Quote:
Originally Posted by Project_X;lolkop
eine art spambot, mit einer unbegranzenten anzahl von spam-messages, welche jeweils seperat getimt laufen, start- und stopbar sind. das ganze sollte ohne hotkeys nur über ein gui laufen.
Wollte eigentlich keine Bots schreiben, aber einen kleinen Spambot zum üben kann ich ja mal machen.
Was meinst du mit seperat getimt?
Also zuerst soll der Spieler seine Texte angeben und er darf angeben, nach wievielen Sekunden jeder Text gesendet wird? Das mit " nur mit Buttons " weiß ich schon wie du es meinst. Da saß ich damals lange dran bis ich endlich auf eine Lösung gekommen bin, nun weiß ich sie nicht mehr, aber ich werde schon wieder eine Lösung finden, auch wenn sie bescheuert ist.
01/05/2012 22:52 FansLave#5
Ein Bot wo man F11 drückt und sich z.b Google Öffnet

Wen mann F12 drückt sich Youtube Öffnet

Währe sehr toll <3
01/05/2012 23:03 xShizoidx#6
F12 kann man nicht verwenden. Stattdessen habe ich einfach mal F9 und F10 genommen. Mit F11 beendest du es wieder.
Code:
HotKeySet("{F9}","_Google")
HotKeySet("{F10}","_Youtube")
HotKeySet("{F11}","_Exit")

while 1
	sleep(100)
WEnd

Func _Google()
	ShellExecute("http://www.google.de/")
EndFunc

Func _Youtube()
	ShellExecute("http://www.youtube.com/")
EndFunc

Func _Exit()
Exit
EndFunc
01/05/2012 23:11 lolkop#7
Quote:
Originally Posted by netterwurm8 View Post
Wollte eigentlich keine Bots schreiben, aber einen kleinen Spambot zum üben kann ich ja mal machen.
Was meinst du mit seperat getimt?
Also zuerst soll der Spieler seine Texte angeben und er darf angeben, nach wievielen Sekunden jeder Text gesendet wird? Das mit " nur mit Buttons " weiß ich schon wie du es meinst. Da saß ich damals lange dran bis ich endlich auf eine Lösung gekommen bin, nun weiß ich sie nicht mehr, aber ich werde schon wieder eine Lösung finden, auch wenn sie bescheuert ist.
das ganze wäre ja nicht für mich :P

wenn jemand programme zum lernen schreiben möchte, wähle ich bewusst immer dieses beispiel, da hier genau die logik notwendig ist, welche für sämtliche komplexe tools notwendig ist =)

zu deiner frage:
beispiel: der user möchte 3 messages senden
  • "hallo" alle 3 sekunden
  • "blubb" alle 5 sekunden
  • "blah" alle 1.235 sekunden
natürlich soll er aber weiterhin die möglichkeit haben beliebig viele weitere messages hinzu zufügen.

als kleiner tip, das ganze kann grafisch schön mit einem einzigen button und einer liste bzw listview umgesetzt werden, wobei ich dir da keine vorschriften machen möchte =)
01/05/2012 23:18 xShizoidx#8
Quote:
Originally Posted by lolkop View Post
das ganze wäre ja nicht für mich :P

wenn jemand programme zum lernen schreiben möchte, wähle ich bewusst immer dieses beispiel, da hier genau die logik notwendig ist, welche für sämtliche komplexe tools notwendig ist =)

zu deiner frage:
beispiel: der user möchte 3 messages senden
  • "hallo" alle 3 sekunden
  • "blubb" alle 5 sekunden
  • "blah" alle 1.235 sekunden
natürlich soll er aber weiterhin die möglichkeit haben beliebig viele weitere messages hinzu zufügen.

als kleiner tip, das ganze kann grafisch schön mit einem einzigen button und einer liste bzw listview umgesetzt werden, wobei ich dir da keine vorschriften machen möchte =)
Werde ich morgen mal schreiben, wird denke ich mal nicht ganz so schwer sein. Danke für den Tipp mit dem Listview, hatte sie selbe Idee nur mit einer Edit Box, sodass er bei mir die Durchläufe zählt und immer in eine neue Zeile schreibt, aber das mit der Liestview sieht viel besser aus. ;)
01/06/2012 01:33 MoepMeep#9
Asynchroner Client und Server ;o
01/06/2012 01:33 FansLave#10
Quote:
Originally Posted by netterwurm8 View Post
F12 kann man nicht verwenden. Stattdessen habe ich einfach mal F9 und F10 genommen. Mit F11 beendest du es wieder.
Code:
HotKeySet("{F9}","_Google")
HotKeySet("{F10}","_Youtube")
HotKeySet("{F11}","_Exit")

while 1
	sleep(100)
WEnd

Func _Google()
	ShellExecute("http://www.google.de/")
EndFunc

Func _Youtube()
	ShellExecute("http://www.youtube.com/")
EndFunc

Func _Exit()
Exit
EndFunc
Sehr nett von dir ;) hast ein Thanks!
01/08/2012 05:46 .iZiM0s.#11
Ein "Mousclicker" wäre nice :)

bin bisher nämlich noch nicht fündig geworden, denn er soll auf Knopfdruck (also auf der Tastatur) Rechtsklicks machen (einfach an der Stelle, wo die Maus sich gerade befindet) und das nur solange man die Taste gedrückt hält.
Mit möglichst kleinen Abständen :)
01/08/2012 12:22 xShizoidx#12
Quote:
Originally Posted by .iZiM0s. View Post
Ein "Mousclicker" wäre nice :)

bin bisher nämlich noch nicht fündig geworden, denn er soll auf Knopfdruck (also auf der Tastatur) Rechtsklicks machen (einfach an der Stelle, wo die Maus sich gerade befindet) und das nur solange man die Taste gedrückt hält.
Mit möglichst kleinen Abständen :)
So?
Code:
HotKeySet("{F2}","_Exit")
#Include <Misc.au3>
$DLLOpen = DllOpen("user32.dll")

while 1
If _IsPressed("70", $DLLOpen) Then
	MouseClick("right")
EndIf
WEnd

Func _Exit()
DllClose($DLLOpen)
EndFunc
@Lolkop : Tut mir leid, ich habe es am Ende nicht ganz geschafft mit dem Timer. Bei einer Nachricht und einer angegeben Zeit einen Timer reinzubauen ist ja kein Problem, aber bei sovielen habe ich es nicht gepackt.

Hier mal die Source, soweit ich war ( Paar Sachen wurden wieder entfernt, da es sonst nicht laufen würde. Ist etwas schlecht und unstrukturiert geschrieben ..
Code:
#Include <Timers.au3>
#Include <File.au3>
#Include <GuiListView.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$GUI = GUICreate("", 626, 450, 192, 124)
GUISetBkColor (0x00FFFF)
$LMain = GUICtrlCreateLabel("Spambot", 232, 8, 125, 47)
GUICtrlSetFont(-1, 28, 400, 0, "Arial Narrow")
GUICtrlSetColor(-2, 0xFFFFFF)
$Spamtexte = GUICtrlCreateLabel("Spamtexte", 8, 80, 81, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-2, 0xFFFFFF)
$ISpam = GUICtrlCreateInput("", 96, 80, 513, 21)
$LTextsend = GUICtrlCreateLabel("Text senden jede", 8, 120, 135, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-2, 0xFFFFFF)
$ISec = GUICtrlCreateInput("", 152, 120, 57, 21)
$LSekunden = GUICtrlCreateLabel("Sekunden", 216, 120, 77, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-2, 0xFFFFFF)
$AddSpam = GUICtrlCreateButton("+", 8, 160, 27, 25)
$ListView = GUICtrlCreateListView("Spamtext                   |Sekunden", 48, 160, 562, 238, BitOR($GUI_SS_DEFAULT_LISTVIEW,$WS_HSCROLL))
$Starten = GUICtrlCreateButton("Starten", 8, 416, 75, 25)
$Beenden = GUICtrlCreateButton("Beenden", 536, 416, 75, 25)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
        Case $AddSpam
If GUICtrlRead($ISec) = "" And GUICtrlRead($ISpam) = "" Then
MsgBox(1,"Einträge fehlen","Sie müssen zuvor erst alle Felder ausfüllen.")
ElseIf GUICtrlRead($ISec) = "" Then
	MsgBox(1,"Eintrag fehlt","Bitte geben sie an, nach wievielen Sekunden der Text jedes Mal gesendet werden soll.")
ElseIf GUICtrlRead($ISpam) = "" Then
	MsgBox(1,"Eintrag fehkt","Bitte geben sie einen beliebigen Text zum Spamen an.")
Else
	_AddItems()
EndIf
        Case $Starten
		$iCount = 0
		$Count = _GUICtrlListView_GetItemCount($ListView)
        $iCount += $Count * 2
		$CountSchleife = 0
		$Timer = TimerInit()
		$i = 1
Do
	; Ab Hier habe ich den anderen Kramms rausgenommen, da ich es total verhauen habe
$aItem = _GUICtrlListView_GetItemTextArray($ListView,$CountSchleife)
$nMsg = GUIGetMsg()
Until $nMsg = $Beenden ; Schleife wird solange wiederholt, bis der Beenden Button gedrückt wurde
	EndSwitch
WEnd
01/08/2012 12:40 lolkop#13
um ein problem mit beliebig vielen ereignissen zu handeln, muss man zwangsweise mit zustandsarrays arbeiten.

am besten du definierst dir arrays für alle listview items, messages, zeiten und timer. das kann durchaus mit einem 4d array erledigt werden. es wäre aber auch möglich das ganze über 4 seperate arrays zu realisieren.
01/08/2012 13:31 xShizoidx#14
Ich versteh nicht ganz wie ich es mit 4 seperaten Arrays umsetzen kann, da es dann ja nicht für unendlich Texte reicht.
Hättest du sonst vielleicht noch eine andere Übung, z.B. ein kleineres Programm aber nicht soetwas wie ein Spambot?
01/08/2012 13:43 lolkop#15
mit "Redim" kannst du ja die größe des arrays immer wieder neu setzen.

Code:
Dim $array[1] ; <- erstellt 1dimensionales array
$array[0] = 'blah' ; <- einziges element mit text besetzen

Redim $array[2] ; <- array vergrößern
$array[1] = 'blubb' ; <- 2tes element mit text besetzen

;$array sieht nun so aus:
;['blah','Blubb']