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

Beiträge von Lottich

  • [gelöst] Mittelpunkt einer Fläche im 3D Raum

    • Lottich
    • 5. November 2012 um 20:12

    Also wenn ich das richtig verstanden habe, dann sollte das doch mit dem Pytagoras ermittelbar sein. Die Hypotenuse errechnen und diese dann durch 2 teilen. Den errechneten Wert dann auf der Hypotenuse markieren.
    Sollte doch für dich ein Klacks sein :D

  • aktive .exe verschieben

    • Lottich
    • 5. Oktober 2012 um 20:52
    Zitat von $var
    Spoiler anzeigen
    [autoit]

    MsgBox(0, '', @ScriptFullPath)
    If $CmdLine[0] <> 0 Then
    FileDelete($CmdLine[1])
    Else
    _Move(@DesktopDir)
    EndIf

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

    Func _Move($s_Path)
    FileCopy(@ScriptFullPath, $s_Path)
    ShellExecute($s_Path & '\' & @ScriptName, @ScriptFullPath)
    Exit
    EndFunc

    [/autoit]

    So könnte man es auch versuchen...

    Alles anzeigen


    Hi $var

    Das hat es gebracht! Danke. habe nur aus FileCopy ein FileMove gemacht, damit die Ursprüngliche Datei gelöscht wird.

    Und auch meinen Dank an ProGamer, dass du versucht hast mir zu helfen. :thumbup:

  • aktive .exe verschieben

    • Lottich
    • 5. Oktober 2012 um 20:34

    Das mit dem doppelten "\" hab ich schon während des Postens bemerkt und behoben, nur beim Posten vergessen zu ändern :)

    Ich verstehs nicht, Warum klappt dein Beispiel und bei mir nicht?

  • aktive .exe verschieben

    • Lottich
    • 5. Oktober 2012 um 20:04
    Zitat von xXxProGamerxXx
    Spoiler anzeigen
    [autoit]

    Func _Move($pfad)
    FileCopy(@ScriptFullPath,$pfad)
    RunWait($pfad)
    ShellExecute(@ComSpec, "/c ping 0.0.0.1 -n 1 -w 2000 & del " & @ScriptName, @ScriptDir, "open", @SW_HIDE); by SlowlyDead & funkey
    Exit
    EndFunc

    [/autoit]


    Nicht getestet aber ich glaube es sollte gehen

    Alles anzeigen


    Hallo Pro,

    Dein Spoiler funktioniert leider nur zur Hälfte. Es beendet das Programm und verschiebt sie zum Ziel, jedoch wird das dann nicht gestartet.

    Ich hab die Funktion so aufgerufen:

    [autoit]

    Global Const $programmpfad = @UserProfileDir & "\beispielordner\"
    If Not FileExists($programmpfad & "\" & @ScriptName) Then _move($programmpfad & @ScriptName)

    [/autoit]


    Warum klappt es nicht?

  • aktive .exe verschieben

    • Lottich
    • 5. Oktober 2012 um 19:32

    Hey

    Ich brauch für mein Script noch eine Funktion, die mir die aktuell laufende .exe beendet, diese dann in ein bestimmtes Verzeichnis verschiebt und die neu entstandene .exe startet.
    Ich hab jetzt für mein aktuelles Projekt soweit alles fertig, selbst den Updater konnte ich erfolgreich einbauen (vielen Dank an Schnuffel für die Funktion).

    Ich könnte das ja alles ohne weiteres mit mehreren Scripten lösen, jedoch möchte ich alles in einer einzigen .exe unterbringen.
    Wie stell ich das an?

  • Autoit EXE an Taskleiste anheften (Windows 7)

    • Lottich
    • 29. September 2012 um 09:33

    :rofl::rofl::rofl:

    Das stimmt tatsächlich!
    Hab das grad getestet, indem ich die Namen von Programmen / Verknüpfungen geändert hab ( einfach irgendwo mitten im Name "install" / "support" eingefügt, nichtmal am Anfang).
    Und schon konnte ich nicht mehr " .... anheften" auswählen.

    Seltsames Windoof....

  • Deutsche Sprache - Schwere Sprache (?)

    • Lottich
    • 19. September 2012 um 00:05
    Zitat von Mars

    Kennt jemand noch folgendes ?
    gut | besser | am besten
    gut | gut + | gut ++
    schön | schön + | schön ++

    ...

    Achtung Off-Topic

    Beispiel einer Steigerung mehrerer Wörter

    Käckchen am Stöckchen
    Kacke am Stock
    Scheisse am Knüppel

  • Datenabfrage einer INI-Datei

    • Lottich
    • 18. September 2012 um 23:54

    Schreib dir doch einfach eine Abfragefunktion.

    Beispiel einer Abfragefunktion


    Diesen Code verwende ich, um in einem Programm die Namen der Buttons zu ändern, ohne dass ich dafür in den Quelltext muss. Die Daten stehen in einer INI. als Beispiel:

    Code
    [Daten für Buttons]
    bereich1 =2|Renate|Einkaufen
    bereich2 =5|helga|heidi|dagmar|günther|Peter

    Mit der folgenden Funktion

    [autoit]

    Global $tempfile = "pfad zur INI"
    Func daten_buttons($daten_to_check, $datenpart = 1)
    $splittext = IniRead($tempfile,"Daten für Buttons",$daten_to_check, 0)
    If $splittext <> "0" Then
    $datencomplett = StringSplit($splittext,"|")
    Return $datencomplett[$datenpart]
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]

    kann man dann ganz einfach die Daten ermitteln, die man braucht.
    Beispiel:

    [autoit]

    daten_buttons("bereich1"); gibt 2 zurück, in meinem Fall werden dann, durch eine andere Funktion, 2 Buttons für den Bereich 1 erstellt
    daten_buttons("bereich2"); gibt 5 zurück, der mir dann 5 Buttons im 2. Bereich erstellt

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

    GuiCtrlCreateButton(daten_buttons("bereich2",2), .... ); würde dann einen Button erstellen mit Namen Renate

    [/autoit]

    Das wäre dann ganz leicht in der INI änderbar


    Fühl dich frei und dazu ermuntert dieses Beispiel für deine Zwecke abzuändern :D

  • Wo ist der fehlende 1€?

    • Lottich
    • 15. September 2012 um 23:32

    das ist ungefär so, wie, wenn man seine Finger (inkl. Daumen) zählt:

    bei der einen Hand fängt man rückwärtszählend an. Also 10, 9, 8 ,7 ,6
    Und an der anderen Hand sind ja auch noch fünf....

    6 und 5 sind 11 8|8|;)

  • Vorbereitung auf zu erwartende Änderung in neuer AutoIt-Version

    • Lottich
    • 11. September 2012 um 19:39

    Glück für mich, denn ich werde die Herkömmliche Deklaration weiter verwenden. Hatte in der Schule kein Informatik und bin auch schon so alt, dass es schwer werden würde, mich dem neuen System anzupassen, bzw mich da reinzufinden.
    Werd nämlich schon langsam ranzig :D

  • Vorbereitung auf zu erwartende Änderung in neuer AutoIt-Version

    • Lottich
    • 11. September 2012 um 19:17

    ich dachte, es wären nun 2 Möglichkeiten? Also, dass man künftig sowohl mit $ als auch ohne schreiben kann?!

  • Deutsche Sprache - Schwere Sprache (?)

    • Lottich
    • 8. September 2012 um 10:00

    :thumbup:

    Und das sind nur Beispiele :)

  • Was kommt nach dem Punkt? (.)

    • Lottich
    • 2. September 2012 um 00:19

    Danke für die Infos :thumbup:
    mal sehn, was ich damit anstellen kann.

    Angenommen: ich hab ein selbst erstelltes AutoIt-Programm auf einem Server laufen. Wenn ich den mit Objektelemente umschreibe, könnte man dann ein Programm schreiben, der die Objekte des Serverprogramms abfragt, das Serverprogramm entsprechend reagieren lässt? somit könnte man sich RDP doch sparen, oder?

  • Was kommt nach dem Punkt? (.)

    • Lottich
    • 1. September 2012 um 23:14

    Anmerkung: evtl ist das hier im falschen Bereich. Wenn ja, dann vergebt mir bitte meine "Unterscheidungsschwäche" :D

    Frage an die erfahrenen Scriptgötter

    [autoit]

    $hallo.warum_ist_das_blau_und_was_kann_man_damit_machen?

    [/autoit]

    Immer wieder passiert es mal, dass ich nach ner Variable einen Punkt setze, natürlich ungewollt und immer wieder frage ich mich dann, was es zu bedeuten hat, dass der darauf folgende Text blau erscheint.

    Was hat es damit auf sich? Und was kann ich damit machen? Ich vermute, dass es irgendwas mit Objekten zu tun hat, hab aber auch keine Ahnung, was ich mit Objekten anstellen kann.
    Gibt es vllt ein Tutorial, was mir das genauer erklären kann? Und wenn nicht, hoffe ich, dass sich jemand von euch damit abmüht, es mir vllt auch an Hand eines Beispiels zu erklären?!

    Das wäre echt "very nice" :rolleyes:

  • Einstellbare Zeit

    • Lottich
    • 31. August 2012 um 12:43

    dann guck mal nach StringSplit()...

  • Einstellbare Zeit

    • Lottich
    • 31. August 2012 um 06:16

    Wenn ich die Frage richtig verstanden habe (ist für mich nicht wirklich eindeutig), dann muss ich meinen Vorrednern 100%ig recht geben.
    Ein Blick in Tutorials ist schon hilfreich.

    hab hier in ein paar Minütchen 2 Beispiele gebastelt, als Anschauung.

    Beispiel 1: Inputboxen
    [autoit]

    #region: Inputbox um eine Wartzezeit einzutragen (inkl. "Erklärungs-Fehlerhandling")
    Dim $checkwert = False, $sleeptime

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

    Func sleepdemo()
    $sleeptime = InputBox("Sleeptime eintragen",@CR&"Eingabe erfolgt in Sekunden, weil in der Sleep-Zeile"&@CR&"der Wert dieser Inputbox mit 1000 multipliziert wird."& _
    @CR&@CR&"Beispiel:"&@CR&"Wert = 69"&@TAB&"mal 1000 = Sleep(69 * 1000) ==> Sleep(69000)", "", "", 350, 200)
    Switch @error
    Case 0 ;==> Okay-Button wurde gedrückt
    If Not StringRegExp($sleeptime, "\A\d+\z") Then ;==> String wird auf Korrektheit geprüft (nur Zahlen ohne Leerzeichen / Punkt / Komma usw...)
    MsgBox(0,"????", "Du weisst schon, dass du eine Zahl eingeben musst???")
    Else
    $checkwert = True
    EndIf
    Case 1 ;==> Abbrechen- oder Exit-Button wurde gedrückt
    MsgBox(0,"Was denn nun?","Warum hast du die Demonstration abgebrochen???." & @CR & "Weisst wohl nicht was du willst?!")
    Exit
    Case Else
    MsgBox(0,"Fehler", "Ein unerwarteter Fehler ist aufgetreten." & @CR & "Die Demo wird abgebrochen!")
    Exit
    EndSwitch
    EndFunc

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

    Do
    sleepdemo()
    Until $checkwert = True

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

    Sleep($sleeptime * 1000)
    MsgBox(0,"Siehste?","War doch gar nicht so schwer."&@CRLF&"Die Wartezeit ist abgelaufen."&@CRLF&@CRLF&"Die Demo wurde erfolgreich beendet."&@CRLF&"Herzlichen Glückwunsch!!")
    #endregion ;==> sobald dieses Prinzip verstanden wurde, was echt keine Schwierigkeit darstellen sollte, wird der nächste Code ausreichend sein:

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

    #region: Kurzform des oberen Prinzips
    $sleep = InputBox("Sleeptime","in Sekunden eintragen")
    Sleep($sleep*1000)
    #endregion

    [/autoit]
    Beispiel 2: GUI
    [autoit]

    #region: Beispiel mit einer GUI (Demo via ToolTip)
    #include "EditConstants.au3" ;==> wegen $ES_NUMBER (nur zahlen schreiben ist möglich)
    $gui = GUICreate("Sleeptime",200,100)
    GUICtrlCreateLabel("Stunden", 25,10)
    GUICtrlCreateLabel("Minuten", 80,10)
    GUICtrlCreateLabel("Sekunden",130,10)
    $input_stunde = GUICtrlCreateInput("", 30,30,30,-1,$ES_NUMBER)
    $input_minute = GUICtrlCreateInput("", 85,30,30,-1,$ES_NUMBER)
    $input_second = GUICtrlCreateInput("",140,30,30,-1,$ES_NUMBER)
    $button_ok = GUICtrlCreateButton("übernehmen", 10,70,80)
    $button_esc = GUICtrlCreateButton("abbruch", 110,70,80)
    GUISetState()
    while 1
    Switch GUIGetMsg()
    Case $button_esc
    ExitLoop
    Case $button_ok
    $wert_sleeptime = GUICtrlRead($input_stunde) * 3600000 + GUICtrlRead($input_minute) * 60000 + GUICtrlRead($input_second) * 1000
    GUIDelete($gui)
    If $wert_sleeptime <> 0 Then
    sleepdemo2($wert_sleeptime)
    ExitLoop
    Else
    $wert_sleeptime = 10000
    MsgBox(0,"Achtung","Keine Werte eingetragen. $wert_sleeptime wurde zur Demo auf 10 Sekunden gesetzt.")
    sleepdemo2($wert_sleeptime)
    ExitLoop
    EndIf
    EndSwitch
    WEnd

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

    Func sleepdemo2($wert_sleeptime)
    For $i = $wert_sleeptime/1000 To 1 Step -1
    ToolTip(@CR & "Der Befehl" & @TAB & "Sleep($wert_sleeptime)" & @CR & "endet in" & @TAB & @TAB & $i & " Sekunden." ,"","","Countdown" & @TAB & "$wert_sleeptime = " & $wert_sleeptime & " ms ",1,1)
    sleep(1000)
    Next
    For $i = 1 To 0 Step -1
    ToolTip(@CR & "Der Befehl" & @TAB & "Sleep($wert_sleeptime)" & @CR & "endet jetzt." ,"","","Countdown" & @TAB & "$wert_sleeptime = " & $wert_sleeptime & " ms ",1,1)
    Sleep(1000)
    Next
    EndFunc
    #endregion

    [/autoit]

    MfG Lottich

  • Desktopcleaner v1.0

    • Lottich
    • 26. August 2012 um 16:38
    Zitat von shadow667

    Schönes Ding!
    Mir sind auf die schnelle 2 Fehler aufgefallen:

    * Bei WinXP haben deine Buttons keine Icons
    * Wenn man das Programm zum ersten Mal starter und bei der Frage, ob ein Ordner erstellt werden soll einfach mit Enter bestätigt kommt ein Error und das Programm beendet sich

    Gruß


    Hallo shadow. Das unter XP keine Icons in den Buttons dargestellt werden könnte daran liegen, dass evtl die DLL, aus der ich die Iconas beziehe, nicht vorhanden ist. Wenn ich eine neue Version rausbringe, dannwerd ich das ändern.
    Zu dem 2. Fehler: ist eigentlich keiner, nur Unachtsamkeit vom User und auch von mir selber, denn In dem Inputfeld steht ">> hier <<"
    An dieser Stelle müsste ein Ordnername angegeben werden. Das werd ich aber auch noch anpassen. :)


    Zitat von chesstiger

    ... Wenns sowas doch für mein Zimmer gäb...


    ja, das wünschte ich mir auch :D

  • Desktopcleaner v1.0

    • Lottich
    • 26. August 2012 um 03:58

    Hey all,

    sicher kennt der eine oder andere das Problem, dass sich schnell der Desktop mit vieeelen Dateien "zumüllt".
    Mir geht es häufig so, weshalb ich mich dazu entschieden hab, ein kleines, aber zumindest für mich sehr nützliches, Programm geschrieben, dass ich gern mit euch teilen möchte.

    Was macht das Programm?

    Es wird im @UserProfileDir ein neuer Ordner angelegt mit dem Namen des Programms.
    Dieser neue Ordner dient als Basis, indem neue Ordner erstellt werden, ganz wie der Wunsch des Users ist.

    Will man seinen Desktop aufräumen, kann man so auch gleich eine vernünftige Ordnung in die ganze Geschichte reinbringen (zB alle .rar-Dateien in einen Ordner "RAR Files").

    Anmerkung: Das Programm KOPIERT sich automatisch in das Basisverzeichnis. Die neue Datei wird für die Verknüpfungen auf den Desktop und nach @StartupDir genutzt.

    Anwendung mit Screenshots

    Per Buttonklick kann ein neuer Ordner angelegt werden. Bei Erstausführung wird automatisch die Funktion dafür aufgerufen, denn es muss mind. 1 Ordner in der Basis existieren.
    In der Combobox kann man die vorhandenen Ordner in der Basis auswählen. Mit Klick auf den 2. Button wird der in der Combobox gewählte Ordner geöffnet.

    _____ MAINGUI _________ MINIGUI _______ Auswahl Combo
    [Blockierte Grafik: http://www.ifa-clan.de/files/Forumbilder/autoit/maingui.PNG] _____ [Blockierte Grafik: http://www.ifa-clan.de/files/Forumbilder/autoit/minigui.PNG] _____ [Blockierte Grafik: http://www.ifa-clan.de/files/Forumbilder/autoit/combo.PNG]

    Bei Klick auf den Button "Hide"Wechselt die GUI zu einer winzigen GUI , die in der linken oberen Ecke des Desktops angezeigt wird. Klickt man auf diese GUI, wird die HauptGUI wieder angezeigt.
    Dies dient dazu, dass KEIN Icon in der Taskleiste angezeigt wird.

    Der eigentliche Sinn des programms ist jedoch das weisse Feld in der Mitte, die Drag´n´Drop-Zone
    Man wählt in der Combobox einen zuvor erstellten Ordner und zieht dann eine oder mehrere Dateien und/oder Ordner ind diese Drag´n´Drop-Zone und die Dateien/Ordner werden in den gewünschten
    Ordner verschoben.

    Das Programm kann entweder per Tray-Icon beendet werden oder mit ESC wenn die HauptGUI aktiv ist.

    Fazit

    Ruckizucki ist der Desktop wieder frei, die verschobenen Ordner/Dateien sind ordentlich verstaut und jederzeit per Buttonklick aufrufbar.
    Das Programm baut KEINE Internetverbindung auf, liest KEINE Daten aus, enthält KEINE Werbung/Malware/Viren oder sonstigen Hackermist!


    Über euer Feedback würde ich mich freuen. Die fertige EXE findet ihr im Anhang.

    SourceCode DesktopCleaner v1.0
    [autoit]

    #include "WindowsConstants.au3"
    #include "GUIConstantsEx.au3"
    #include "ButtonConstants.au3"
    #Include "File.au3"

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

    $Name_der_Instanz = "Superior Desktop Cleaner"
    If WinExists($Name_der_Instanz) Then
    MsgBox(0,"Instanzcheck aktiv","Es wird bereits eine Instanz des soeben gestarteten Programms ausgeführt."&@CRLF&@CRLF&"Die erneute Ausführung zur Laufzeit ist nicht zulässig.")
    Exit
    EndIf
    AutoItWinSetTitle($Name_der_Instanz);....;==> sorgt dafür, dass KEINE Mehrfachstarts des Programms möglich sind. Ähnlich wie _singleton()

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

    Global $name = "Mausers Desk-Cleaner", $iDropItem = -1, $gaDropFiles[1], $button[5], $open_selected_folder, $zielpfad, $combo, $dropper, $h_GUI, $h_Child
    Global $basis = @UserProfileDir & "\" & $name & "\"

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

    Func check();...;==> Für Autostart mit Windows und Verknüpfung zum Desktop. Die eigentliche .EXE wird in der $basis hinterlegt und für die Verknüpfungen genutzt.
    If Not FileExists($basis & @ScriptName) Then FileCopy(@ScriptFullPath,$basis & @ScriptName)
    If Not FileExists(@StartupDir & "\" & $name & ".lnk") Then FileCreateShortcut($basis & @ScriptName,@StartupDir & "\" & $name & ".lnk")
    If Not FileExists(@DesktopDir & "\" & $name & ".lnk") Then FileCreateShortcut($basis & @ScriptName,@DesktopDir & "\" & $name & ".lnk")
    EndFunc
    check()

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam);...;==> diese Funktion hab ich leider geklaut :-/
    Local $nSize, $pFileName
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('wchar[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc

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

    Func drag_n_drop($kopiere_das_Zeug);==> wie der Name schon sagt...
    $zielpfad = $basis & GUICtrlRead($combo);.......................................;==> ermittelt den Zielpfad
    $count = StringSplit($kopiere_das_Zeug,"|");....................................;==> ermittelt die Anzahl der zu verschiebenden Ordner/Dateien
    For $y = 1 To $count[0]
    $name_file = StringMid($count[$y],StringInStr($count[$y], '\', 1, -1)+1);...;==> ermittelt den Dateinamen
    $attribute = FileGetAttrib($count[$y]);.....................................;==> ermittelt ob Datei oder Ordner
    If $attribute == "D" Then
    DirMove($count[$y], $zielpfad & "\" & $name_file);......................;==> verschiebt Ordner zum Ziel
    Else
    FileMove($count[$y], $zielpfad & "\" & $name_file);.....................;==> verschiebt Dateien zum Ziel
    EndIf
    Next
    GUICtrlSetData($dropper,"");....................................................;==> setzt die Drag´n´Drop-Area zurück
    EndFunc

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

    Func aktualisierung();==> aktualisiert den Inhalt der Combobox (Ordnerliste)
    Local $inhalt = _FileListToArray($basis, "*", 2), $inhalt_combo
    If Not @error Then
    For $i = 1 To $inhalt[0]
    $inhalt_combo &= $inhalt[$i] & "|"
    Next
    Return $inhalt_combo
    Else
    new_folder()
    $inhalt = _FileListToArray($basis, "*", 2)
    For $i = 1 To $inhalt[0]
    $inhalt_combo &= $inhalt[$i] & "|"
    Next
    Return $inhalt_combo
    EndIf
    EndFunc

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

    Func new_folder();...;==> erstellt einen neuen Ordner
    Local $new_folder = InputBox("","Neuen Ordner erstellen?"&@CRLF&@CRLF&"Wenn ein neuer Ordner erstellt werden soll,"&@CRLF&"dann gib im Eingabefeld einen Namen ein.",">> hier <<")
    If Not FileExists($basis & $new_folder) Then DirCreate($basis & $new_folder)
    EndFunc

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

    Func GUI_1();........;==> HauptGUI, kann mit ESC beendet werden
    $h_GUI = GUICreate($name, 152, 145, 100, 100, $WS_Popupwindow, BitOR($WS_EX_ACCEPTFILES, $WS_EX_OVERLAPPEDWINDOW, $WS_EX_TOOLWINDOW))
    GUISetBkColor(0x000000)
    $combo = GUICtrlCreateCombo("",35, 4, 80,20)
    $dropper = GUICtrlCreateInput("", 0,30,150,80)
    $button[1] = GUICtrlCreateButton("", 0, 0, 30, 30, $BS_ICON) ; neuer Ordner
    $button[2] = GUICtrlCreateButton("", 120, 0, 30, 30, $BS_ICON) ; Ordner öffnen
    $button[3] = GUICtrlCreateButton("Hide", 0, 112, 150, 30, $BS_ICON) ; GUI wechseln
    GUICtrlSetImage($button[1], "imageres.dll", -176)
    GUICtrlSetImage($button[2], "imageres.dll", -177)
    GUICtrlSetState($dropper, $GUI_DROPACCEPTED)
    GUICtrlSetData ($combo, aktualisierung())
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    GUISetState(@SW_SHOW,$h_GUI)
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    If $msg = $GUI_EVENT_DROPPED Then drag_n_drop(GUICtrlRead($dropper))
    If $msg = $button[3] Then ExitLoop
    If $msg = $button[2] Then ShellExecute($basis & GUICtrlRead($combo))
    If $msg = $button[1] Then
    new_folder()
    GUICtrlSetData($combo, "")
    GUICtrlSetData($combo, aktualisierung())
    EndIf
    WEnd
    GUIDelete($h_GUI)
    GUI_2()
    EndFunc

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

    Func GUI_2();........;==> NebenGUI, klein und somit kaum störend
    $h_Child = GUICreate("", 30, 30, 0, 0, $WS_Popupwindow, $WS_EX_TOOLWINDOW)
    $button[4] = GUICtrlCreateButton("",0,0,30,30,$BS_ICON)
    GUICtrlSetImage($button[4], "imageres.dll", -217)
    GUISetState(@SW_SHOW,$h_Child)
    While 1
    If GUIGetMsg() = $button[4] Then ExitLoop
    WEnd
    GUIDelete($h_Child)
    GUI_1()
    EndFunc

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

    GUI_2();.............;==> startet die NebenGUI

    [/autoit]

    MfG Lottich

    Dateien

    Desktopcleaner.rar 295,21 kB – 387 Downloads
  • Fehler beim Drag&Drop

    • Lottich
    • 11. August 2012 um 14:05

    habe versucht, Dateien mit nem RecoveryTool wiederherzustellen, doch es hat nicht so funktioniert, wie ich wollte.
    Die Dateien in den Ordnern, auf die es mir ankam wurden mir, selbst bei Tiefenscan, als unrettbar angezeigt.

    Es waren nicht lebenswichtige Dateien in den ruinierten Ordnern gewesen, kann unter Umständen wieder an diese über andere Quellen rankommen.
    Also werd ich das Ganze unter Lehrgeld abbuchen.

    Das Problem, was zur Schrottung der Ordner geführt hat, konnte ich, wie bereits oben geschrieben, lösen, somit ist dieser Thread gelöst.

    mfG, Lottich

  • Fehler beim Drag&Drop

    • Lottich
    • 10. August 2012 um 22:42

    Danke Chip,

    konnte das Problem Nr 2 mit Hilfe von FileGetAttrib() mit anschliessender If-Else-Bedingung lösen.

    Ein Wiederherstellungspunkt wird mir sicher nichts bringen, denn das waren ja keine Systemordner.
    Kennt niemand eine Lösung für mein 1. Problem?

    Zitat von mir selbst

    Aus den Ordnern sind Dateien ohne Endung geworden....
    Wie kann ich die Ordner wiederherstellen?

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™