Mehrere Links durch Inputbox Öffnen!

09/28/2013 22:19 GoDJGo#1
Ich habe schon vieles versucht aber ich verzweifle einfach!

Ich will das die Zahl die in der Input2 steht dann sooft den Link von Input 1 zu öffnen! Aber auch mein letzter versuch scheiterte! Könnt ihr mir vllt. ein bisschen helfen?
09/28/2013 22:31 KDeluxe#2
GUICtrlRead() und For → siehe Hilfe
09/28/2013 22:39 alpines#3
Kombiniere Strings lieber mit einem & statt + da AutoIt das so sieht:
"1" + "2" = 3, "1" & "2" = "12"

$Input gibt dir das Handle des Inputs wieder nicht das was in dem Control drinne steht
Code:
$sText = GUICtrlRead($Input2)
liest den Text aus dem Control aus.

Du kannst For-Schleifen zum wiederholen benutzen, damit sparst du viele Zeilen an Code und es läuft mit weniger Fehlern:
Code:
$iRepeat = GUICtrlRead($Input2)

For $i = 0 To $iRepeat
	;...
Next
Du könntest auch While/WEnd - Do/Until Schleifen nehmen, aber dann musst du eine Variable initialisieren und sie manuell um 1 Inkrementen.

Außerdem ist die Version mit _IE schlecht wenn du (was ich glaube?) Views erzielen willst, musst du gucken ob der Service 1. auf die Ip achtet oder wenn du einfach nur Current Viewers in die Höhe treiben willst, dann mach das so das die im Hintergrund gestartet werden und nicht zu sehen sind.

Desweiteren: Warum speicherst du jedes Objekt vom IE in eine Variable (überschreibst die vorherige), obwohl du nicht damit weiterarbeitest? Das ist einfach nur unnötig.

Wenn du später mit den _IECreates auf eine andere Seite willst, dann nimm einen Array der Größe GUICtrlRead($Input2) und pack eine For-Schleife drum, dann kannst du alle auf einen Link navigieren bzw. die IEs erstellen, spart extrem viel an Zeilen.
09/28/2013 22:54 KDeluxe#4
Quote:
Originally Posted by alpines View Post
Kombiniere Strings lieber mit einem & statt + da AutoIt das so sieht:
"1" + "2" = 3, "1" & "2" = "3"
"1" + "2" = 3
"a" + "b" = 0
"5a" + "6b" = 11
"1" & "2" = 12

Strings kann man generell nicht mit einem + ketten.
09/28/2013 22:56 alpines#5
Deshalb sag ich doch das man & verwenden soll, + kann man verwenden aber führt zu Fehlern.
09/28/2013 23:11 KDeluxe#6
Dein Beispiel ist falsch. Ersteres ist richtig, letzteres nicht. "1" & "2" ergibt nicht "3" sondern "12".
AutoIt hat keine sichere Datentypen. Eine Addition von "1" + "2" ist nicht anderes als 1 + 2, also eine normale Addition von Zahlen. Für String kann man generell ein + verwenden.
Ist im String allerdings ein Zeichen vorhanden welches keiner Ziffer entspricht wird die Zahl bis zu diesem Zeichen verwenden. Dumm beschrieben, deshalb ein einfaches Beispiel: "a1" + "b2" = 0; "1a" + "2b" = 3
Zu einem Fehler führt es genau genommen also nicht, es wird einfach nur ein unerwünschtes Ergebnis erzielt.
09/28/2013 23:26 alpines#7
Da hab ich mich wohl vertippt, ich meinte 12.
09/29/2013 09:13 GoDJGo#8
Danke, nur leider komm ich nicht ganz mit zurecht, gibts auch ne ganz krasse nooberklärung?
09/29/2013 10:53 de4df1sh#9
Vielleicht hilft dir das ja:
Code:
GUICreate ("Beispiel", 100,100, -1, -1)
$Input1 = GUICtrlCreateInput ("", 10,40, 80, 20)
$Button1 = GUICtrlCreateButton ("Los!", 30, 70, 40, 20)
GUISetState ()
While 1
	$Msg = GUIGetMsg ()
	If $Msg = $Button1 Then
		$InputText = GUICtrlRead ($Input1) ;Gibt den Text des Inputs zurück
		MsgBox (0,"",$InputText)
	ElseIf $Msg = -3 Then
		Exit
	EndIf

WEnd
09/29/2013 11:07 alpines#10
Also folgendes, da AutoIt keine Typdeklarierung von Variablen hat (sondern nur Global / Local usw.) gibt es einige Fehler was das Handling mit Variablen angeht.

So wären z.B. "1" + "2" = "3" und "1" & "2" = "12", deshalb musst du aufpassen das du immer & verwendest sofern du nicht rechnen möchtest.
09/29/2013 11:09 GoDJGo#11
Mich interssiert ja im wesentliche nur, wie ich es schaffe das der IE sooft geöffnet wird wie es in der Inputbox steht!
09/29/2013 11:34 alpines#12
Einfachstes Beispiel wenn du schon nicht lesen kannst:
Code:
#include <IE.au3>

