ZitatArray is anfangs für dei meisten etwas schwer zu verstehen.
yepp, motiviert aber, wenn man sich die blutigen Fingerspitzen anguckt^^
ZitatArray is anfangs für dei meisten etwas schwer zu verstehen.
yepp, motiviert aber, wenn man sich die blutigen Fingerspitzen anguckt^^
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)
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.
ZitatWie 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...
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...
sodele...was passiert denn, wenn du dieses Script aufrufst?
Stehen alle Adapter und IP-Adressen im Arraydisplay?
#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])
;######################################################################################################
$a=_GetAllNetAdapterInfo ()
_arraydisplay($a)
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
; 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
$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
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?!
ZitatAndy: 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 ![]()
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^^
Drag´n´drop ist das völlig egal woher und wohin.....
Hallo,
bei mir läuft das Script auf 2 Rechnern einwandfrei, Rückgabe aller Adapter (auch 2 virtuelle) ordnungsgemäß im Array.
System XP SP3
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
Hi,
ist das normal das bei Angabe der IP die Netzwerkinfos leer bleiben, aber bei Verwendung des Namens angezeigt werden?
ciao
Andy
Gib mal fonts.mul bei google ein, das hat wohl nichts mit AutoIt zu tun, die ersten 50 Treffer behandeln alle das gleiche Thema....
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.
Zitatwarum 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
Hi,
habe mir mal die Aufgaben durchgelesen, da wäre das eine oder andere für ein µit dabei ![]()
![]()
![]()
wird mal wieder Zeit^^
ZitatAllerdings 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 ![]()
hab nur was aus einem meiner Scripte rauskopiert, musst halt die Daten bissl anpassen
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
$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
$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
_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
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
_FTPClose($ftpOpen)
If @error Then MsgBox(1, "Fehler", "FTP-Verbindung konnte nicht getrennt werden.")
EndIf
EndFunc ;==>_checkfornewversion
*/EDIT/* hups, noch was vergessen....
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
Aus der Hilfe....
ZitatDerzeit 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
$text="bla blup url=127.0.0.1 testtest"
msgbox(0,0,stringreplace($text,"127.0.0.1",@IPAddress1))
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.
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
#include "ButtonConstants.au3"
#include "Array.au3"
#include "GUIConstantsEx.au3"
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)
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()
EndSwitch
WEnd
EndFunc
func _zweitklasse()
local $firstclass=GUICtrlRead($Race)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $firstclass = ' & $firstclass & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
If $firstclass = $Dwarf Then
GUICtrlSetData($secondClass,"Krieger|Hexenmeister|Magier|Schurke|Paladin","Krieger")
endif
endfunc
[/autoit] [autoit][/autoit] [autoit][/autoit]