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. Andy

Beiträge von Andy

  • Zufallsauswahl

    • Andy
    • 7. Oktober 2009 um 18:40
    Zitat

    Array is anfangs für dei meisten etwas schwer zu verstehen.


    yepp, motiviert aber, wenn man sich die blutigen Fingerspitzen anguckt^^

  • Zufallsauswahl

    • Andy
    • 7. Oktober 2009 um 18:28

    mit Arrays lässt sich sehr viel Schreibarbeit sparen

    [autoit]

    dim $aArray[11]=["Null","Eins","Zwei","Drei","Vier","Fünf","Sechs","Sieben","Acht","Neun","Zehn"]
    send($aArray[random(1,10,1)])
    send("{Enter}")
    sleep(3000)

    [/autoit]
  • SFTP Upload

    • Andy
    • 7. Oktober 2009 um 16:25

    Hi,
    Es gibt Programme (auch ich nutze aus diesem Grund u.a. FileZilla) die mit "Sicherheit" und "FTP" zusammen zurechtkommen, natürlich nur mit der dementsprechenden Gegenseite. Diese Programme implementieren dazu das gesamte Protokoll auf verschiedenen Ebenen.
    In AutoIt hast du sehr guten Zugriff auf die Windows-API, dort gibt es aber nach meiner Recherche keine einfach handhabbaren Funktionen, um "mal eben so" bissl SFTP zu machen.
    Ggf. setzt sich mal jemand dran^^
    Die sinnvollere und auch schneller zum Erfolg führende Alternative ist sicherlich, ein Kommandozeilen-SFTP fähiges Programm mit AutoIt zu "füttern" bzw fernzusteuern.
    So etwas ist in kürzester Zeit erledigt.

  • Listview Item aus einer Gui in andere gui übertragen..

    • Andy
    • 7. Oktober 2009 um 15:07
    Zitat

    Wie kann ich den das item übergeben von der listview ....


    du köntest ein Kontextmenü machen, oder doppelklicken, oder linksklicken, oder Ctrl+Alt+O benutzen....irgendwas halt, um eine Aktion auszulösen, und dann schickst du das Listview-Item an das "andere" Script

    Zitat

    ...und wo definiere ich welche inputbox er das item aus der listview schreiben soll?


    naja...

    [autoit]

    if $vText<>"" then GuiCtrlSetData($inputbox,$vText) ; wenn etwas empfangen wurde, dann trag es in die Inputbox ein

    [/autoit]

    ggf würde es so auch mit Drag´n´Drop funktionieren , "DRAG"-Event schickt das listviewitem los, "DROP"-Event im Empfangsscript holt es aus der gesendeten Variablen...

  • Skript performanter gestalten

    • Andy
    • 7. Oktober 2009 um 14:46

    sodele...was passiert denn, wenn du dieses Script aufrufst?
    Stehen alle Adapter und IP-Adressen im Arraydisplay?

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    ;######################################################################################################
    ;# Function Name: _GetAllNetAdapterInfo()
    ;# Description:: Auslesen aller vorhandenen Netzwerkadapter und deren Konfiguration
    ;# Parameter(s): keine
    ;# Requirement(s): keine
    ;# Return Value(s): Erfolg Array[0][0] Anzahl der Adapter
    ;# Array[n][0] Adapter Name (wie in Systemsteuerung ==> Netzwerkverbindungen)
    ;# Array[n][1] Adapter Beschreibung
    ;# Array[n][2] IP-Adresse
    ;# Array[n][3] SubNetMask
    ;# Array[n][4] DHCP-Enabled (0/1)
    ;# Array[n][5] DHCP IP-Adresse
    ;# Array[n][6] DHCP SubNetMask
    ;# Array[n][7] DHCP Default Gateway
    ;# Array[n][8] DHCP Server
    ;# Fehler Array[0][0] Leerstring (kein Adapter vorhanden)
    ;# Author(s): Bitboy, nach einer Idee von BugFix ([email='bugfix@autoit.de'][/email])
    ;######################################################################################################

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

    $a=_GetAllNetAdapterInfo ()
    _arraydisplay($a)

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

    Func _GetAllNetAdapterInfo ()
    Local $infoarr[1][9], $keyarr[1], $i=0, $x=0, $counter=0, $tmp, $tmp2, $short

    ;Registrierte Adapter zählen
    While 1
    $i = $i + 1
    $tmp = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services", $i)
    If @error <> 0 then ExitLoop

    ;Adapter sind in den einzigen Schlüsseln die mit "{" beginnen
    If StringInStr($tmp,"{") Then
    $short = 1 ;Merker zum Verkürzen der Schleife da Keys alphabetisch sortiert
    $counter = $counter + 1
    Redim $keyarr[$counter+1]
    $keyarr[$counter] = $tmp ;Speichern der Adapterschlüssel
    $keyarr[0] = $counter
    Else
    If $short = 1 Then ExitLoop
    EndIf
    WEnd

    ;Funktion verlassen wenn kein Adapter gefunden wurde
    If $counter = 0 Then
    $infoarr[0][0] = 0
    Return $infoarr
    EndIf

    ;Rückgabearray an Adapterzahl anpassen
    Redim $infoarr[$counter+1][9]
    $infoarr[0][0] = $counter

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

    ; TCP-Informationen auslesen
    For $i = 1 to $counter
    $infoarr[$i][2] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'IPAddress')
    $infoarr[$i][3] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'SubnetMask')
    $infoarr[$i][4] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'EnableDHCP')
    $infoarr[$i][5] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpIPAddress')
    $infoarr[$i][6] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpSubnetMask')
    $infoarr[$i][7] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpDefaultGateway')
    $infoarr[$i][8] = RegRead('HKLM\SYSTEM\CurrentControlSet\Services\' & $keyarr[$i] & '\Parameters\Tcpip', 'DhcpServer')
    Next

    ;Adapternamen auslesen
    $i = 1
    $short = 0
    While 1
    $tmp = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}",$i)
    If @error <> 0 then ExitLoop

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

    $tmp2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $tmp, "NetCfgInstanceId")
    For $x = 1 To $counter

    ;Zugeordnete Verbindung auslesen
    $infoarr[$x][1] = RegRead('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\' & $keyarr[$x] & '\Connection', 'Name')
    If $tmp2 = $keyarr[$x] Then
    $infoarr[$x][0] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $tmp, "DriverDesc")
    $short = $short +1 ;gefundene Namen zählen
    EndIf
    Next

    If $short = $counter Then ExitLoop ;Alle Adapternamen gefunden

    $i = $i +1
    WEnd

    Return $infoarr
    EndFunc ;==> _GetAllNetAdapterInfo

    [/autoit]
  • Aktion bei Button Click

    • Andy
    • 7. Oktober 2009 um 12:22

    Hallo,
    im Startmenü von AutoIt gibt es das AutoIt Window Info Tool. Damit solltest du herausfinden können, ob du den Button im CAD-Programm erreichen/abfragen kannst.
    Das Macro würde dann darin bestehen den Button zu klicken?!

  • Skript performanter gestalten

    • Andy
    • 7. Oktober 2009 um 11:58
    Zitat

    Andy: Wie gesagt, ich bin wahrscheinlich zu dämlich dazu....

    Glaub ich nicht....
    Auf welchem System soll die Anwendung laufen? Vista/Win7 brauchen für einige Zugriffe ab und zu diesen #requireadmin, ggf sind auch die Pfade in der Registry anders oder oder oder

    funkey
    zwar 20x langsamer als bitboy´s Variante aber immer noch 20x schneller als die von Apocsis :D

  • Listview Item aus einer Gui in andere gui übertragen..

    • Andy
    • 7. Oktober 2009 um 10:56

    schau mal bei GUICtrlSetState() auch bei den Bemerkungen...
    Auf die Schnelle habe ich mit Listviews hierein Beispiel gefunden...
    Das Beispiel in der Hilfe sollte auch weiterhelfen http://www.autoitscript.com/autoit3/docs/f…istViewItem.htm

    */EDIT/* da müssen die "Nachrichtenspezialisten" ran, innerhalb einer GUI ist das Drag´n´drop simpel, aber zwischen 2 AutoIt-Programmen (und deren Listviews) hab ich auf die Schnelle nichts gefunden.
    Es gibt eine Möglichkeit, aber die ist sehr "unschön"...ich warte erstmal auf die Spezis bevor ich mich hier blamiere^^

  • Listview Item aus einer Gui in andere gui übertragen..

    • Andy
    • 7. Oktober 2009 um 10:43

    Drag´n´drop ist das völlig egal woher und wohin.....

  • Skript performanter gestalten

    • Andy
    • 7. Oktober 2009 um 10:33

    Hallo,
    bei mir läuft das Script auf 2 Rechnern einwandfrei, Rückgabe aller Adapter (auch 2 virtuelle) ordnungsgemäß im Array.
    System XP SP3

  • Skript performanter gestalten

    • Andy
    • 6. Oktober 2009 um 17:44

    Hallo,
    das einzige was mir einfällt, wäre eine Consolenausgabe von netsh oder ipconfig nach den IP-Adressen bzw Adaptern zu durchforsten. Das sollte aber auch in kürzester Zeit erledigt sein. Deine Variante dauert auf meinem Rechner mit 3 Netzwerkadaptern 8 Sekunden!
    ciao
    Andy

  • Remote Info vom Rechner und angemeldeten Benutzer

    • Andy
    • 6. Oktober 2009 um 16:14

    Hi,
    ist das normal das bei Angabe der IP die Netzwerkinfos leer bleiben, aber bei Verwendung des Namens angezeigt werden?
    ciao
    Andy

  • Komisches Phenomen

    • Andy
    • 6. Oktober 2009 um 15:33

    Gib mal fonts.mul bei google ein, das hat wohl nichts mit AutoIt zu tun, die ersten 50 Treffer behandeln alle das gleiche Thema....

  • SFTP Upload

    • Andy
    • 6. Oktober 2009 um 14:28

    Hi,
    um nochmal klarzustellen welches SFTP du meinst....
    - Secure FTP mit (ungesichertem) FTP über eine getunnelte SSH
    - SSH-FTP als komplett eigenständiges Protokoll
    - oder ggf FTPS als verschlüsselte FTP-Verbindung (Verschlüsselung auch mit RSA)

    am einfachsten wäre m.E. FTPS in AutoIt zu realisieren, da man ggf einem Proxy die SSL-Verbindung überlässt und dann "ganz normal per FTP" die Daten überträgt.

    Zitat

    warum finde ich eigentlich nix zu ftp in der Hilfe??

    Die FTP-UDF wurde wohl noch nicht in die Funktionsliste übernommen. Da aber schon reichlich FTP-Scripte vorhanden sind, sollten Beispiele auch einfach zu beschaffen sein.
    ciao
    Andy

  • Bundeswettbewerb Informatik

    • Andy
    • 5. Oktober 2009 um 21:48

    Hi,
    habe mir mal die Aufgaben durchgelesen, da wäre das eine oder andere für ein µit dabei :rofl::rofl::rofl::rofl: wird mal wieder Zeit^^

    Zitat

    Allerdings sind viele der Aufgaben evtl. recht lahm unter AutoIt...

    Ich habe jetzt auf Anhieb keine Aufgabe gefunden, bei der die Lösung mittels AutoIt nicht in "normaler" Zeit ablaufen würde. Selbst bei der "Bildbearbeitung" ist das "AutoIt-Bitblt" sicher schnell genug :D

  • ftp frage

    • Andy
    • 5. Oktober 2009 um 21:14

    hab nur was aus einem meiner Scripte rauskopiert, musst halt die Daten bissl anpassen

    Spoiler anzeigen
    [autoit]

    Func _checkfornewversion() ; existiert eine neue version von easyupload?

    Local $search, $ftpOpen, $ftpConnect, $handle, $DllRect, $FileInfo, $delsuccess

    $err = 0
    $ret = 0
    $temp = @ScriptDir & "\easyupload.old"
    $new = @ScriptDir & "\easyupload_new.exe"
    $current = @ScriptDir & "\easyupload.exe"

    GUICtrlSetState($label8, $gui_show) ;anzeigen, dass die neueste Version von easyupload gesucht wird

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

    $pingtime = Ping($autoupdateservername, 1000)

    ;msgbox(0,"",$pingtime)

    If $pingtime <> 0 Then ;server ist online


    $ftpOpen = _FTPOpen("Erdnuckel") ;irgendwas reinschreiben
    If @error Then
    MsgBox(0, "Fehler", "FTP-Handle wurde nicht erfolgreich erzeugt!" & @CRLF & "Programm wird beendet")
    Exit
    EndIf

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

    $ftpConnect = _FTPConnect($ftpOpen, $autoupdateservername, $autoupdateuser, $autoupdatepass)
    If @error Then
    MsgBox(0, "Fehler", "FTP-Connect zu " & $autoupdateservername & " war nicht erfolgreich. Die neueste Programmversion kann nicht geladen werden!")
    $err = 1
    Exit
    EndIf

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

    _FtpSetCurrentDir($ftpConnect, $autoupdateverzeichnis_server)
    If @error Then
    MsgBox(0, "Fehler", "Das Verzeichnis " & $autoupdateverzeichnis_server & " auf dem Server konnte nicht geöffnet werden.")
    $err = 1
    Exit
    EndIf
    ;msgbox(0,"fehlercode","error="&@error)
    If $err = 0 Then ; bisher ist kein ftp-fehler aufgetreten, datums und zeitvergleich, dann download
    ;msgbox(0,"","erdnuckelserver")
    Dim $handle
    Dim $DllRect
    $FileInfo = _FtpFileFindFirst($ftpConnect, "easyupload.exe", $handle, $DllRect) ;datei auf dem server
    If @error Then
    $err = 1
    MsgBox(0, "Fehler", "Die Datei Easyupload.exe konnte nicht vom Server geladen werden.")
    EndIf

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

    If $err = 0 Then ;datum vergleichen und ggf downloaden
    ;MsgBox(0, "Find", $FileInfo[1] & @CR & $FileInfo[2] & @CR & $FileInfo[3] & @CR & $FileInfo[4] & @CR & $FileInfo[5] & @CR & $FileInfo[6] & @CR & $FileInfo[7] & @CR & $FileInfo[8] & @CR & $FileInfo[9] & @CR & $FileInfo[10])
    $date_serverfile = filedatenumber(_FTPFileTimeLoHiToStr($FileInfo[6], $FileInfo[7])) ;datum serverfile
    $date_localfile = Number(FileGetTime($current, 0, 1)) ;datum local file
    ; msgbox(0,"daten","server- "&$date_serverfile&@crlf&"lokal- "&$date_localfile,2)
    If $date_serverfile > $date_localfile Then ; wenn datei auf server jünger ist...
    $info = MsgBox(4, "Hinweis", "Es gibt eine neue Version von EasyUpload. Wollen sie die neue Version herunterladen?")
    If $info = 6 Then
    GUICtrlSetData($Label1, "Download von: ")
    GUICtrlSetData($Label2, $autoupdateservername & $autoupdateverzeichnis_server & "\Easyupload.exe") ;link ins fenster schreiben
    GUICtrlSetData($Label3, "nach: ")
    GUICtrlSetData($Label4, $current) ;Dateinamen ins fenster schreiben
    GUICtrlSetData($Label5, " ")
    GUICtrlSetData($Label6, " ")
    $begin = TimerInit() ; timer initialisieren für anzeige geschwindigkeit kb/sec
    $currentfilesize = $FileInfo[9] / 1000 ;dateigröße für anzeige kb/sec
    _FTP_DownloadProgress($ftpConnect, $new, "easyupload.exe", "_UpdateParts") ;...downloaden in temporäre datei
    If @error Then
    MsgBox(0, "Fehler", "Fehler beim Download der neuesten Version von Easyupload.EXE!")
    If FileExists($temp) Then FileDelete($temp) ; tempdatei löschen
    Else
    ;RunWait(@comspec & " /c ren "&@scriptdir&"\easyupload.exe easyupload.old")
    ;RunWait(@COMSPEC & " /c ren "&@scriptdir&"\easyupload_temp.exe easyupload.exe")
    $ret = FileMove($current, $temp, 1) ;datei umbenennen
    If $ret = 0 Then MsgBox(0, "Fehler", "Fehler beim umbenennen von " & $current & " in " & $temp)
    $ret = FileMove($new, $current, 1) ;datei umbenennen
    If $ret = 0 Then MsgBox(0, "Fehler", "Fehler beim umbenennen von " & $new & " in " & $current)
    If $ret = 1 Then MsgBox(0, "", "Easyupload konnte sich erfolgreich updaten!")
    EndIf
    EndIf
    ;else
    ;msgbox(0,"Info","Sie haben die aktuelle Programmversion!")
    EndIf
    EndIf

    _FtpFileFindClose($handle, $DllRect)

    EndIf

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

    _FTPClose($ftpOpen)
    If @error Then MsgBox(1, "Fehler", "FTP-Verbindung konnte nicht getrennt werden.")
    EndIf


    EndFunc ;==>_checkfornewversion

    [/autoit]


    */EDIT/* hups, noch was vergessen....

    Spoiler anzeigen
    [autoit]

    Func filedatenumber($time) ;wandelt 23.04.2007 23:12:55 in 20070423231256 als zahl (kein string!)
    $numbertime = Number(StringMid($time, 7, 4) & StringMid($time, 1, 2) & StringMid($time, 4, 2) & StringMid($time, 12, 2) & StringMid($time, 15, 2) & StringMid($time, 18, 2))
    Return $numbertime
    EndFunc ;==>filedatenumber

    [/autoit]
  • Gui Fragen

    • Andy
    • 5. Oktober 2009 um 20:58

    Aus der Hilfe....

    Zitat

    Derzeit können nur Button, Label, Checkbox, Group, Radio, Edit, Input, List, Listview, ListviewItem, Treeview, TreeviewItem, Graphic, Progress und Slider controls eingefärbt werden


    aber mit etwas suchen findet sich DAS HIER

  • Html datei bestimmter teil ändern

    • Andy
    • 5. Oktober 2009 um 20:24
    [autoit]

    $text="bla blup url=127.0.0.1 testtest"
    msgbox(0,0,stringreplace($text,"127.0.0.1",@IPAddress1))

    [/autoit]
  • ftp frage

    • Andy
    • 5. Oktober 2009 um 20:14

    Schau mal in der FTP_EX udf nach _FTPFileTimeLoHiToStr()
    Damit lese ich das Datum der Datei in dem FTP-Verzeichnis, wenn die lokale Datei jünger ist, wird upgeloadet.

  • Charakter Planner Hilfe

    • Andy
    • 5. Oktober 2009 um 16:52

    Hallo,
    um dir mal in deinem Programm weiterzuhelfen...
    Es ist sehr sinnvoll, ALLE Fenster, Controls, Buttons uswusf am Anfang deines Scriptes zu erstellen und dann je nach Situation ein- oder auszublenden.
    D.h. so etwa

    Spoiler anzeigen
    [autoit]

    #include "ButtonConstants.au3"
    #include "Array.au3"
    #include "GUIConstantsEx.au3"

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

    Global $Human = "Mensch", $Night = "Nachtelf", $Dwarf = "Zwerg", $Gnome = "Gnom", $Drae = "Draenei", $Orc = "Orc", $Troll = "Troll", $Taure = "Taure", $Undead = "Untot", $Blood = "Blutelf", $Class

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

    Haupt()

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

    Func Haupt()
    $Hauptfenster = GUICreate("WoW Planner", 400, 500,500,200)
    global $Race = GUICtrlCreateCombo("Rasse auswählen",5,5,120,25)
    GUICtrlSetData($Race,"Nachtelf|Gnom|Zwerg|Draenei|Orc|Troll|Taure|Untot|Blutelf","Mensch")
    $Button = GUICtrlCreateButton("Weiter", 5,100,40,30)
    global $secondClass = GUICtrlCreateCombo("Zweitklasse auswählen",135,5,120,25)
    GUISetState(@SW_SHOW)

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

    guictrlsetstate($secondclass,$GUI_HIDE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button ; der button wurde gedrückt
    guictrlsetstate($secondclass,$GUI_SHOW) ;zweite combobox erscheint
    _zweitklasse()
    Case $Race ;eine Rasse wurde ausgewählt
    guictrlsetstate($secondclass,$GUI_SHOW) ;zweite combobox erscheint
    _zweitklasse()

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

    EndSwitch
    WEnd
    EndFunc

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

    func _zweitklasse()
    local $firstclass=GUICtrlRead($Race)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $firstclass = ' & $firstclass & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    If $firstclass = $Dwarf Then
    GUICtrlSetData($secondClass,"Krieger|Hexenmeister|Magier|Schurke|Paladin","Krieger")
    endif

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

    endfunc

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

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™