Local $sChannelName = "irgendeinchannelnamedernichtzutrifft", $iAnzahl = 125000

For $i = 0 To $iAnzahl
	_IECreate("www.twitch.tv/" & $sChannelName)
Next

;... Wenn du willst das der immer wartet bevor der das nächste öffnet ...

Local $sChannelName = "irgendeinchannelnamedernichtzutrifft", $iAnzahl = 125000

For $i = 0 To $iAnzahl
	$oIE = _IECreate("www.twitch.tv/" & $sChannelName)
	_IELoadWait($oIE)
Next
09/29/2013 12:26 GoDJGo#13
Das funktioniert soweit! Aber jetzt ist es so das er mein Input 2 (viewerzahl) als Name nutzt und input 1 komplett missachtet wird ( er öffnet unendlich Ie's)

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#region ### START Koda GUI section ### Form=c:\users\manumöller\downloads\form1.kxf
$Form1_1 = GUICreate("Twitch.tv Bot", 288, 83, 192, 124)
GUISetIcon("C:\Users\Manumöller\Downloads\twitchtv.ico", -1)
$Label1 = GUICtrlCreateLabel("Channelname:", 8, 8, 72, 17)
$Label2 = GUICtrlCreateLabel("Viewer", 40, 40, 36, 17)
$Input1 = GUICtrlCreateInput("Name", 80, 8, 97, 21)
$Input2 = GUICtrlCreateInput("Count", 80, 40, 97, 21)
$Button1 = GUICtrlCreateButton("Run", 184, 16, 75, 25)
$Label3 = GUICtrlCreateLabel("Max. 100 Viewer or Error!", 80, 64, 123, 17)
GUISetState(@SW_SHOW)
Local $sChannelName = $Input1, $iAnzahl = $Input2

#endregion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1

For $i = 0 To $iAnzahl
	$oIE = _IECreate("www.twitch.tv/" & $sChannelName, 0, 1, 1)
Next


	EndSwitch
WEnd
09/29/2013 12:36 alpines#14
Du sollst erst die Sprache lernen bevor du dich mit GUIs rumschlägst, du kannst anscheinend auch gar nichts, deshalb verstehst du es auch nicht.

Du kannst nicht jeden Code einfach Copy&Pasten, das wird nicht funktionieren!

Wenn du diesen Thread aufmerksam mitverfolgt hättest, dann hättest du gesehen das die Lösung schon offensichtlich genug gepostet wurde!
Du sollst verdammt nochmal nicht das Handle übergeben sondern den Inhalt!

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

$Form1_1 = GUICreate("Twitch.tv Bot", 288, 83, 192, 124)
GUISetIcon("C:\Users\Manumöller\Downloads\twitchtv.ico", -1)
$Label1 = GUICtrlCreateLabel("Channelname:", 8, 8, 72, 17)
$Label2 = GUICtrlCreateLabel("Viewer", 40, 40, 36, 17)
$Input1 = GUICtrlCreateInput("Name", 80, 8, 97, 21)
$Input2 = GUICtrlCreateInput("Count", 80, 40, 97, 21)
$Button1 = GUICtrlCreateButton("Run", 184, 16, 75, 25)
$Label3 = GUICtrlCreateLabel("Max. 100 Viewer or Error!", 80, 64, 123, 17)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $Button1
			$iCount = GUICtrlRead($Input2)
			$sName = GUICtrlRead($Input1)

			If GUICtrlRead($iCount) > 100 Then
				MsgBox(48, "Error", "Too many viewers.")
				Exit
			ElseIf GUICtrlRead($Input1) = "" or GUICtrlRead($Input2) = "" Then
				MsgBox(48, "Error", "Incorrect name or viewer amount.")
				Exit
			EndIf

			For $i = 0 To $iCount
				_IECreate("www.twitch.tv/" & $sName, 0, 0, 1)
			Next
	EndSwitch
WEnd
Desweiteren werden die IEs im Hintergrund geöffnet, d.h. du floodest den RAM von den Leuten, das wird zur negativer Resonanz führen wenn du den weitergibst.

Bevor du anfängst mit AutoIt was zu machen setz dich gefälligst mit Variablen auseinander und dem ganzen Grundgerüst, davon fehlt einfach alles, in anderen Worten: Deine Programmierung ist erbärmlich schlecht und das hat nichts damit zu tun das du (vielleicht) Anfänger bist.
09/30/2013 21:38 c0w#15
ums für dich vielleicht nochmal verständlich zu erklären mit dem handle von dem alpine spricht (bei dir in $iAnzahl = $Input2 übergeben) sagst du dass in in ianzahl das ganze fenster quasi drin ist, sieh es so dass das fenster als objekt in der variable gespeichert wird.

mit dem GUICtrlRead($Input2) liest er aber aus was du eingetippt hast.