Beiträge von I30R6

    Code
    Global $vpn = "Netherlands"
    $F2 = _OpenVM()
    Func _OpenVM()
    Run("C:\Program Files\VMware\VMware Workstation\vmware.exe ""C:\Users\...\Documents\Virtual Machines\Netherlands VM.vmx""")
    EndFunc




    Anstelle von Netherlands soll die Variable $vpn mit anschließendem Leerzeichen eingefügt werden.


    Code
    MsgBox (0, "Beispiel", $vpn & " VM.vmx")


    Kann mir jemand kurz zeigen wie das geschrieben werden muss, also wo und wie viele Anführungszeichen ich setzen muss?


    MfG I30R6

    Hi,


    Eine txt. Datei dessen Inhalt folgerndermaßen Aussieht


    ______________
    Test Test Test
    Test Test Test
    Test Test Test
    ______________


    soll ausgelesen werden, zudem sollen alle "Leerzeichen" und "Enter" eingaben getilgt werden.


    also wenn ich den Text irgendwo wieder reinkopiere solle er wie folgt aussehen.


    ____________________________________
    TestTestTestTestTestTestTestTestTest
    ____________________________________


    Kann mir jemand ne Lösung nennen?


    Code
    $Ans = FileRead("C:\Program Files\ Test.txt")
    ClipPut($Ans)
    $sData = ClipGet()
    MsgBox($MB_SYSTEMMODAL, "", "The following data is now stored in the clipboard: " & @CRLF & $sData, 4)



    MfG I30R6

    Danke für eure Ratschläge... peinlicherweise funtkionierte die Schleife aber anscheinend die ganze Zeit, es folgt leiglich ein Scriptabschnitt im Anschluss welcher der Schleife sehr ähnlich ist und das habe ich im Eifer des Gefechts nicht auseinander halten können.


    Ich habe trotzdem die Syntax etwas verbessert und die Eingabe <= durch >= korrigiert.


    Da ich jetzt weiß wo der Fehler lag, habe ich das Script entsprechend angepasst.



    Func _Start()


    $ML = 0
    $MG = 0
    Do


    MouseClick ("left", 676, 287, 1, 100) ;Mouseklick auf "Button"
    MouseClick ("left", 675, 454, 1, 100) ;Mouseklich auf "Button"
    Sleep (2000)


    $pxs = PixelSearch (1153, 700, 1221, 716, 0xE34747)


    If IsArray($pxs) Then
    $MG+=10
    MsgBox (0, "BESTÄTIGUNG", "If Is Array", 5)
    Mouseclick ("left", 584, 285, 2, 100) ;Mouseklick auf "Button"
    Send ("0.00000005")
    Else
    $ML+=1
    MsgBox (0, "BESTÄTIGUNG", "Else", 5)
    EndIf


    Until $MG >=10 or $ML >=10
    If $ML >=10 then Exit


    EndFunc



    Scheint auf Anhieb zu funktionieren, weswegen ich noch ein wenig ungläubig bin... mal abwarten.



    Bezüglich der Fragen bzw Spekulationen zum Hintergrund des Scripts
    __________________________________________________________
    Das Ganze ist nur ein Ausschnitt aus einem Script mit dem ich Abläufe auf meinem PC automatisieren will, vorweigend Bilder sortieren und filtern. Aus dem Zusammenhang gerissen sieht es aber wirklich wie ein Spielebot aus ;) bzw. einige Elemente entspringen ursprünglich auch Anleitungen aus dem Netz die mit Spielebots im zusammenhang stehen. :P

    Komme nicht weiter und würde mich über Hilfe sehr freuen. :)



    Func _Start()


    $MG = 0
    Do


    MouseClick ("left", 676, 287, 1, 100) ;Mouseklick auf "Button"
    MouseClick ("left", 675, 454, 1, 100) ;Mouseklich auf "Button"
    Sleep (2000)


    $pxs = PixelSearch (1153, 700, 1221, 716, 0xE34747)


    If IsArray($pxs) Then
    $MG + 10
    MsgBox (0, "BESTÄTIGUNG", "If Is Array", 5)
    Mouseclick ("left", 584, 285, 2, 100) ;Mouseklich auf "Button"
    Send ("0.00000005")
    Else
    $MG + 1
    MsgBox (0, "BESTÄTIGUNG", "Else", 5)
    EndIf


    Until $MG <= 10
    EndFunc



    Die Schleife soll enden wenn $MG den Wert 10 erreicht hat.



    Entweder:


    1. Wenn er durch den Pixelsearch Befehl die Farbe (0xE34747) gefunden hat soll er $MG mit 10 addieren, wodurch die Schleife beendet wird.


    2. Wenn er durch den Pixelsearch Befehl die Farbe (0xE34747) nicht gefunden hat, soll er $MG mit 1 addieren, die Schleife wiederholen und bei jeder Wiederholung $MG jeweils erneut mit 1 addieren, bis $MG auf diesem Weg 10 erreicht hat oder zwischenzeitig die Farbe (0xE34747) gefunden wurde.
    _____________________________________________________


    1. Funktioniert prima...


    2. Funktioniert leider nicht, selbst wenn ich $MG + 10 befehle, wird das nicht registriert und die Schleife läuft endlos weiter bis die Farbe (0xE34747) irgendwann gefunden wurde.



    Wo liegt das Problem? Ich komme irgendwie nicht drauf... ?(

    Hi,


    Mein Script öfffnet eine html.datei, innerhalb der ich meine Ordnerverzeichnisse durchsuchen kann.


    #include <IE.au3>
    #RequireAdmin


    Global $CS = "file:///C:/Program%20Files/Beispiel.html"
    Global $CP = "C:\Users\...\Desktop\Ordner\Beispiel.jpg"



    $oIE = _IECreate ($CS, 0, 1)
    $oDiv = _IEGetObjByName ($oIE, "pict")
    _IEAction ($oDiv, "click") ;Den "Durchsuchen" Button innerhalb der html.Datei anklicken
    MouseClick ("left", 295, 225, 1, 50) ;Der MouseClick Befehl wird erst ausgeführt wenn das "Datei zum Hochladen auswählen" Fenster manuel geschlossen wurde


    ;_______________Nutzlos________________________________________________
    ;$Win = "Datei zum Hochladen auswählen"
    ;WinActivate ($Win)
    ;ControlFocus ( $Win, "", "[CLASS:ComboBox; INSTANCE:1]")
    ;ControlCommand ( $Win, "", "[CLASS:ComboBox; INSTANCE:1]", "AddString", 'string')
    ;ControlClick ($Win, "Abbrechen", "[CLASS:Button; INSTANCE:2]")
    ;ControlSend ($Win, "", "[CLASS:Edit; INSTANCE:1]", "Text")
    ;________________________________________________________________________



    Sobald allerdings der "Durchsuchen" Button innerhalb der html.datei angeklickt wird, öffnet sich ein


    Explorerfenster das mein Script unterbricht.




    Hier die Infos des Fensters


    _______
    >>>> Window <<<<
    Title: Datei zum Hochladen auswählen
    Class: #32770
    Position: 207, 92
    Size: 756, 512
    Style: 0x96CC02C4
    ExStyle: 0x00010101
    Handle: 0x00070574


    >>>> Control <<<<
    Class: ComboBox
    Instance: 1
    ClassnameNN: ComboBox1
    Name:
    Advanced (Class): [CLASS:ComboBox; INSTANCE:1]
    ID: 1148
    Text:
    Position: 170, 416
    Size: 381, 22
    ControlClick Coords: 128, 19
    Style: 0x56000413
    ExStyle: 0x00000000
    Handle: 0x0017054A


    >>>> Mouse <<<<
    Position: 513, 555
    Cursor ID: 0
    Color: 0x000000


    >>>> StatusBar <<<<


    >>>> ToolsBar <<<<


    >>>> Visible Text <<<<
    Hostwrapper für gemeinsame Orte
    Namespacestruktursteuerelement
    Strukturansicht
    ShellView
    FolderView
    Datei&name:
    Datei&typ:
    Alle Dateien (*.*)
    Ö&ffnen
    Abbrechen
    Navigationsleiste
    Adresse: C:\Users\...\Desktop\Beispielimage



    >>>> Hidden Text <<<<
    Namespacestruktursteuerelement
    Shell Preview Extension Host
    &Hilfe
    C:\Users\...\Desktop\Beispielimage
    Suchen
    _______________________



    Das heißt ich kann das Fenster nicht mehr mit control... Befehlen ansteuern und auch das Script


    läuft erst weiter wenn ich das "Datei zum Hochladen auswählen" Fenster manuel schließe.


    Das Fenster öffnet sich übrigens nur wenn ich den Script mit #ReguireAdmin starte.


    Wie hendel ich das jetzt?

    Zitat

    Weil der/die Seitenbetreiber das massenhafte Runterladen von Bildern in seinen AGB´s verbietet?
    Wozu braucht man sonst solch ein Script?


    Nee ich will einfach nur nicht angeben was ich mir für Inhalte im Internet anschaue.
    _____




    Hier ein weg wie sich Bilder über deren src abspeichern lassen...


    #include <IE.au3>
    #Include <Inet.au3>
    #Include <File.au3>



    $url = "Beispielseite"
    $oIE = _IECreate ($url, 0, 1)
    _IELoadWait ($oIE)
    Sleep (5000)



    ;Bild speichern
    If FileExists("C:\Beispielpfad") Then FileDelete("C:\Beispielpfad")
    While 1
    $oIMGs = _IEImgGetCollection($oIE)
    For $oImg In $oIMGs
    If StringInStr($oImg.src, "Beispielstring") Then
    InetGet($oImg.src, "C:\Beispielpfad")
    EndIf
    Next
    If FileExists("C:\Beispielpfad") Then ExitLoop
    Sleep(1000)
    WEnd



    Funktioniert für meine Zwecke aber nur bedingt, da sich einige Bilder anscheinend beim Versuch sie zu speichern aktualisieren und nicht dem "ursprünglich zu speicherndem Bild" entsprechen.


    Wenn jemand dafür noch ne Lösung weiß bzw. noch andere Möglichkeiten kennt Bildinformationen aus Webseiten zu extrahieren würde ich mich über Ratschläge freuen.


    MfG
    I30R6

    @ Oscar


    Sorry ich dachte, ich hätte das im Eröffnungspost schon klargestellt das der Inetget Befehl über die Image URL nicht infrage kommt.


    Beispiel kann ich gerade nicht mit dienen, da ich die Seite nicht angeben möchte
    (könnte ja ne Pornoseite oder ähnlich kompromittierendes sein.) ;-)


    Ich werde mal nach nem passenderem alternativ Beispiel ausschau halten.

    Das Beispiel war vielleicht blöd gewählt, weil sich im HTML Code der Seite die Image URL befindet.


    Ich suche nach einer Lösung wenn keine URL gefunden werden kann, oder sich Bilder nicht über diese URL laden lassen.

    Also beispielsweise das AutoitLogo links oben, auf folgender Seite. (Muss nicht unbedingt ein PNG sein könnte auch ein JPG oder GIF sein.)




    https://www.autoitscript.com/site/autoit/




    HTML Code:
    ___________________________
    <a href="https://www.autoitscript.com/site/"> <img src="https://static1.autoit-cdn.com/site/wp-content/themes/TheCorporation/images/logo@2x.png" width="210" height="72" alt="AutoIt" id="logo"></a>
    ___________________________



    Will beispielsweise dieses Logo über seine id in einen angegebenen Ordner speichern.


    Oder automatisch ein Screenshot des Bereichs über die angegebene width und height .


    Halt das irgendwie dieses Bild automatisch durch ein Script gespeichert wird und von dort wieder geladen werden kann.



    MfG
    I30R6

    Ich suche eine Möglichkeit Bilder von Internetseiten anhand ihrer id runterzuladen/ abzuspeichern oder in die Zwischenablage zu kopieren.


    Hatte gehofft es hiermit kopieren zu können...


    #include <IE.au3>


    $url = "Beispielseite"
    $PIC_id = "Beispielbild"
    $oIE = _IECreate ($url, 0, 1)
    $oDiv = _IEGetObjById ($oIE, $PIC_id)



    _IEAction ($oDiv, "focus")
    Sleep (5000)
    _IEAction ($oDiv, "copy")



    ...funtkioniert aber nicht.


    Alternativ bin ich in dem Zusammenhang auf den INetGet Befehl gestoßen, der funktioniert soweit ich das verstehe aber nur mit einer URL Adresse des Bildes.



    #Include <Inet.au3>
    #Include <File.au3>


    $url="Bild URL"
    INetGet($url,"C:\Users\...\Desktop\Ordner\Dateiname.jpg")

    Danke für eure Hilfe. :)




    Also mit ShellExecute hatte ich keine Probleme, aber die erste Variante habe ich leider nicht zum laufen bekommen. Zuvieles davon ist mir fremd.


    Im Grunde reicht mir aber die ShellExecute Variante aus.


    Intressehalber würde ich mich aber auch noch darüber freuen wenn mir jemand den Beispielscript mit der 1 Variante korrigiert, damit es läuft.


    Script_A soll Script_B öffnen...


    ;Script_A



    #pragma compile(AutoItExecuteAllowed, true)


    #AutoIt3Wrapper_UseUpx=n ;Was ist das?


    Global $Script = "C:\Users\...\Desktop\Beispielscripts\Script_B.au3"



    Func AutoIt3ExecuteScript($Script)
    Return Run(StringFormat('"%s" /AutoIt3ExecuteScript "%s"', @AutoItExe, $Script))
    EndFunc


    ;Script_B
    ;____ Sinnlos MouseMove im Quadrat_____
    MouseMove (100,100,100)
    MouseMove (500,100,100)
    MouseMove (500,500,100)
    MouseMove (100,500,100)
    MouseMove (100,100,100)
    ;_______________________________________

    Hi,



    Ich will das die letzte Aktion eines Scripts draus besteht ein weiteres Autoit Script zu starten bevor es sich schließt.


    Die einzige Möglichkeit die ich bislang gefunden habe, wäre es das folgende Script als exe zu compilieren und es im vorangegangenem Script


    mit den Befel Run() zu öffnen, das möchte ich aber nicht.



    Welche Möglichkeiten gibt es ein Script durch ein anderes Script zu öffnen.



    MfG
    I30R6


    Ich habe in der Autoit Hilfe unter language reference etc. lange genug gesucht das ich es mir erlaube, mal schnell hier im Forum nachzufragen.



    Ich suche nach einer Möglichkeit Zeilen im Script zu minimieren, wie bspw. bei einer Funktion, wo alles zwischen



    Funk()
    EndFunkt


    also der Inhalt der Funktion ausgeblendet werden kann.


    Es soll natürlich keine Funktion sein, habe halt nur lange Passagen aus Sleep und MouseMove Befehlen die ich in meinem Script gerne ausblenden würde.




    MfG


    I30R6


    Danke schon mal für die Vorschläge,


    steht aber irgendwie auf dem Schlauch...


    habs noch nicht geschaft das _IEAttach zu verwenden.


    Kann mir jemand kurz die simpelste Variante zurecht scripten,


    um bei geöffneter Google Startseite die Suchzeile anzusteuern, einen Text einzugeben und anschließend auf den "Google-Suche" Button zu clicken.




    Mein unbeholfener Versucht sieht aktuell so aus....


    #include <IE.au3>
    Dim $sURL, $oIE
    $oIE = _IEAttach("Google")
    $sURL = _IEPropertyGet ($oIE, "locationurl")
    MsgBox(0, "Aktuelle Seite", $sURL )


    $Search = _IEGetObjById ($oIE, "gbqfq")
    _IEFormElementSetValue ($Search, "Text")


    $Button = _IEGetObjById ($oIE, "gbqfsa")
    _IEAction ($Button, "click")