Alles gute nachträglich Xeno. Ich hoffe du hattest eine schöne ![]()
Beiträge von autoBert
-
-
Hallo alpines,
wenn du das ganze anhand eines Skriptes sehen möchtest, dann schau dir meinen MP3-Player (Link in Signatur) an,
mfg autoBert
-
Schau dir in der Hilfe
[autoit]ClipPut
[/autoit]an,
mfg autoBert
-
Hallo Axel,
dies ist mit einer ListBox (GuiCtrlCreateList) nicht öglich. Nimm einfach eine Listview (GuiCtrlCreateListView) da klappt mehrfach Selektion. Um alle zu arkieren musst du dir halt eine Routine auf einen HotKey oder Button legen,
mfg autoBert
-
Hallo hexpirator.
du überschreibst dir in Zeile 53 die ControlID für das Input, ich denke daran liegt der Fehler (vor allem wenn nichts eingetragen ist, mach es so:
[autoit]Func _execute()
[/autoit][autoit][/autoit][autoit]$Exceldatei = GUICtrlRead($Exceldatei)
[/autoit][autoit][/autoit][autoit]
$iZeilen = GUICtrlRead($Zeilen)
$xls = StringRight($Exceldatei, 3) ;speichert die letzten 3 Zeichen der Variable $Exceldatei in $xls
If $xls = "xls" Then ;Wenn $xls = "xls" dann versuche Exceldatei zu öffnen
$oExcel = _ExcelBookOpen($Exceldatei)
If @error = 1 Then
MsgBox(48, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden") ;Versteht sich von selbst
Return
ElseIf @error = 2 Then
MsgBox(48, "Fehler!", "Die Datei existiert nicht!") ;Versteht sich von selbst
Return
EndIf
Else
MsgBox(48, "Fehler", "Bitte Dateipfad überprüfen", 3)
Return
EndIfFor $i = 1 To $iZeilen ; ich gehe jetzt mal von 10 Sachen aus
[/autoit][autoit][/autoit][autoit]
$Cell = _ExcelReadCell($oExcel, $i, 2) ; erste Spalte in der Exceltabelle
$Read = InetRead("http://www.geizhals.at/deutschland/?in=&fs=" & $Cell, 1) ;Download Internetseite + Zelleninhalt
If @error <> 0 Then
MsgBox(48, "Fehler", "Es ist ein Fehler mit dem Internet aufgetreten")
EndIf
$Read = BinaryToString($Read) ; gibt den HTML Quellcode der Suchseite aus
;-------------------------
$avArray = _StringBetween($Read, "€ ", "</a>") ; gibt String zwischen den angegebenen Strings zurück;_ArrayDisplay($avArray) ; stellt den Inhalt eines Array in einem Fenster dar fürs Debug
[/autoit][autoit][/autoit][autoit];-------------------------
[/autoit]
_ExcelWriteCell($oExcel, $avArray[0], $i, 4) ; schreibt den Preis in die 2 Spalte der Exceldatei $avArray[0] enthält den 1. gefundenen Preis $avArray[1] den 2. usw.
Next
MsgBox(64, "Preisabruf", "Der Preisabruf war erfolgreich", 3)
;falls kein neuer Durchlauf dann hier exit
EndFunc ;==>_executemfg autoBert
-
-
Hä? Hab ich was net mitbekommen? Seit wann gibt es einen Vorwärtspfeil?
Welchen Sinn soll der den ergeben?Gab es seit ich die Hilfe benutze nicht. Am Anfang wenn man viel in der Hilfe liest und schon etwas vergesslich ist könnte es durchaus Sinn machen. In eine Webbrowser kannst du ja auch rückwärts durch besuchte Seiten navigieren und anschliessend wieder vorwärts,
mfg autoBert
-
Hallo XP-User,
da du mit Win7 Probleme hast nehme ich an du benutzt die UDF von Ludevic als Grundlage. Such dir über die SuFu das Skript von BugFix,
mfg autoBert
-
Hallo BlackMirror,
das machst du ebenfalls über
[autoit]GuiCtrlRead
[/autoit]. Beachte dabei:
ZitatBei Checkboxen und Radiobuttons können mehrere Statuse als $GUI_FOCUS und $GUI_CHECKED zurückgegeben werden. So ist z. B. BitAnd(GUICtrlRead($Item),$GUI_CHECKED) zu verwenden um zu sehen ob ein Control markiert ist.
Quelle: dt. Hilfe
[autoit]
in den Zwischenspeicher bekost du es mitClipPut
[/autoit]mfg autoBert
-
Hallo diepfeile,
ZitatAlles anzeigenSwitch...Case...EndSwitch
Führt bedingt Anweisungen aus.
Switch <expression>
Case <value> [To <value>] [,<value> [To <value>] ...]
statement1
...
[Case <value> [To <value>] [,<value> [To <value>] ...]
statement2
...]
[Case Else
statementN
...]
EndSwitchParameter
expression Ein Ausdruck, welcher einen Wert zurückgibt. Der Wert dieses Ausdruckes wird dann mit jedem Fall (case) verglichen, bis eine Übereinstimmung gefunden wurde. Dieser Ausdruck wird für jeden Durchlauf der Switch-Struktur genau ein Mal berechnet.
value To value Der Fall (case) wird ausgeführt, falls der Ausdruck zwischen den beiden Werten liegt. *)
value Der Fall (case) wird ausgeführt, falls der Ausdruck mit dem Wert übereinstimmt.
Quelle: dt. Hilfewobei hier einschliesslich den Werten gilt
mfg autoBert
-
jedoch wollte ich es schon gerne selber machen wenn ich denn nur ein bsp. habe, denn wenn es wer für mich kommplett macht lerne ich ja auch nix für die Zukunft!
nur wenn du gar nicht weiter weist:
Spoiler anzeigen
INIaufbau EK
[Accra]
Aloe=2146
Amber=2511
Amerikanischer Ginseng=822
[Aden]
Aloe=1184
Amber=1434
Amerikanischer Ginseng=2600
[Alexandria]
Aloe=0
Amber=0
Amerikanischer Ginseng=794
[Algier]
Aloe=0
Amber=0
Amerikanischer Ginseng=307
[Amsterdam]
Aloe=0
Amber=0
Amerikanischer Ginseng=512
[Sevilla]
Aloe=0
Amber=0
Amerikanischer Ginseng=0
[Sri Lanka]
Aloe=0
Amber=0
Amerikanischer Ginseng=0Iniaufbau VK
[Accra]
Aloe=2146
Amber=2511
Amerikanischer Ginseng=822
[Aden]
Aloe=1184
Amber=1434
Amerikanischer Ginseng=2600
[Alexandria]
Aloe=0
Amber=0
Amerikanischer Ginseng=794
[Algier]
Aloe=0
Amber=0
Amerikanischer Ginseng=307
[Amsterdam]
Aloe=0
Amber=0
Amerikanischer Ginseng=512
[Sevilla]
Aloe=0
Amber=0
Amerikanischer Ginseng=0
[Sri Lanka]
Aloe=0
Amber=0
Amerikanischer Ginseng=0Spoiler anzeigen
1. Skriptansatz:
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiComboBox.au3>
#include <StaticConstants.au3>
#include <array.au3>Global $aEK, $aVK, $aStadtVon, $aStadtEK, $aStadtVK, $aWare[1][3], $sIniDir = @ScriptDir & "\", $hlblEK, $hlblVK, $hlblRohertrag
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Const $sElect = "bitte auswählen"$hGui = GUICreate("Warenhandel ", 420, 150, 302, 218)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("Einkauf in", 8, 5, 200, 25)
$hcboStadtEK = GUICtrlCreateCombo("", 8, 20, 200, 25)
$aStadtVon = IniReadSectionNames($sIniDir & "EK.ini")
If IsArray($aStadtVon) Then
For $i = 1 To $aStadtVon[0]
GUICtrlSetData($hcboStadtEK, $aStadtVon[$i])
Next
_GUICtrlComboBox_InsertString($hcboStadtEK, $sElect, 0)
_GUICtrlComboBox_SetCurSel($hcboStadtEK, 0)
EndIfGUICtrlCreateLabel("Verkauf in", 218, 5, 200, 25)
[/autoit] [autoit][/autoit] [autoit]
$hcboStadtVK = GUICtrlCreateCombo("", 218, 20, 200, 25)
If IsArray($aStadtVon) Then
For $i = 1 To $aStadtVon[0]
GUICtrlSetData($hcboStadtVK, $aStadtVon[$i])
Next
_GUICtrlComboBox_InsertString($hcboStadtVK, $sElect, 0)
_GUICtrlComboBox_SetCurSel($hcboStadtVK, 0)
EndIfGUICtrlCreateLabel("handelbare Waren", 8, 55, 200, 25)
[/autoit] [autoit][/autoit] [autoit]
$hcboWare = GUICtrlCreateCombo("", 8, 70, 200, 25)
readIniEKandVK("", "")$hlblEK = GUICtrlCreateLabel("EK-Preis: ", 213, 45, 200, 20)
[/autoit] [autoit][/autoit] [autoit]
$hlblVK = GUICtrlCreateLabel("VK-Preis. ", 213, 65, 200, 20)
$hlblRohertrag = GUICtrlCreateLabel("Diff.: ", 213, 85, 200, 20)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $hcboStadtEK, $hcboStadtVK
readIniEKandVK(GUICtrlRead($hcboStadtEK), GUICtrlRead($hcboStadtVK))
Case $hcboWare
_ArrayDisplay($aWare)
$i = _ArraySearch($aWare, GUICtrlRead($hcboWare), 1)
ConsoleWrite($i & @CRLF)
GUICtrlSetData($hlblEK, "EK-Preis: " & $aWare[$i][1])
GUICtrlSetData($hlblVK, "VK-Preis: " & $aWare[$i][2])
GUICtrlSetData($hlblRohertrag, "Diff.: " & $aWare[$i][2] - $aWare[$i][1])EndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
WEndFunc readIniEKandVK($sStadtEK, $sStadtVK)
[/autoit] [autoit][/autoit] [autoit]
$aStadtEK = IniReadSection($sIniDir & "\EK.INI", $sStadtEK)
$aStadtVK = IniReadSection($sIniDir & "\VK.INI", $sStadtVK)
;_ArrayDisplay($aStadtVK)
If IsArray($aStadtEK) And IsArray($aStadtVK) Then
For $i = 1 To $aStadtEK[0][0]
If $i = 1 Then
GUICtrlSetData($hcboWare, "", "")
GUICtrlSetData($hlblEK, "EK-Preis: ")
GUICtrlSetData($hlblVK, "VK-Preis: ")
GUICtrlSetData($hlblRohertrag, "Diff.: ")
ReDim $aWare[1][3]
$aWare[0][0] = 0
EndIf
If $aStadtEK[$i][1] <> 0 Then
$nVK = IniRead($sIniDir & "\VK.ini", $sStadtVK, $aStadtVK[$i][0], 0)
ConsoleWrite($aStadtEK[$i][1] & @TAB & $nVK & @CRLF)
If $nVK <> 0 Then
$aWare[0][0] += 1
$j = $aWare[0][0]
ConsoleWrite("Elemente: " & $j & @CRLF)
ReDim $aWare[$j + 1][3]
$aWare[$j][0] = $aStadtEK[$i][0]
$aWare[$j][1] = $aStadtEK[$i][1]
$aWare[$j][2] = $nVK
GUICtrlSetData($hcboWare, $aStadtEK[$i][0])
EndIf
EndIf
Next
EndIf
_GUICtrlComboBox_InsertString($hcboWare, $sElect, 0)
_GUICtrlComboBox_SetCurSel($hcboWare, 0)
EndFunc ;==>readIniEKandVK#cs
[/autoit] [autoit][/autoit] [autoit]#ce
[/autoit]dieser ist nur rudimentär gelöst damit man die Technik erkennen kann
mfg autoBert
-
Sind denn die Ein- und Verkaufspriese überhaupt fix. Ich könnte mir vorstellen das auch in einem Spiel die Preise Schwankungen unterliegen, sei es wegen einer Missernte oder nach einem Schiffsverlust.
[autoit]
Wenn sie fix sind kannst du ja Funktionen aus der Excel.au3 verwenden, z.B.:_ExcelReadSheetToArray
[/autoit]. Auch solltest du dir überlegen dies evtl. in https://autoit.de/index.php?page=Board&boardID=51 zu posten.
mfg autoBert
-
Es kann auch sein, dass InetGet schon reicht um dies zu realiesieren. Aber egal mit was du es lösen willst ohne den entsprechenden Link kann dir keiner effektiv helfen,
mfg autoBert
-
ich habe zwar nur den Eröffnungsbeitrag des Themas gelesen und auch gesehen dass einig Profis aktiv waren. Jetzt meine Frage hätte es nicht gereicht den Fehler im Skript GuiCtrlRead($inputBoxAnswer) auszubessern?
Also so:
[autoit]MsgBox(0,"","Angabe aus der Inputbox : " & $sinputboxanswer,2)
[/autoit] -
Benutze einfach die Variable:
[autoit]ShellExecute($line2)
[/autoit]GuiCtrlRead ist zum Lesen von Daten aus Gui-Controls in eine Variable, du hast aber schon eine Variable mit dem von dir gewünschten Inhalt.
Dass sich die Datei nicht herunterladen lässt liegt vielleicht daran dass mediafire den AutoIt-Useragenten gesperrt hat. Gib einen korrekten Link an, dann teste ich dies. Meist hilft es den Useragenten zu ändern:
[autoit]HttpSetUserAgent("Mein Useragent")
[/autoit]als Agent trägst du am besten die Werte des Useragenten deines Browsers ein. Zu finden in Hilfe => Über ...
mfg autoBert
-
Dafür eignet sich:
ZitatDas besondere Array $CmdLine wird mit den, deinem AutoIt-Skript übergebenen, Kommandozeilenparametern initialisiert. Der Skriptname wird dabei nicht als Parameter aufgefasst; den kann man über @ScriptName herausfinden. Ein Parameter, der Leerzeichen beinhaltet, muss von "doppelten Anführungszeichen" umgeben sein. Kompilierte Skripte akzeptieren Kommandozeilenparameter genauso.
$CmdLine[0] ist die Anzahl der Parameter
$CmdLine[1] ist Parameter 1
$CmdLine[2] ist Parameter 2 etc.
...
$CmdLine[$CmdLine[0]] ist einer der Wege, um den letzten Parameter auszulesen... -
@Xentus und BLinz: wie im Eingangspost beschrieben kann man mit einer LV schönere Downloader schreiben, ein sehr schöner von Oscar findet ihr hier: https://autoit.de/index.php?page…hlight=Download
mfg autoBert
-
Hallo Xenzus,
du erstellst einen Ordner. Danach änderst du die Dateiberechtigungen auf 644 dann darfst derBesitzer (du) alles, alle anderen aber nur lesen, beides machst du mit einem FTP-Client z.B.: FileZilla.
mfg autoBert
-
Sag mal willst du uns für blöd verkaufen? Genau das hast hier schon gepostet bekommen: https://autoit.de/index.php?page…7912#post237912
Sieh es so, besser er hat Alzheimer als du,mfg autoBert
-
Also ich kann mich Blume nur anschließen. Prima für Anfänger!
Du musst es noch in deine Signatur aufnehmen
Passt nicht mehr in die Signatur (bin ja wieder normaler User)