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

Beiträge von wolkenloser

  • Nummerrierung eines Array Eintrages

    • wolkenloser
    • 9. Februar 2006 um 20:57
    Zitat

    Original von wolkenloser
    ...

    Code
    $markiert = GUICtrlRead($listview)
    $nr = $markiert - 5
    MsgBox(0,"","Name:" & $aRecords[$nr])

    Woran liegt das ?

    Schade das ich mir immer selber helfen muß
    :rolleyes:

    Bin im Englischen AUTOIT Forum fündig geworden, aber das ist immer so mühselig, weil dort immer soviel zu einem Thema steht, und ich doch rechtgroße Mühe habe mit der Übersetzung.

    Die Lösung für mein Problem sieht so aus, vielleicht nutzt es ja irgendwem.

    Code
    $nr = ControlListView("","",$listview,"GetSelected")
    $nr = $nr+1
    MsgBox(0,"","Name:" & $aRecords[$nr])
  • Plattengraph

    • wolkenloser
    • 9. Februar 2006 um 08:17

    Ok, ich habs schon selber gemerkt :)
    das get nur wenn Script als EXE File läuft :)

  • Plattengraph

    • wolkenloser
    • 9. Februar 2006 um 07:35

    Hallo,
    lang ist her, aber ich habe den Plattengraph nochmal angesehen und festgestellt, das das Dir g ja noch mehr kann, als nur die Lokalen Laufwerke anzeigen.

    Also habe ich das kontextmenue gefunden und versucht netzlaufwerke, bzw ALL hinzuzufügen.

    Allerdings kommt bei mir mit AUTOIT und AUTOIT BETA folgender Fehler:

    Code
    >Running: (3.1.1.0):C:\Programme\AutoIt3\autoit3.exe "D:\Plattengraph_1.0_de_en\Plattengraph.au3"    
    D:\Plattengraph_1.0_de_en\Plattengraph.au3 (204) : ==> Unable to execute the external program.:
  • MailQueue

    • wolkenloser
    • 8. Februar 2006 um 19:21

    Ich möchte gerne meine Mails in eine Art Mailqueue ablegen, um dann automaisch eine Signatur "anzuhängen"

    Ich stell mir das so vor das ich in meinem Mailprogramm als Postausgangsserver mein Autoit Programm die Mails an SMTP PORT 25 angebe.

    Hier werden die Mailfiles abgelegt, und meine Programm soll noch eine Zeile anfügen.
    Anschließend soll das Programm die Mailfiles dann an den Bestimmungsserver (z.B GMX) ebenfalls an PORT 25 abschicken.

    Hat jemand eine Idee wie das funktionieren kann ?

  • Deinstallation

    • wolkenloser
    • 8. Februar 2006 um 18:18

    Auf "ändern/entfernen" drücken ?

    Wenn Du es mit AUTOIT machen willst such dir den passenden Befehl aus der Registry (Regread)

    BSP: Autoit

    Code
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AutoItv3]
    "DisplayName"="AutoIt v3.1.1"
    "UninstallString"="C:\Programme\AutoIt3\Uninstall.exe"
    "DisplayIcon"="C:\Programme\AutoIt3\AutoIt3.exe,0"
    "NoModify"=dword:00000001
    "NoRepair"=dword:00000001
  • Nummerrierung eines Array Eintrages

    • wolkenloser
    • 7. Februar 2006 um 19:46

    Das Mit denBilder klappt irgendwie nicht richtig :(

    Noch ein Versuch

  • Nummerrierung eines Array Eintrages

    • wolkenloser
    • 7. Februar 2006 um 19:45
    Zitat

    Original von gtaspider
    Na!
    Das ligt daran dass, wenn ein falscher name bearbeitet wird $nr = -5 ist bzw -4 -3 -2 -1
    Also z.B.:
    Merkel|Angelia|34
    da fehlt doch was..da sind nämlich nur 3 angegebne und wenn das so ist gibt es auch logischer weise einen fehler, denn das würde dann so aussehen:


    Ich habe deine Nachricht nochmal genauer gelesen.

    Also mit der $nr hole ich nicht die Telefonnummer oder Handynummer, sondern das nummeriert die ganze Zeile

    siehe Bild:

  • Nummerrierung eines Array Eintrages

    • wolkenloser
    • 7. Februar 2006 um 19:20

    Ok, da habe ich etwas übersehen.
    Das liegt aber daran, das meine ursprüngliche Liste ca 100 Einträge hatte, ich habe dann einfach eine DummyListe gemacht, da sieht das wohl anders aus.

    Hier nochmal eine andere Adressliste.

    Dann wird der Fehler vielleicht nachvollziehbarer


    Code
    kdmknkstrktkon||306||
    kdmknkstrktkon||351||
    kltun|Zkfkr|0281-9424-0|493|
    knkschkwskk|Rklf|105|271|
    Bkumgkrtkn|Mkrtknk|215|169|
    Bky|Dorks|217||
    Bkckhoff |Thomks|211|226|0111-2222-190
    Bkllwknkkl|Jürgkn|205||
    Bktrkkbsrkt||376||
    Boltknburg|Ulfkrt|216|333|0111-2222-031
    Bönnkkkn|Bärbkl|199|393|
    Boumhkdk|kbdkllkh|306||
    Boumhkdk|Mklknkk|351|227|
    Cklkskkn|kskm|316|0111-2222-182
    Dolkk|Skschk|138|
    Drkkskn|Frknk|255|
    khlkrt|Rklf|535||
    khrksmknn|Chrkstoph|401|489|0111-2222-143
    krtks|Cknkr|290|
    krtks|Mkrykn|136||
    Fkschkr|Mkchkkl|241|106|0111-2222-151
    Gkkdk|Mkrkus|201|108|0111-2222-140
    Gknz|Pktkr|247|
    Glks|Hkns-Wklhklm|535|336|
    Gokczyk|kndrkks|220|
    Grkhmknn|Svkn|319|
    Hkmpkl|kchkm|132|
    Hkmpkl|Jkdwkgk|341||0111-2222-183
    Hklkukr|Kkrstkn|141|
    Hkrdkr|Bkrnd|314|
    Hkrzog|Jürgkn|219|
    Hkrzog|Skschk|228||
    Hkymknn|Clkudkk|244|248|0111-2222-185
    Hkckmknn|kndrkks||0111-2222-181
    Hkklschkr|Mkchkkl|206||
    Hoffmknn|Hkrmknn|413||
    Hofmknn|Kkrolknk|202||
    kT-kbtkklung|Fkx:|0281-4608-280||
    Jkcob-Gkkskn|Brkgkttk|199|393|
    Kkrolknk|Hofmknn|254|
    Kkssklmknn|Dknnks|498|
    Kkllkng|kndrkks|218|
    Kkmpk|Skkgmund|402|337|0111-2222-180
    Kkschkl|kgbkrt|336||
    Kokovkkdks|Chrkstos|132|
    Könkg|Rüdkgkr|231||0111-2222-030
    Kossofkr|Mkrc|493|
    Lkknkwkbkr|Frknk|420|0111-2222-144
    Lorknz|Thorstkn|374||0111-2222-186
    Mkrbks|Chrkstkkn|224|
    Mkrfkld|Pktkr|413|
    Mkykr|Dktlkf|162||0111-7421-524
    Mkngkrs|Mknfrkd|131||
    Mkskkvych|kdukrd|213||
    Mross|Rkknkr|321|
    Nkumkykr|Dkrk|164||0111-2222-033
    Okutucu|Murkt|136||
    Orknt|knnk|322|257|
    Orknt|Skggk|536||
    Öztürk|Nkzmkyk|252|422|
    Pkus|Ulrkch|232|
    Pförtnkr||393||
    Plkutz|Gukdo|298|253|0111-2222-153
    Puschkkrskk|Skbrknk|301||
    Rückwkld|kngklhkrd|212|313|0111-3303-442
    Ruthkrt|kvk-Mkrkk|537||
    Skgkbkum|Hklmut|166||0111-2222-142
    Schäfkr|Nkdknk|192|424|
    Schkffkr|Rüdkgkr||0111-2222-189
    Schkrskch|Jksmkn|303||
    Schkrskch|Jksskck|374|246|
    Schkrbkn|Mknfrkd|207||
    Schmktz|Klkus|228||
    Schnkkdkr|klkxkndkr|131||0111-2222-141
    Schrkmmkr|Skndrk|541|315|
    Schumkchkr|kndré|540|297|0111-2222-157
    Schumkchkr|Tkm|494|
    Hkymknn|Gkby|243|308|
    Stkckmknn|kngo|216|491|
    Strkhlow|Dkrk|165||0111-2222-032
    Sturm|Thorstkn|488|0111-2222-178
    Tkkm||321||
    Tkllnkr|Jochkn|254|
    Thkkmrodt|Kkk|245||0111-2222-145
    Thkkmrodt|Mkchkkl|168|
    Tsorkkkdks|Fotkos|269|
    Vogkl|Ursulk|217||
    Wkkgklt|Thorstkn|233|
    Wknklkr|Bkrgkt|214||
    Wkntkrs|Mkchkkl|228||
    Zkmmkrmknn|knjk|108|
    Alles anzeigen
  • Nummerrierung eines Array Eintrages

    • wolkenloser
    • 7. Februar 2006 um 18:25

    Hi,

    Ich habe wieder mal ein Phänomen welches ich nicht verstehe:

    Ich habe ein GUI indem ich eine Telfonliste darstelle:
    Wenn man einen Namen aus der Liste schreibt, springt die Markirung zu dem EIntrag, was sehr gut und gewünscht ist, so kann mann zB. schnell einen Eintrag auffinden.

    Was mir jetzt Problem bereitet ist, daß ich versuche einen Eintrag zu bearbeiten und dann wegzuschreiben.

    Auch das gelingt prinzipiell, allerdings habe ich festgestellt, das ich immer einen "versatz" im Index habe.
    Also wenn ich den dritten Eintag aus der Liste bearbeiten will, muß ich beim Arrayindex immer etwas abziehen um den richtigen Datensatz zu bekommen.
    Allerdings ist die Differenz nie gleich :(

    Code
    $markiert = GUICtrlRead($listview)
    $nr = $markiert - 5
    MsgBox(0,"","Name:" & $aRecords[$nr])

    Woran liegt das ?


    Hier nochmal das ganze Script:

    C
    #include <file.au3>
    #include <Array.au3>
    #include <GUIConstants.au3>
    
    
    dim $aRecords, $x, $listview
    
    
    $file = "C:\Adressbuch.csv"
    
    
    
    
    GUICreate("Telefonlisten",530,300, 100,200,-1,$WS_EX_ACCEPTFILES)
    $listview = GUICtrlCreateListView ("Name              |Vorname              |Telefon|Schnurlos|Handy  ",10,10,500,230)
    $bearbeiten = GUICtrlCreateButton("Bearbeiten",10,250,80,20)
    $speichern = GUICtrlCreateButton("Datei speichern",100,250,80,20)
    $anlegen = GUICtrlCreateButton("Datensatz anlegen",190,250,100,20)
    GUISetState()
    
    
    
    
    If Not _FileReadToArray($file, $aRecords) Then
       MsgBox(4096,"Error", " Error reading log to Array     error:" & @error)
       Exit
    EndIf
    For $x = 1 to $aRecords[0]
    GUICtrlCreateListViewItem($aRecords[$x],$listview)
    
    Next
    
    
    
    
    func bearbeiten()
    
    
    $markiert = GUICtrlRead($listview)
    $nr = $markiert - 5
    MsgBox(0,"","Name:" & $aRecords[$nr])
    $input = InputBox("Bearbeiten","Datensatz kann jetzt bearbeitet werden",$aRecords[$nr])
    _ArrayDelete( $aRecords,$nr)
    _ArrayInsert( $aRecords,$nr,$input)
    
    
    GUICtrlDelete($listview)
    sleep(50)
    $listview = GUICtrlCreateListView ("Name              |Vorname              |Telefon|Schnurlos|Handy  ",10,10,500,230);,$LVS_SORTDESCENDING)
    For $x = 1 to $aRecords[0]
    GUICtrlCreateListViewItem($aRecords[$x],$listview)
    Next
    EndFunc
    
    
    
    
    Func speichern()
    FileOpen($file,2 )
    
    
    For $x = 1 to $aRecords[0]
    FileWriteLine($file,$aRecords[$x])
    FileClose($file)
    Next	
    
    
    EndFunc
    
    
    
    
    
    
    While 1
    	$msg = GuiGetMsg()
    	Select
    	Case $msg = $GUI_EVENT_CLOSE
    		ExitLoop
    
    	case $msg = $bearbeiten
    	bearbeiten()	
    
    
    	case $msg = $speichern
    	speichern()
    
    
    	Case Else
    ;~ 		;;;
    	EndSelect
    
    
    WEnd
    Alles anzeigen


    Hier noch die Stuktur meiner Adressdatei:

    Zitat


    Pan|Peter|306||0160-00000001
    Merkel|Angela|351||0160-1111111111
    Lustig|Peter|125|493|0160-500600900
    Engelke|Anke|105|271|0160-500600901
    Stamm|Baum|215|169|

  • Variabeln Grabber

    • wolkenloser
    • 3. Februar 2006 um 22:20

    Nein, eigendlich nicht....

  • Variabeln Grabber

    • wolkenloser
    • 3. Februar 2006 um 20:59

    Hi,
    wen kennt das nicht. Da programiert man sich einen Wolf und andauernd bekommt man beim komiplieren diese Meldung:

    Zitat


    WARNING: $"variablenname": possibly used before declaration.

    Damit man jetzt nicht mühsam die Variablen raussuchen muß, habe ich einen Variabeln Grabber gebaut.
    Vielleicht kann es ja jemand gebauchen

    ANLEITUNG:
    1.) Den kompletten inhalt der Box "AU3Check errors" markieren und in die Zwischenablage kopieren.

    2.) "Variablen Grabber" ausführen.

    3.) Das Ergebnis wird in einem Notpadfenster geöffnet und kann jetzt bequem kopiert werden um es in das Script ein zu kopieren.

    "ACHTUNG","Am Ende einer Variablen Kette darf kein Kommata stehen !"


    Code
    $now = @YDAY & @MON & @MDAY & @HOUR & @MIN & @SEC
    $inifile = @TempDir & "\VAR" & $now
    
    
    clipget()
    run("notepad " & @TempDir & "" & $now)
    WinWaitActive("Unbenannt - Editor")
    Sleep(1000)
    ControlClick("Editor","Die Datei","Button1")
    ;~ Send("{ENTER}")
    Send("^v")
    
    
    $y=1
    
    
    Do
    	Send("^{HOME}")
    	Send("+{END}")
    	Send("^x")
    
    	Sleep(10)
    	$temp = ClipGet()
    ;~ 	MsgBox(0,"CLIPGET",$temp)
    		if  $temp <> "" Then $temp2 = StringSplit($temp,": possibly used before declaration",1)
    			if not @error Then $temp3 = StringSplit($temp2[1],"WARNING: ",1)
    				if not @error Then $temp4 = StringLeft($temp3[2],1)
    					if not @error Then $temp5 = '"' & $temp4 & '"'
    						if not @error Then $temp6 = StringInStr($temp5,'"$"')
    ;~ 							msgBox(0,"",$temp6)
    							if $temp6 = 1 Then
    								IniWrite($inifile,"VARIABLEN",$temp3[2],1)
    ;~ 								MsgBox(0,"",$temp3[2])
    							EndIf
    	Sleep(10)
    	ClipPut("")
    	Send("{DEL}")	
    	Send("^a")
    	Send("^c")
    	$clip_end = ClipGet()
    ;~ 	MsgBox(0,"clip",$clip_end)
    
    
    
    
    Until ClipGet() = ""
    Send("!{F4}")
    Sleep(100)
    ControlClick("Editor","Die Datei","Button2")
    
    
    
    
    $file = FileOpen($inifile & ".txt",2)
    FileWrite($file, "DIM ")
    $variablen = IniReadSection($inifile,"VARIABLEN")
    	For $i = 1 To $variablen[0][0]
    		FileWrite($file, $variablen[$i][0] & ", ")
        Next
    
    
    
    
    Run("notepad " & @TempDir & "\VAR" & $now & ".txt")
    Exit
    Alles anzeigen

    Beispiel für eine Ausgabe.

    Zitat


    DIM $InfoGUI, $left, $top, $with, $height, $MyhWnd, $SRCCOPY,

  • TCPIpToName

    • wolkenloser
    • 3. Februar 2006 um 18:42

    Das Problem dabei ist, das zu einer IP Adresse NICHT genau ein Name gehört:
    Ein Beispiel ist "ping -a" "IPDADRESSE?"

    So liefert "ping https://autoit.de/www.web.de" die IP:
    Ping https://autoit.de/www.web.de [217.72.195.42] mit 32 Bytes

    Wenn mann mit "ping -a 217.72.195.42" den Namen versucht herauszubekommen kommt bei mir aktuell was anderes heraus

    Ping ha-42.web.de [217.72.195.42] mit 32 Bytes Daten:

    Es dürfte so als schwer sein das herauszubekommen was man wirklich haben will.

  • Ordner als Fenster öffnen

    • wolkenloser
    • 1. Februar 2006 um 22:08

    Ausschnitt aus der Hilfe :)

    Code
    Kommandozeilenparameter
    Das besondere Array $CmdLine wird mit den deinem AutoIt-Skript übergebenen Komandozeilenparametern initialisiert. Der Skriptname wird dabei nicht als Parameter aufgefasst; den kannst du ü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 (nach dem Skriptnamen)
    $CmdLine[2] ist Parameter 2 etc.
    ...
    $CmdLine[$CmdLine[0]] ist einer der Wege, um den letzten Parameter auszulesen...
    
    
     
    
    
    Wenn du also dein Skript so ausführst:
    
    
        AutoIt3.exe meinskript.au3 param1 "das ist ein anderer Parameter"
    
    
    $CmdLine[0] ergibt... 2
    
    
    $CmdLine[1] ergibt... param1
    
    
    $CmdLine[2] ergibt... das ist ein anderer Parameter
    
    
    @ScriptName ergibt... meinskript.au3
    
    
     
    
    
    Zusätzlich zu $CmdLine gibt es noch eine variable namens $CmdLineRaw, die unformatierten Kommandozeilenparameter enthält. Im obigen Beispiel:
    
    
    $CmdLineRaw ergibt... meinskript.au3 param1 "das ist ein anderer Parameter"
    Alles anzeigen
  • Ordner als Fenster öffnen

    • wolkenloser
    • 31. Januar 2006 um 21:21

    Kannst Du mal die einzelnen Schritte aufschreiben ?

    Z.B.

    Menue:
    Datei->Eigenschaften->Logdatei einstellen ?

  • Ordner als Fenster öffnen

    • wolkenloser
    • 31. Januar 2006 um 20:29

    Wie teilst Du dem Programm denn mit in welche Dateies schreiben soll ? übergibst Du den Dateinamen beim Programmaufruf wie in meinem Beispiel ?
    Mußt Du das Programm vorher beenden ?

  • Ordner als Fenster öffnen

    • wolkenloser
    • 31. Januar 2006 um 19:40
    Zitat

    Ich erstelle alle 24 Stunden eine neue Datei die das Datum des jeweiligen Tages trägt. Über diese Datei wird dann das Protokollprogramm neu gestartet.

    Wie meinst Du das genau ?: "Über diese Datei wird dann das Protokollprogramm neu gestartet".

    Je mehr Input wir bekommen desto besser können wir dir Helfen.

    Eine Datei zu erstellen die das Datum des Aktuellen Tages hat, ist sicherlich kein Problem:

    Code
    $file = "c:" & @MDAY & "." & @MON & "." & @YEAR &".log"; Dateiname z.B. 31.01.2006.log
    $Scannprog = "C:\Programme\Scannprogrammordner\Scannprogramm.exe"
    
    
    FileOpen($file,2); neue Datei erstellen
    FileWriteLine($file,"Das steht in Zeile1"); irgendetwas reinschreiben, "" kann auch leer bleiben
    FileClose($file)
    Run($Scannprog & " " & $file); Programm aufruf mit Dateiname als startparameter, man beachte das & " " & - wichtig weil sonst Programm name und Dateiname nicht getrennt werden
  • Dateianzahl ermitteln

    • wolkenloser
    • 31. Januar 2006 um 12:18

    Du solltest zumindest mal in die Hilfe schauen

    DirGetSize liefert dir folgende Infos in einem Array wenn das Flag gesetzt ist:

    $array[0] = Size
    $array[1] = Files count
    $array[2] = Dirs Count

    Wenn Du die Anzahl haben willst mußt DU also nur den Wert für "$array[1]" auswerten

    Code
    $#include <array.au3>
    $size = DirGetSize("C:\test",1)
    If IsArray($size) Then
        Msgbox(0,"Anzahl der Files",$size[1])
    EndIf
  • Meherere UDF's

    • wolkenloser
    • 29. Januar 2006 um 17:35

    Hi,
    Sorry wenn ich direkt was zu mäkeln habe.

    Das Problem bei den UDF´s ist meiner Meinung nach, das man oft keine Beschreibung dazu hat was Das UDF eigendlich macht.

    Vielleicht kriegen wir das ja besser hin ?

    Am genialsten wäre natürlich eine Beschreibung die man in die AUTOIT Hilfe integrien könnt.

    peethebee , hast Du da keine Idee zu ?

  • AutoItGUIBuilder

    • wolkenloser
    • 28. Januar 2006 um 09:50

    Hi,
    wenn ich die EXE Aufrufe kalppts wirklich besser.
    Hast Du noch modifizierte Dateien INCLUDET ?

    Wenn ich das richtig sehe hast Du es mit BETA 101 compiliert ?

  • AutoItGUIBuilder

    • wolkenloser
    • 27. Januar 2006 um 21:11

    Hi,

    Ich würde gerne loben, aber bei mir hakt das irgendwie :(
    Es ist wie Katz und Maus spielen, ich bekomme die Punkte meißt nicht gepackt, bzw verschwindet das Control was ich verändern will im Hntergrund o.ä.

    Jedenfalls kommt bei mir nicht viel Freude auf :(

    Zu den Vorgaeben beim erstellen eines neuen Controls hatte peethebee ja angeregt, realistische Werte vorzugeben.

    Ich habe soetwas mal mit Stringsplit gemacht,

    Das heist es wird ein Wert in der Combobox angegeben + Infostring.
    Den infostring schneide ich dann hinterher einfach wieder ab, so habe ich immer nur gültige Werte im Control stehen

    Beispiel:

    Code
    ....
    $Input4 = GUICtrlCreateCombo($Zuordnung, 27, 95, 121, 20, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetData($Input4, "7703 Verwaltung|7704 VerkaufsTeam|7709 Azubis|,$Zuordnung)
     
    $Zuordnung_4stellig = StringSplit(GUICtrlRead($Input4)," ")
    .....

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™