1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. sklaim

Beiträge von sklaim

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 1. Januar 2014 um 23:27
    Zitat

    "C:\Users\Sascha\Documents\AutoIt Programme\BitCoin Gen\BitCoin Gen.au3" (10) : ==> Subscript used on non-accessible variable.:
    Return $asResult[0]
    Return $asResult^ ERROR

    [autoit]

    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "Test", _GetCurrentStats("EUR", "symbol"))

    [/autoit][autoit][/autoit][autoit]

    ;Get the current prices etc.
    Func _GetCurrentStats($sCurrency, $sState) ;$state: {last|buy|sell|24h|symbol}
    $sJSON = BinaryToString(InetRead("http://blockchain.info/ticker", 1), 4)
    $asResult = _StringBetween($sJSON, $sCurrency, "}")
    $asResult = _StringBetween($asResult[0], $sState & '" : ', ",")
    Return $asResult[0]
    EndFunc

    [/autoit]

    Anscheinend gibt der immernoch 0 zurück :/.

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 1. Januar 2014 um 22:29

    Funktioniert! Mega Danke. Allerdings kann ich mir nicht das Symbol ausgeben lassen, dann kommt ein Error, ist aber wahrscheinlich auch nicht so wichtig :). Dennoch würde mich interessieren woran das liegt. Ich könnte mir vorstellen es liegt daran das BinaryToString() das ja in UTF-8 umwandelt und da gibts die Zeichen nicht oder? Ich kann mich auch total irren :D

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 1. Januar 2014 um 18:21

    Okay, das konvertiert mir jetzt aber nur einen gewünschten Betrag in BitCoin, auch cool, aber wie lese ich den aus dem ertsen Link auf der Seite sage ich mal den "last" (letzten) Kurs in EUR aus? Weil der obere Link gibt mir ja nur die Liste aus, also das ganze Schema da. Gibt es eine einfachere oder andere Methode als _StringBetween?


    Edit:
    _StringBetween gibt immer nur 0 zurück:

    [autoit]

    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "Test", _GetCurrentStats("EUR", "last"))

    [/autoit][autoit][/autoit][autoit]

    ;Get the current prices etc.
    Func _GetCurrentStats($currency, $state) ;$state: {last|buy|sell|24h|symbol}
    $source = BinaryToString(InetRead("http://blockchain.info/ticker", 1 + 16))

    [/autoit][autoit][/autoit][autoit]

    Return _StringBetween($source, $currency&'" : {"last" : ', ', "buy"')
    EndFunc

    [/autoit]
  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 1. Januar 2014 um 17:48

    Ja danke. Das Problem ist nur das ich keine Ahnung von PHP/HTTP und dem ganzen Kram habe :). Ein bissel HTML kann ich aber nicht so gut als das ich das was du oben gepostet hast gekonnt hätte :).

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 31. Dezember 2013 um 22:49

    Ich hoffe du denkst nicht das ich zu faul bin zum suchen, ich weiß einfach noch nicht genau wonach ich immer suchen soll, deswegen find ich wahrscheinlich auch nichts :). Deswegen möchte ich jetzt mal ausdrücklich sagen das ich euch (besonders misterspeed) dankbar bin!


    Nun zu deinem vorherigen Post:

    Wenn ich hier drauf gehe https://blockchain.info/de/api/exchange_rates_api , steht unten das ich "x" ersetzen soll mit den parametern. Ich verstehe noch nicht ganz wie das gehen soll. Da ist kein "x".^^
    Und wie kann ich das jetzt in AutoIt einsetzen? Also ich denke mal wieder mit Inetread() oder? und dann halt der Link oben so angepasst das ich da direkt die Währung und den gewünschten Kurs angebe. Nur das weiß ich ja noch nicht wie es geht :D.

    Vielen Dank! :D

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 31. Dezember 2013 um 15:57

    Darter:
    Danke! Du warst bis jetzt (nicht böse gemeint) der Einzige der mir nach der ersten Antwort richtig geantwortet hat! :)

    Ich war leider heute arbeiten, deswegen bin ich erst jetzt online.

    Vielleicht könntest du mir 2 Beispiele mal erklären mit den _IE Funktionen, weil das mit dem TCP Kram... naja.. sagen wir mal nur: "BAHNHOF".

    1. Beispiel:
    Den aktuellen Börsenkurs abfragen auf folgender Seite: http://markets.blockchain.info/markets/mtgox/EUR (rechts oben die große Zahl).

    2. Beispiel:
    Im Hintergrund auf dieser Seite einloggen: https://blockchain.info/de/wallet/login wobei der Benutzer GLEICHZEITIG am PC arbeiten kann. Anschließend soll das Fenster sichtbar gemacht werden (also so das man bereits eingeloggt ist)

    Wenn du mir das mit Code erklären kannst, dann bin ich schonmal ein mächtiges Stück weiter :).


    Ps: An alle die das lesen aber mit denen ich nix zu tun habe oder die ich heute nicht mehr spreche: Guten Rutsch ins neue Jahr! :party:

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 30. Dezember 2013 um 23:12

    Tut mir leid, mir wurde gerade nur chip's Antwort angezeigt :D.

    Also ehrlich gesagt sind die IE Funktionen *Müll*. Bringt einfach nix.

    @PuReIroNie Meine Frage bezieht sich aber leider nicht nur auf Google sondern allgemein :) Und da geht das nicht immer so einfach. Trotzdem danke!

    alpines Das interessiert mich jetzt, wie genau würde das denn grob gehen?

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 30. Dezember 2013 um 23:04

    Ja danke, aber das kann ich schon. Das Problem ist wenn es nicht sichtbar ist funktioniert Send() und so nicht mehr. Also bringt es mir rein gar nix^^...

  • Webseiten ansprechen im Hintergrund

    • sklaim
    • 30. Dezember 2013 um 22:50

    Hallo! Nun hab ich schon wieder ein Problem, diesmal aber etwas komplexer :).

    Ich habe jetzt gefühlte 20 Stunden im kompletten www gesucht und finde einfach nichts, wirklich gar nichts, brauchbares.

    Mein Problem lässt sich anhand eines Beispiels erklären:

    Ich möchte http://www.google.de/ im Hintergrund, also "unsichtbar" aufrufen. Dabei ist es mir vollkommen wurscht welcher Browser dafür zuständig ist. Dann möchte ich die "Suchzeile" ansprechen, also fokussieren, um dann einen Text hineinzuschreiben. Anschließend soll auf den Button geklickt werden zum suchen.

    Was ich bis jetzt kann:
    - Ich schaffe es ein sichtbares Fenster zu öffnen, bei dem die einzelnen Inputs etc. angesprochen werden.
    - Ich kann einen Text senden mithilfe des Send() Befehls.
    - Ich kann auf den Button klicken.

    Problem:
    - Das ganze funktioniert nicht mit einem unsichtbaren Fenster
    - Der Benutzer kann währenddessen nichts machen, da die Felder immer fokussiert sein müssen damit der Send() Befehl an die richtige Stelle geht
    - Auf dynamischen Seiten kann ich die einzelnen Inputs, Buttons etc. erst gar nicht ansprechen, bzw. fokussieren. Auch wenn ich die ID kenne...

    Und desweiteren kriege ich es einfach nicht hin mir simple Informationen von Webseiten auszulesen. Es muss doch irgendwie möglich sein zum Beispiel den Börsenkurs eines Unternehmens oder so mithilfe bestimmter Webseiten einfach auslesen zu können. Ich verstehe einfach nicht wie das gehen soll...

    Ich bin für jede Hilfe dankbar. Falls ich etwas nicht klar genug dargestellt habe schreibt es einfach. Im Wesentlichen habe ich mehrere Probleme wie man sieht :). Ich bin einfach zu verzweifelt gerade, hab zu lange gegoogelt :S .

  • Automatisierte Installation / Updates

    • sklaim
    • 30. Dezember 2013 um 18:05

    Okay klappt, danke :)

    Kann als [gelöst] markiert werden :). Vielen Dank an misterspeed!!!!!!

  • Automatisierte Installation / Updates

    • sklaim
    • 30. Dezember 2013 um 13:42

    Wow, echt nett von dir. So sollte es echt funktionieren. Man kann ja die ini einfach in nen Temp Ordner von Windows packen und dann noch eine Funktion einbauen die einem die ini auf den Desktop kopiert (zur Sicherung).

    Der Fehler tritt auf wenn ich über SciTe auf kompilieren gehe und dort alles einstelle. Danach kommt ein kleines Fenster mit Ladebalken, das aber nach der Hälfte abbricht und dann kommt halt diese Fehlermeldung in der Konsole von SciTe.

  • Automatisierte Installation / Updates

    • sklaim
    • 29. Dezember 2013 um 14:53

    Also ich habe das mit der "leisen" Installation nun geschafft. Allerdings verwende ich momentan eine .ini Datei um darin folgendes zu speichern:
    1. Den Pfad zum Setup
    2. Die Parameter um die Installation leise auszuführen

    Wie kann ich das umsetzten, das man selbst im Programm andere Programme hinzufügen kann, ohne extra so eine Datei anlegen zu müssen?

    Und wie kriege ich es hin, das ich bei der Combo keine Einträge eingebe sondern ein Array, wobei jedes Feld für einen Eintrag steht?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=AutoInstaller.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\sascha\documents\autoit programme\autoinstaller\hauptfenster.kxf
    $Form1 = GUICreate("AutoInstaller", 201, 162, -1, -1)
    $Combo1 = GUICtrlCreateCombo("", 8, 8, 185, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL,$CBS_SORT))
    GUICtrlSetData(-1, "Mozilla Firefox|Google Chrome")
    $Button1 = GUICtrlCreateButton("Installieren", 8, 32, 185, 25)
    $Progress1 = GUICtrlCreateProgress(8, 136, 185, 17)
    $Button2 = GUICtrlCreateButton("Setup starten", 8, 56, 185, 25)
    $Button3 = GUICtrlCreateButton("Auf Updates prüfen", 8, 80, 185, 25)
    $Label1 = GUICtrlCreateLabel("Status:", 8, 115, 37, 17)
    $Label2 = GUICtrlCreateLabel("Fertig!", 48, 115, 150, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Global $wert = ""

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo1
    $wert = GUICtrlRead($Combo1)
    Case $Button1
    If $wert = "" Then
    MsgBox(262144, "Fehler", "Bite wählen Sie ein Programm aus der Liste aus um dieses installieren zu können!")
    Else
    GUICtrlSetData($Label2, "Initialisiere Setup...")
    GUICtrlSetData($Progress1, 33)
    $pfad = IniRead("data.ini", $wert, "setup", "")
    $parameter = IniRead("data.ini", $wert, "parameter", "")
    GUICtrlSetData($Label2, "Installiere...")
    GUICtrlSetData($Progress1, 66)

    [/autoit] [autoit][/autoit] [autoit]

    $prozess = ShellExecuteWait($pfad, $parameter)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($Label2, "Erfolgreich installiert!")
    GUICtrlSetData($Progress1, 100)
    Sleep(3000)
    GUICtrlSetData($Label2, "Fertig!")
    GUICtrlSetData($Progress1, 0)
    EndIf
    Case $Button2
    If $wert = "" Then
    MsgBox(262144, "Fehler", "Bite wählen Sie ein Programm aus der Liste aus um dieses installieren zu können!")
    Else
    $pfad = IniRead("data.ini", $wert, "setup", "")
    ShellExecute($pfad)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    EDIT: Ich kriege die Datei auch nicht exportiert, denn es tritt folgender Fehler auf: "Error: Binary integrity can't be verified."
    Jemand eine Idee wie man das löst?

  • Automatisierte Installation / Updates

    • sklaim
    • 28. Dezember 2013 um 20:13

    Vielen Dank für die ausführliche Erklärung. Ich werde es mal austesten und ggf. weitere Fragen stellen. Ich denke aber mal das du mir schon ziemlich stark geholfen hast :).

    Ja du hast recht, das Ganze ist aufwendig. Aber für den Verwendungszweck für den ich das brauche ist das okay :) Da lohnt es sich auch wenn man das Programm jede Woche updaten muss.

    Danke!

  • Automatisierte Installation / Updates

    • sklaim
    • 28. Dezember 2013 um 17:14

    Vielen Dank schonmal für die schnele Antwort!

    Als Beispiel kannst du ruhig die Installation von dem Link nehmen, also WinZip.

    Zu 1: Könntest du mir eventuell anhand eines Beispiels erklären (z.B. WinZip) wie die control Funktionen funktionieren? Denk dir einfach du redest mit einem totalen Neuling.

    Zu 2: Ich habe mich wohl nicht ganz ausformuliert. Ich möchte keinen Universal-Updater machen sondern nur für spezielle Programme. D.h. wenn ich den Benutzer auswählen lasse das WinZip nach Updates überprüft werden soll und wenn es eine neuere Version gibt soll diese installiert werden, dann soll das explizit für WinZip gemacht werden,

    Sonst: Die winSetState Funktion, wie wende ich die auf Fenster an die bereits existieren (hier z.B. auch wieder WinZip).


    Danke, danke und danke trotzdem! :)

  • Automatisierte Installation / Updates

    • sklaim
    • 28. Dezember 2013 um 16:12

    Hallo Leute!
    Erstmal ein dickes HALLO, denn ich bin neu :D.

    Nun habe ich direkt eine bzw. zwei Fragen. (Ich bin wirklich unerfahren mit AutoIt, lerne aber normalerweise ziemlich schnell.)

    Folgende Situation: Ich möchte ein Tool erstellen das mehrere Programme mit nur einem Klick komplett selbstständig installiert. Dazu soll auch or jeder Installation auf Updates geprüft werden. Das ganze soll aber im HINTERGRUND laufen, also nur mit einer Statusanzeige und ohne das der Benutzer vor dem PC ales sieht.
    Ich betone ausdrücklich das dieses Tool nicht zum Mißbrauch gedacht ist und auch nie (zumindest nicht mit meiner Erlaubnis) dazu verwendet wird!

    1. Meine "Hauptfrage" ist eigentlich wie ich es hinkriege ein Programm zu installieren ohne das der Benutzer alles auf dem bildschirm mitverfolgen muss, also im "Hintergrund". Dabei wäre es auch schön wenn man nicht jeden Tastendruck bei den einzelnen Installern abschicken muss, sowie hier erklärt: http://translation.autoit.de/onlinehilfe/tu…nzip/winzip.htm.
    Wenn es nicht anders geht, dann ist das halt so :D.

    2. Wie kann ich ein Programm auf Updates überprüfen und dann eventuell erneuern. Die Frage bezieht sich sowohl auf bereits installierte Programme als auch auf die Installer.

    Ich bedanke mich schonmal im Voraus für eure Mühe mir zu antworten :D.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™