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

Beiträge von milko

  • Install-Script-Generator

    • milko
    • 26. März 2007 um 10:56

    Hi BugFix,

    du hast wohl Recht. Ich hatte nicht die gesamte Ordnerstruktur (Ordner+Unterordner) vom Zielordner im Zielverzeichnis angelegt. So eine automatisches Anlegen von Ordnern, wie du es vorhast, wäre natürlich schick :)

  • Install-Script-Generator

    • milko
    • 25. März 2007 um 13:14

    Hi,

    eine gute Idee:-)

    Ich habe es bei mir getestet, leider ohne Erfolg "Installation Fehlerhaft". Ich habe bestimmt einen Fehler beim Aufruf der Funktion:
    _WriteInstall("G:\Apps\TUGZip", "C:\TEMP\Test", "C:\TEMP\setup.au3",-1,-1)

    Die Quelle ist vorhanden, den Zielordner habe ich vorher manuell angelegt. Das Setup-Script erzeugt im Zielordner, wie gewünscht, eine Datei Install.log mit folgendem Inhalt:
    2007-03-25 12:55:30 : \Apps\TUGZip\Forum.url = Fehler
    2007-03-25 12:55:30 : \Apps\TUGZip\Help.chm = Fehler
    usw.

    Viele Grüße,
    Milko

  • Optimierung / Diskussion :-)

    • milko
    • 18. März 2007 um 16:38

    Und das gefällt mir eben an diesem Forum:
    informativ, nicht überheblich, kompetent UND harmoniebedürftig.

    AspirinJunkie
    Dein Beispielskript fand ich als Anfänger verdeutlichend, Danke.

  • Problem mit der Funktion Filecopy

    • milko
    • 10. März 2007 um 10:32

    Mein Versäumnis bei der Fehlerbeschreibung, sorry!

    Ich konnte gerade den Fehler nicht mal bei mir reproduzieren :hammer:

    So hier nochmal ein bei mir reproduzierbares Fehlverhalten des Autoit (Version 3.2.2.0):

    $ret=Filecopy("c:\Temp\test.txt",c:\temp\test.txt",1)
    msgbox(0,"Ergebnis",$ret)

    Die Quelle und das Ziel sind gleich, bis auf die Groß-/Kleinschreibung der Buchstabe "T", das gleiche passiert natürlich auch mit der Buchstabe "C" usw.

    Nach der Ausführung ist die Datei "test.txt" gelöscht und $ret ist "0"

    2. Versuch: man gibt den Ordner c:\Temp frei und mountet ihn z.B. unter der Laufwerkbuchstabe Z

    $ret=Filecopy("c:\temp\test.txt",z:\test.txt",1)
    msgbox(0,"Ergebnis",$ret)

    Das gleiche Fehlverhalten. Windows meldet in so einem Fall Folgendes:
    "test kann nicht kopiert werden: Die Datei wird von einer anderen Person bzw. einem anderen Programm verwendet."

    Danke für die Mühe.

  • Problem mit der Funktion Filecopy

    • milko
    • 10. März 2007 um 07:41

    Kein Problem.

    Gehen wir davon aus, dass im Verzeichnis c:\temp eine Datei mit dem Namen "test.txt" existiert. Wenn ich mit autoit den Befehl:

    Filecopy("c:\temp\test.txt","c:\temp\test.txt",1)

    absetze, dann habe ich den Fall, dass die Datei gelöscht und ein Fehler zurückgemeldet wird.

  • Problem mit der Funktion Filecopy

    • milko
    • 9. März 2007 um 21:15

    Hi,

    Filecopy(Quelle,Ziel,flag)

    wenn bei der Funktion Filecopy die Quelle und das Ziel gleich sind und der Flag 1 beträgt (überschreiben erlaubt), dann wird die Datei endgültig gelöscht und ein Fehler zurückgemeldet. Windows Explorer verweigert in diesem Fall die Ausführung (Meldung: der Quell-. und Zieldateiname sind identisch). Handelt es sich hierbei um einen Bug?

    Gruß, Milko

    PS.: Das obige Beispiel ist eine vereinfachte Darstellung eines komlpizierten Falles in einer Netzwerkumgebung.

  • Dateisuche mit AutoIt

    • milko
    • 4. März 2007 um 18:51

    Genau das meinte ich, Danke :kiss:

    Edit: Ähmm, ich habe gerade festgestellt, dass deine Version im Gegensatz zur Version von "jos van der Zande" nicht nur Filenamen, sondern auch Ordnernamen berücksichtigt, das kann natürlich manchmal sogar gewünscht sein...
    (d.h. auch, dass du eine Abfrage weniger in deiner Funktion hast ;) )

  • Dateisuche mit AutoIt

    • milko
    • 4. März 2007 um 10:53

    Klasse!

    Wenn du irgendwann Zeit hast, könntest du auch eine Filemask-Auswertung einbauen?

    Immer diese Sonderwünsche :)

  • png erzeugen omg

    • milko
    • 25. Februar 2007 um 13:49

    Hi,

    ich habe ein paar Fehler entdeckt und korrigiert (siehe "; Edit Milko"). Ein paar Stellen habe ich auch ergänzt, sonst hätte das Script bei mir nicht funktioniert.

    Das Problem, dass das 2. Select/Case nicht funktioniert hat, lag an der Zeile 32 in deinem gesposteten Script.

    Ich habe auch das Schreiben der Batch-Datei auskommentiert (geschmacksache). Außerdem würde ich an deiner Stelle die Files (captdll.dll und topng.exe) mit FileInstall ins Temp-Verzeichnis kopieren, dann brauche ich auch die Ausgangsfiles nicht so hin und her zuschieben.

    Viele Grüße, Milko

    Spoiler anzeigen
    [autoit]

    DesktopScreenShot2(".png")
    Func DesktopScreenShot2($Format) ; Edit Milko
    ; Local $Cwin1 = WinGetHandle(""); Übernimmt aktuelles Fenster
    ; Local $Cwin2 = WinGetPos($Cwin1); Übernimmt aktuelle Fenstergrösse
    $SaveAs = $format ; Edit Milko
    $dll1=@ScriptDir & "\data\captdll.dll" ;Edit Milko
    Select
    Case $SaveAs = ".jpg"
    Global $SaveAs = ".jpg"
    $quality=100 ; Edit Milko
    Case $SaveAs = ".png"
    $SaveAs = ".bmp"
    $quality = -1
    Case $SaveAs = ".bmp"
    $SaveAs = ".bmp"
    $quality = -1
    EndSelect
    Msgbox(0,"","got 313")
    Global $CaptureDirectory = @TempDir & "\"; Verzeichnis für die Screenshots
    $CaptureFile = "ss" & @HOUR & @MIN & @SEC & $SaveAs
    DllCall($dll1, "int", "CaptureRegion", "str", $CaptureDirectory & $CaptureFile, "int", "0", "int", "0", "int", @DesktopWidth, "int", @DesktopHeight, "int", $quality)
    ; $CaptureDirectory & $CaptureFile = zu speichernder Pfad und Name des Screenshots
    ; "0" = Links
    ; "0" = Oben
    ; @DesktopWidth = Breite
    ; @DesktopHeight = Höhe
    ; $Quality = BMP (-1) od. JPG (1-100)
    Msgbox(0,"","got 323")
    If @error Then
    MsgBox(262160,"Error", $03)
    Msgbox(0,"","got 326")
    Else
    ; $SaveAs = $format ; Edit Milko
    Msgbox(0,"","got 329")
    Select
    Case $Format = ".jpg"
    Msgbox(0,"","got 330")
    Global $CaptureFile
    _Upload()
    Case $Format = ".png"
    FileMove($CaptureDirectory & $CaptureFile, @ScriptDir&"\data\"&$CaptureFile)
    sleep(500)
    If FileExists(@ScriptDir& "\data\"&$CaptureFile) Then ; Edit Milko
    $filename = StringTrimRight($CaptureFile, 3)
    ;~ $BatFile = "@echo off" & @CRLF ; Edit Milko
    ;~ $BatFile = $BatFile & "topng " & $CaptureFile & " png" & @CRLF
    ;~ $bat = FileWrite("data\pngcreate.bat", $BatFile)
    ;~ FileClose($bat)
    ;~ RunWait(@ScriptDir&"\data\pngcreate.bat", @ScriptDir&"\data", @SW_HIDE)
    ;~ FileDelete(@ScriptDir & "\data\pngcreate.bat")
    runwait (@ComSpec & " /c " & @ScriptDir & "\data\topng.exe " & $CaptureFile & " png" & " pause",@ScriptDir & "\data\",@SW_HIDE) ; Edit Milko
    FileMove(@ScriptDir & "\data\"&$filename&"png", @TempDir&"\"&$filename&"png")
    FileDelete(@ScriptDir & "\data\"&$CaptureFile) ; Edit Milko (Zeile verschoben)
    msgbox(0,"PNg-File erstellt?","")
    Global $CaptureFile = $filename&"png"
    _Upload()
    Else
    MsgBox(1,"Error", $04)
    EndIf
    Case $Format = ".bmp"
    Global $CaptureFile
    _Upload()
    EndSelect
    EndIf
    EndFunc ;==> DesktopScreenShot2()

    [/autoit]
  • Zahlwert aus String auslesen

    • milko
    • 24. Februar 2007 um 15:44

    AspirinJunkie

    Vielen Dank für den Link. Sehr gute Einführung, ich habe mir zusätzlich das Programm Regex Coach heruntergeladen, interessantes Tool, besonders für Anfänger.

    Gruß, Milko

  • Rechtsklick auf Listview

    • milko
    • 24. Februar 2007 um 13:53

    Hi,

    das Script von BugFix ist zwar sehr schön für die Einarbeitung, hat aber leider auch 2 andere graviende Fehler:

    1. Wenn ich eine Zeile zum Editieren geöffnet habe und mir danach eine 2. Zeile zum Editieren öffne, dann stimmen die Anzahl der Einträge nicht mehr (die Zellen von 1 bis 14 werden doppelt aufgelistet).

    2. Wenn ich beim Editieren einer Zeile eine Zelle (z.B. Zeile 5/ Spalte 1) gelöscht habe, dann werden bei allen nachfolgenden Zeilen, die zum Editieren geöffnet werden, die Zelle (Zeile x /Spalte 1) nach dem Schließen des Editfensters autmoatisch gelöscht.


    Edit: ich habe 3 kleine Änderungen vorgenommen, ich hoffe, es ist so in Ordnung (siehe "; Edit Milko").

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #Include <GuiList.au3>
    Dim $arItem[8], $arChange

    $Form1 = GUICreate("AForm1", 633, 265, -1, -1)
    $ListView1 = GUICtrlCreateListView("1|2|3|4|5|6|7|8|9|10|11|12|13|14", 16, 16, 601, 225)
    GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    For $i = 0 To 7
    $arItem[$i] = GUICtrlCreateListViewItem("",$ListView1)
    For $k = 0 To 13
    _GUICtrlListViewSetItemText($ListView1, $i, $k, "Zeile"&$i+1 & "/Spalte"&$k+1)
    _GUICtrlListViewSetColumnWidth($ListView1, $k, 86)
    Next
    Next
    $lvContext = GUICtrlCreateContextMenu($ListView1)
    $conEdit = GUICtrlCreateMenuitem("Edit", $lvContext)
    $conDelAll = GUICtrlCreateMenuItem("Lösche kpl. Eintrag", $lvContext)
    ; GUI für Edit
    $Form2 = GUICreate("AForm2", 328, 432, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
    $List1 = GUICtrlCreateList("", 20, 20, 285, 370, BitOR($WS_HSCROLL,$WS_BORDER))
    $btnOK = GUICtrlCreateButton("OK", 196, 400, 109, 21, 0)
    $lContext = GUICtrlCreateContextMenu($List1)
    $conEdit_l = GUICtrlCreateMenuitem("Editieren", $lContext)
    $conDel_l = GUICtrlCreateMenuitem("Löschen", $lContext)

    GUISetState(@SW_SHOW, $Form1)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $conDelAll
    _GUICtrlListViewDeleteItem($ListView1, _GUICtrlListViewGetSelectedIndices($ListView1))
    Case $conEdit
    _GUICtrlListClear($List1) ; Edit Milko
    $lvIndex = _GUICtrlListViewGetSelectedIndices($ListView1)
    $arChange = _GUICtrlListViewGetItemTextArray($ListView1, $lvIndex)
    if IsArray($arChange) Then ; Edit Milko
    For $i = 1 To $arChange[0]
    _GUICtrlListAddItem($List1, $arChange[$i])
    Next
    GUISetState(@SW_SHOW, $Form2)
    endif
    Case $btnOK
    For $i = 0 To _GUICtrlListCount($List1) -1
    _GUICtrlListViewSetItemText($ListView1, $lvIndex, $i, _GUICtrlListGetText($List1, $i))
    Next
    GUISetState(@SW_HIDE, $Form2)
    Case $conEdit_l
    $lIndex = _GUICtrlListGetCaretIndex($List1)
    $var = InputBox("Eintrag ändern", "", _GUICtrlListGetText($List1, $lIndex))
    if not @error then _GUICtrlListReplaceString($List1, $lIndex, $var) ; Edit Milko
    Case $conDel_l ; nicht wirklich löschen, sonst wär eine Spalte zu wenig
    $lIndex = _GUICtrlListGetCaretIndex($List1)
    _GUICtrlListReplaceString($List1, $lIndex, "")
    EndSwitch
    WEnd

    [/autoit]

    Viele Grüße, Milko

  • Domäne anzeigen und Computer auswählen

    • milko
    • 24. Februar 2007 um 13:23

    Hi Mega,

    dein vorriges Script hat bei nicht funktioniert, wenn net view nur einen Rechner (mein Notebook selbst) auflistete. Dein 2. Script funktiniert prima. Endlich habe ich auch das mit der Funktion StdoutRead() verstanden. Ich habe mir immer die Ausgaben von externe Programmen mit ">>" in eine Datei umleiten lassen, um deren Inhalt später mit FileOpen() und FileRead() auswerten zu können.

    Vielen Dank, Milko

  • Werbung die 2e

    • milko
    • 24. Februar 2007 um 13:02

    Hi,

    interessante Diskussion. Ich habe leider abgestimmt (gegen die Werbung), bevor ich eure Beiträge gelesen habe.

    Aber im Nachhineien, nachdem ich gelesen habe, was so 10/20 Skunden meiner Zeit pro Tag einbringt, habe ich wirklich nichts dagegen, die eine Varianten (zwischen den Posts) zu behalten. Ich sehe das jetzt als gezielte Ausnutzung von Möglichkeiten, den Betreibern des Forums, ein paar Cents zukommen zu lassen. Wenn das System es hergibt, warum nicht...

    [] Ich bevorzuge die Variante mit der Box
    [X] Ich bevorzuge die Zwischen-Posts
    [] Ich hasse Werbung, weg damit!
    [] kann beides bleiben!

    Viele Grüße, Milko

    Ps. Gleich fange ich damit an
    PS2: Firefox: Rechtsklick auf die Werbung-> "Link in einem neuen Tab öffnen" und gut ist. Ich brauche mir die Werbung nicht mal anzusehen :party3:

  • Löschen von Dateien

    • milko
    • 23. Februar 2007 um 09:14

    Hi Thomas,

    es wäre schön, wenn du auch Ordner und Unterordner mitlöschen könntest :tier:


    Gruß, Milko

  • Verknüpfungen u. Ordner auf dem Desktop an einen bestimmten Ort verschieben

    • milko
    • 21. Februar 2007 um 13:49

    Hi Tom,

    es geht auch einfacher:
    1. Deine Einstellungen über dem Menüpunkt "Exportieren..." in eine Datei z.B. desktop.dsv exportieren.

    2. Danach brauchst die systray überhaupt nicht mehr, deine Einstellungen kannst du dann mit der Befehlszeile "desksave.exe desktop.dsv" wieder herstellen lassen, ohne extra Script zur Steuerung der Systray.

    Gruß, Milko

    PS. Die Version 7.1.1 hat einen Fehler, wenn du die obige Befehlszeile ausführst (der Programmierer ist schon informiert). Du kannst die Version 7.1 benutzen, die ich hier hochlade.

    Dateien

    dsksve7.1.zip 84,01 kB – 282 Downloads
  • Aktueller Windows User/Anmeldename

    • milko
    • 20. Februar 2007 um 11:02

    Hi,

    du könntest die Ausgabe des Programmes in eine Datei umleiten (z.B. psloggedon.exe -x -l >output.tmp) und sie dann mit Autoit in Ruhe auswerten;-)

    Gruß,
    Milko

  • GUICtrlSetTip, nach anklicken kein Anzeige mehr

    • milko
    • 20. Februar 2007 um 10:17

    Hi,

    das obige Problem habe ich auch bislang und habe deshalb statt dessen immer die Funktion Tooltip verwendet (ist aber umständlich).
    Ich habe ein kleines Script, wo man das Problem nachvollziehen kann, ein Klick auf das Icon und der Tipp taucht nicht mehr auf. Was mach ich da falsch?

    [autoit]


    #include <GUIConstants.au3>

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

    GUICreate("Test-GUI",250,100)
    GUISetBkColor (0x00E0FFFF)

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

    $button = GUICtrlCreateButton ("OK",90,70,70,20)
    $tipp=GUICtrlCreateIcon("shell32.dll", 24, 115, 30,16,16)
    GUICtrlSetTip($tipp,"Hier steht der Tipp")
    GUISetState()

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

    While 1
    $msg = GUIGetMsg ()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    exit
    Case $msg = $button
    exit
    EndSelect
    Wend

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Verknüpfungen u. Ordner auf dem Desktop an einen bestimmten Ort verschieben

    • milko
    • 19. Februar 2007 um 11:21

    Hi,

    das Thema hatten wir schon vor ca. 3 Wochen. Die beste Lösung, die ich dann realisiert habe, war das mit dem Tool Desksave (https://autoit.de/www.desksave.de). Das Tool ist Freeware und kann auch von der Kommandozeile aus aufgerufen werden.

    Viel Glück,
    Milko

  • Netzwerk datei kopieren

    • milko
    • 14. Februar 2007 um 19:45

    Hi,

    ist folgendes Script was für dich?

    Remote Copy

    Viele Grüße, Milko

  • TCP/IP Chat + RSA Verschlüsselung!

    • milko
    • 10. Februar 2007 um 11:53

    Hi,

    was wäre das AutoIt-Forum ohne euch und eure Arbeit!

    Danke :kiss:

    Gruß, Milko

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™