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

Beiträge von BugFix

  • Links auf Website sperren

    • BugFix
    • 10. Oktober 2006 um 17:00

    Also, hab das grad getestet mit der Änderung in "hosts". Keine Änderung, kann die Seiten munter aufrufen.
    LOL - ich hatte im zweiten Teil meines Scripts tatsächlich noch meine Daten drin, hatte ich gar nicht gesehen. Danke :) PW ist natürlich inzwischen geändert.


    Edit:
    Hab nun auch den Tipp mit der Umleitung ausprobiert. Funktioniert leider nicht, da die Linkadresse selbst eine Weiterleitung ist und nicht mit der URL der Zielseite übereinstimmt. Diese wird jedoch mit $obj.document.url ausgelesen.

    Hab kein Plan.... :weinen:


    Edit2:
    Hab jetzt mal die Zielseiten-URL gesammelt (einige ändern sich allerdings bei jedem Aufruf, z.B. Shop) und damit die Umleitungsfunktion probiert. Das geht auch - aber nur einmal, dann wird die Schleife verlassen. Weiß nicht warum. Hab den Codeteil mal angehängt:

    Spoiler anzeigen
    [autoit]

    While 1
    $Win_hWnd = WinGetHandle("")
    $Ctrl_List = WinGetClassList($Win_hWnd)
    If Not @error And StringInStr($Ctrl_List,"Internet Explorer_Server" & @LF) Then
    $n = 1
    While 1
    $IE_hWnd = ControlGetHandle($Win_hWnd,"","Internet Explorer_Server" & $n)
    If @error Then ExitLoop
    If ControlCommand($Win_hWnd,"","Internet Explorer_Server" & $n,"IsVisible","") Then
    $obj = _ObjGetFromHWND($IE_hWnd)
    If IsObj($obj) Then
    If _
    $obj.document.url = "http://www.1und1.de/?__rd=.." Or _
    $obj.document.url = "http://portal.1und1.de/de/themen/?__rd=.." Or _
    $obj.document.url = "https://login.1und1.de/xml/config/;jsessionid=.." Or _
    $obj.document.url = "http://portal.1und1.de/de/shopping/?__rd=.." Or _
    $obj.document.url = "https://maxdomeservice.1und1.de/account/?mxdsid=.." Or _
    $obj.document.url = "http://maxdome.1und1.de/blockbuster/?sid=.." Or _
    $obj.document.url = "http://www.nightclub.de/check.php" _
    Then ; nur ein paar URL's
    $obj.navigate("http://www.toggo.de")
    Sleep(1000)
    EndIf
    EndIf

    EndIf
    $n += 1
    WEnd
    EndIf
    Sleep(500)
    If Not WinExists("Internet Explorer") Then ExitLoop ; hab ich eingefügt, damit das Script von allein beendet wird
    WEnd
    Exit

    [/autoit]
  • Problem Combo in Win2k

    • BugFix
    • 10. Oktober 2006 um 16:36

    Hi,
    ich habe inzwischen mehrfach festgestellt, dass die Combobox unter Windows 2000 nicht voll funktioniert. Sie läßt sich nicht ausklappen. Führe ich dieselbe Anwendung unter XP aus funktioniert es tadellos.
    Hat jemand 'ne Idee? Hab schon mit einigen Styles probiert aber ohne Erfolg.

  • Links auf Website sperren

    • BugFix
    • 10. Oktober 2006 um 16:28

    @Analyzer
    In dem Script sind keine Benutzerdaten, ist die Seite für die Eingabe der Benutzerdaten.

    muh_kuh
    Wenn ich eingeloggt bin, ist das eine https-site. Glaub nicht, dass die noch funktioniert, wenn ich da was umleite.

    Trotzdem Danke.

  • Links auf Website sperren

    • BugFix
    • 10. Oktober 2006 um 14:31

    Hi,
    ich habe jetzt einen Maxdome-Account (mit 3DSL 1&1). Damit meine Kinder dort auch was gucken können habe ich ein Script für die Einwahl (Benutzereingabe, Passwort) erstellt.

    [autoit]

    #NoTrayIcon
    #include <IE.au3>
    $oIE = _IECreate ("https://maxdomeservice.1und1.de/login/start/index.php?mxdsid=&__rd=hjRQwTpsrii46868GHTj,uTRWzuui46")
    Send("{TAB 2}")
    Send("USER")
    Send("{TAB}")
    Send("PASSWORT")
    Send("{ENTER}")
    WinWaitActive("Sicherheitshinweis")
    Send("!j")

    [/autoit]


    Das funzt auch prima. Allerdings besteht die Gefahr, dass ein kostenpflichtiger Link gedrückt wird.
    Besteht die Möglichkeit, zu verhindern, dass diese Links ausgeführt werden? Wenn der Mauszeiger über einem Link schwebt, erscheint dieser ja in der Statuszeile des Fensters. Das könnte ich mit der 'verbotenen Liste' vergleichen.
    Aber wie verhindere ich einen Mausklick? Mit Blockinput( ) kann ich nicht arbeiten - dann ließe sich die Maus ja nicht mehr von dem Link fortbewegen.
    Ich hab mir das ungefähr so vorgestellt:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <IE.au3>

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

    $oIE = _IECreate ("https://maxdomeservice.1und1.de/login/start/index.php?mxdsid=&__rd=hjRQwTpsrii46868GHTj,uTRWzuui46")
    Send("{TAB 2}")
    Send("USER")
    Send("{TAB}")
    Send("PASSWORT")
    Send("{ENTER}")
    WinWaitActive("Sicherheitshinweis")
    Send("!j")

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

    Dim $arVerboteneLinks[15]
    $arVerboteneLinks[0]="http://redirect.1und1.de/ac1704c1cwHqjIHYtwWjgmKsDYIbAkBa/?origin.site=MD.VOD.DE&origin.id=&target.site=PORTAL&target.page=de%2Fshopping%2f"
    $arVerboteneLinks[1]="http://redirect.1und1.de/ac1704c1cwHqjIHYtwWjgmKsDYIbAkBa/?origin.site=MD.VOD.DE&origin.id=&target.site=CC.UCM.DE"
    $arVerboteneLinks[2]="http://redirect.1und1.de/ac1704c1cwHqjIHYtwWjgmKsDYIbAkBa/?origin.site=MD.VOD.DE&origin.id=&target.site=PORTAL&target.page=de%2Fthemen%2f"
    $arVerboteneLinks[3]="http://redirect.1und1.de/ac1704c1cwHqjIHYtwWjgmKsDYIbAkBa/?origin.site=MD.VOD.DE&origin.id=&target.site=MX.EUE.DE"
    $arVerboteneLinks[4]="http://maxdome.1und1.de/movies/?sid="
    $arVerboteneLinks[5]="http://maxdome.1und1.de/comedy/?sid="
    $arVerboteneLinks[6]="http://maxdome.1und1.de/serie/?sid="
    $arVerboteneLinks[7]="http://xxx.nightclub.de/index.php?__rd=ac1704c1cwHqjIHYtwWjgmKsDYIbAkBa"
    $arVerboteneLinks[8]="http://maxdome.1und1.de/abos/comedy_paket/?sid="
    $arVerboteneLinks[9]="http://maxdome.1und1.de/abos/serien_paket/?sid="
    $arVerboteneLinks[10]="http://maxdome.1und1.de/abos/movie_paket/?sid="
    $arVerboteneLinks[11]="http://maxdome.1und1.de/abos/premium_paket/?sid="
    $arVerboteneLinks[12]="http://maxdome.1und1.de/abos/sp_lost/?sid="
    $arVerboteneLinks[13]="http://maxdome.1und1.de/abos/sp_dh/?sid="
    $arVerboteneLinks[14]="http://www.nightclub.de/check.php"

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

    AutoItSetOption("WinTitleMatchMode", 2)
    While 1
    Sleep(100)
    $Link = StatusbarGetText("Internet Explorer")
    If $Link <> "" Then
    For $i = 0 To 14
    If $Link = $arVerboteneLinks[$i] Then
    ; SPERRE MAUSKLICK - aber wie ?
    ExitLoop
    EndIf
    Next
    EndIf
    WEnd
    WinWaitClose("Internet Explorer")
    Exit

    [/autoit]
  • AutoIt Window Info

    • BugFix
    • 10. Oktober 2006 um 13:06

    Da hat sich doch nix geändert.
    Hier ein Screenshot:
    [Blockierte Grafik: http://img143.imageshack.us/img143/4531/windowinfosa2.jpg]

  • Drucken

    • BugFix
    • 10. Oktober 2006 um 10:28

    Ein klares JEIN :)

    Habe u.a. diese Variante gefunden:

    [autoit]

    Func _FilePrintCom($iFile)
    If Not FileExists($iFile) Then Return SetError(1,0,0)
    $objShellApp = ObjCreate("Shell.Application")
    $objShellApp.ShellExecute($iFile,0,0,"PRINT",0)
    EndFunc

    [/autoit]

    In der Beta gibt es für reinen Textdruck:

    [autoit]

    #Include <File.au3>
    _FilePrint($s_File, $i_Show = @SW_HIDE)

    [/autoit]


    Im englischen Forum findest du noch andere Bsp.:
    http://www.autoitscript.com/forum/index.php?showtopic=29162&hl=
    http://www.autoitscript.com/forum/index.php?showtopic=28358&hl=

  • If... ServicePack2 ??

    • BugFix
    • 9. Oktober 2006 um 10:06
    [autoit]

    MsgBox(0,"Installiertes Service-Pack",@OSServicePack)

    [/autoit]


    Schau mal in der Hilfe, Makroreferenz. Da findest du noch mehr zum Thema Systeminfo.

  • Zweites Fenster öffnen

    • BugFix
    • 9. Oktober 2006 um 09:49

    Ich hab dir mal ein Beispiel für 2-Fenster Verwaltung gemacht.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Dim $beide
    $MainGUI = GUICreate("MainGUI", 524, 208, -1, -1)
    $Label1 = GUICtrlCreateLabel("Wert 1", 35, 42, 36, 17)
    $Input1 = GUICtrlCreateInput("75", 75, 39, 53, 21)
    $Label2 = GUICtrlCreateLabel("X", 146, 42, 11, 17)
    $Label3 = GUICtrlCreateLabel("Wert 2", 173, 42, 36, 17)
    $Input2 = GUICtrlCreateInput("28", 211, 39, 89, 21)
    $Label4 = GUICtrlCreateLabel("=", 316, 42, 10, 17)
    $Button1 = GUICtrlCreateButton("Ergebnis in neuer GUI", 342, 39, -1, -1, 0)
    $Group1 = GUICtrlCreateGroup("GUI -Darstellung", 340, 76, 137, 85)
    $rBeide = GUICtrlCreateRadio("überlagern", 350, 102, 83, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $rAllein = GUICtrlCreateRadio("ersetzen", 350, 129, 82, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $SubGUI = GUICreate("SubGUI", 413, 180, 303, 219)
    $LabelSub1 = GUICtrlCreateLabel("Ergebnis von MainGUI:", 28, 43, 114, 17)
    $InputSub1 = GUICtrlCreateInput("", 156, 40, 73, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $bBack = GUICtrlCreateButton("Zurück", 276, 109, 89, 21, 0)

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

    GUISetState(@SW_SHOW, $MainGUI)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetData($InputSub1,(GUICtrlRead($Input1)*GUICtrlRead($Input2)))
    $beide = GUICtrlRead($rBeide)
    If $beide = 1 Then
    GUISetState(@SW_SHOW, $SubGUI)
    Else
    GUISetState(@SW_HIDE, $MainGUI)
    GUISetState(@SW_SHOW, $SubGUI)
    EndIf
    Case $bBack
    GUISetState(@SW_HIDE, $SubGUI)
    GUISetState(@SW_SHOW, $MainGUI)
    EndSwitch
    WEnd

    [/autoit]


    Benutze die Beta.

  • Werbung?

    • BugFix
    • 8. Oktober 2006 um 19:50

    Also ich hab bisher erst eine Werbeform gesehen,die mich nicht stört (hier zu sehen). Die Links erscheinen auch nur auf der Threadseite und nicht in der Forenübersicht.
    Was ich absolut nicht ausstehen kann, sind Popups. Da geht mir glatt das Messer in der Tasche auf. Vor allem, da diese meist aggressiv gestaltet sind und häufig von Tag zu Tag ihre Linkadresse ändern, sodass man sie nicht dauerhaft blocken kann.
    Ich hab inzwischen eine schwarze Liste eingerichtet - Websites mit Popupwerbung trage ich dort ein. Diese sind dann für meinen PC tabu.

  • KODA?

    • BugFix
    • 4. Oktober 2006 um 20:06

    Mit der Beta hat das nix zu tun.
    Also ich hab Koda bisher bei jeder Installation von SciTE4AutoIt automatisch mitinstalliert bekommen. Nur um die neueste Version von Koda einzubinden mußte ich von Hand eingreifen.
    Von mir verwendete Installationsdatei: "SciTE4AutoIt3-21.08.06.exe"

  • KODA?

    • BugFix
    • 3. Oktober 2006 um 23:36

    Wenn du SciTE4AutoIt benutzt, hast du Koda standardmäßig mit dabei.
    Aufruf über <Extras><Koda(Formdesigner)> oder per Hotkey "ALT+m".
    Du solltest dir aber die neueste Version installieren. Hier zu finden.

  • zeichen aus einem pool

    • BugFix
    • 3. Oktober 2006 um 23:25

    Hmm, so ganz kann ich dir nicht folgen.
    Erst bildest du alle möglichen 3-fach Kombinationen aus Ziffern und Zeichen.
    Was soll in der If-Abfrage passieren? Da alle Kombinationen im Pool sind, hast du immer Übereinstimmung.
    Und Autoit-Code wär nicht schlecht. ;)
    Deinen Code kann ich nur sehr vage deuten, weiß nur dass es kein VB, Cobol oder Turbopascal ist.

  • Google/Amazon-Suche im Skript!

    • BugFix
    • 3. Oktober 2006 um 11:41

    Bei mir klappts - Google wird mit Suchbegriff aufgerufen.
    *Kopfkratz*

    Hab's jetzt mit deinem Code probiert und Fehler gefunden:
    Du hattest das Eingabefeld nicht ausgelesen.
    Hier die funktionierende Variante:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("Search",220,70)
    $label=GUICtrlCreateLabel("Suchbegriff:",25,15,100)
    $input_field=GUICtrlCreateInput("",5,30,100)
    $amazon=GUICtrlCreateButton("Amazon.de",115,5,100,20,-1,-1)
    $ebay=GUICtrlCreateButton("Ebay.de",115,25,100,20,-1,-1)
    $google=GUICtrlCreateButton("Google.de",115,45,100,20,-1,-1)
    GUISetState()

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

    While 1
    $msg=GUIGetMsg()
    Select
    Case $msg=$GUI_EVENT_CLOSE
    ExitLoop
    Case $msg=$amazon
    Run("C:\Programme\Mozilla Firefox\firefox.exe http://www.amazon.de/exec/obidos/ex…field-keywords="&GUICtrlRead($input_field)&"&mode=blended&tag=firefox-de-21&sourceid=Mozilla-search")
    ExitLoop
    Case $msg=$google
    Run("C:\Programme\Mozilla Firefox\firefox.exe http://www.google.de/search?q="&GUICtrlRead($input_field))
    ExitLoop
    EndSelect
    WEnd

    [/autoit]
  • _IsPressed -->> Mause 4???

    • BugFix
    • 3. Oktober 2006 um 09:39

    Da für solche Mäuse ja auch eigene Treiber installiert werden müssen um die zusätzlichen Tasten benutzen zu können, glaub ich nicht, dass mit Standardfunktionen eine Abfrage möglich ist.
    Du mußt also irgendwie die Rückgabewerte dieser Treiber anzapfen. Hab ich aber keinen Plan von, wie das geht. :(

  • Dateien / Ordner rekursiv lesen

    • BugFix
    • 2. Oktober 2006 um 19:30

    Hi,
    eigentlich müßte der Thread wohl zu den Scripten. Da es aber nur z. Teil von mir stammt paßt das nicht so richtig. Vielleicht läßt es sich ja auch als Beispiel in die FAQ einbinden.
    Mod's, ich vertraue euch. Ihr werdet es gegebenenfalls schon an den richtigen Ort verschieben.

    Zum Thema:
    Das rekursive Auslesen von Dateien / Ordnern wurde ja schon mehrmals angesprochen. Jos van der Zande hat dafür die prima Funktion _GetFileList( ) erschaffen.
    Ich hab diese Funktion etwas ergänzt um bei Bedarf mittels Flag aus _GetFileList ein "_GetDirList" zu machen.
    Ich hab das ganze zur Anschauung in eine GUI gepackt.
    Bitte die Beta verwenden.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #Include <GuiList.au3>
    #include <file.au3>
    #Include <Misc.au3>
    #Include <GuiStatusBar.au3>
    Dim $Extension = "", $Pfad = "", $Daten[1], $arDisp[1], $currPosIndex, $file, $fileShort, $anzahl, $progress_step, $progress_val = 0
    Dim $ListPfad = @MyDocumentsDir & "\", $ListFile = "Rekursiv_List.txt", $ListFileShort = "Rekursiv_Short.txt"
    Dim $ListFileShortPrint = "Rekursiv_Short_P.txt", $a_PartsText[2] = ["", ""], $a_PartsRightEdge[2] = [40, -1], $PfadExec
    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Ordner- / Dateisuche (rekursiv)", 600, 458, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")
    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, "SpecialEvents")
    $List1 = GUICtrlCreateList("", 24, 106, 550, 354, $WS_VSCROLL)
    GUICtrlSetOnEvent(-1, "ListClick")
    $Label1 = GUICtrlCreateLabel("Pfad:", 28, 16, 29, 17)
    $iPath = GUICtrlCreateInput("", 59, 13, 280, 21, $ES_READONLY)
    $Checkbox1 = GUICtrlCreateCheckbox("nur Ordner", 24, 47, 78, 17)
    GUICtrlSetOnEvent(-1, "ACheckbox1Click")
    $Checkbox2 = GUICtrlCreateCheckbox("ganzen Pfad zeigen", 24, 79, 130, 17)
    GUICtrlSetOnEvent(-1, "ACheckbox2Click")
    GUICtrlSetState(-1, $GUI_HIDE)
    $Checkbox3 = GUICtrlCreateCheckbox("kompletten Pfad drucken", 435, 79, 160, 17)
    GUICtrlSetState(-1, $GUI_HIDE)
    $lExtension = GUICtrlCreateLabel("Erweiterung", 185, 41, 90, 17)
    $lExtension1 = GUICtrlCreateLabel("z.B. 'exe' oder ' * '", 185, 58, 900,17)
    $iExtension = GUICtrlCreateInput("", 282, 45, 57, 21, $ES_CENTER)
    $bPath = GUICtrlCreateButton("Pfad wählen", 349, 13, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "bPathClick")
    $lTipTime = GUICtrlCreateLabel("Zeit für ToolTipp:", 185, 80)
    $iTipTime = GUICtrlCreateInput ("4", 282, 77, 57, 21, $ES_CENTER)
    $updown = GUICtrlCreateUpdown($iTipTime)
    $bAuslesen = GUICtrlCreateButton("Auslesen", 349, 45, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "bAuslesenClick")
    $bPrint = GUICtrlCreateButton("Drucken", 349, 77, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "bPrintClick")
    $bClear = GUICtrlCreateButton("Löschen", 505, 45, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "bClearClick")
    $bEnde = GUICtrlCreateButton("Ende", 505, 13, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "bEndeClick")
    $StatusBar1 = _GUICtrlStatusBarCreate($Form1, $a_PartsRightEdge, $a_PartsText)
    $progressbar1 = _GUICtrlStatusBarCreateProgress($StatusBar1, 1)
    GUICtrlSetColor(-1,32250)
    GUICtrlSetState(-1, $GUI_HIDE)

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

    $Busy = GUICreate("",160,110,-1,-1,$WS_POPUP)
    GUISetBkColor(0x708090)
    $label_busy = GUICtrlCreateLabel("Einen Moment bitte." & @LF & @LF & "Die notwendigen Daten" _
    & @LF & "werden ermittelt..", 20, 15, 120, 100, $SS_CENTER)
    GUICtrlSetFont(-1, 10, Default,2)
    GUICtrlSetColor(-1, 0xF0E68C)

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

    $RightMenu = GUICreate("RightMenu", 135, 71, -1, -1, $WS_POPUP)
    $bShellEx = GUICtrlCreateButton("Datei Ausführen", 2, 2, 130, 20, 0)
    GUICtrlSetOnEvent(-1, "bShellExClick")
    $bClipboard = GUICtrlCreateButton("Copy To Clipboard", 2, 24, 130, 20, 0)
    GUICtrlSetOnEvent(-1, "bClipboardClick")
    $bEscR_Menu = GUICtrlCreateButton("Abbrechen", 2, 48, 130, 20, 0)
    GUICtrlSetOnEvent(-1, "bEscR_MenuClick")

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

    GUISetState(@SW_SHOW, $Form1)

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

    While 1
    Sleep(100)
    WEnd

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

    Func SpecialEvents()
    If @GUI_CTRLID = $GUI_EVENT_SECONDARYDOWN Then
    $ctrlfocus = ControlGetFocus($Form1,"Ordner- / Dateisuche (rekursiv)")
    If $ctrlfocus = "ListBox1" And GUICtrlRead($Checkbox2) = 1 And _
    _GUICtrlListGetText($List1, _GUICtrlListGetCaretIndex($List1)) <> "" _
    Then
    $PfadExec = _GUICtrlListGetText($List1, _GUICtrlListGetCaretIndex($List1))
    If $Extension = "n" Then
    GUICtrlSetState($bShellEx, $GUI_DISABLE)
    GUISetState(@SW_SHOW, $RightMenu)
    Else
    GUICtrlSetState($bShellEx, $GUI_ENABLE)
    GUISetState(@SW_SHOW, $RightMenu)
    EndIf
    EndIf
    EndIf
    EndFunc

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

    Func ACheckbox1Click()
    If GUICtrlRead($Checkbox1) = 1 Then
    GUICtrlSetState($lExtension,$GUI_HIDE)
    GUICtrlSetState($lExtension1,$GUI_HIDE)
    GUICtrlSetState($iExtension,$GUI_HIDE)
    Else
    GUICtrlSetState($lExtension,$GUI_SHOW)
    GUICtrlSetState($lExtension1,$GUI_SHOW)
    GUICtrlSetState($iExtension,$GUI_SHOW)
    EndIf
    EndFunc

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

    Func ACheckbox2Click()
    _GUICtrlStatusBarSetText($StatusBar1, "", 0)
    _GUICtrlStatusBarSetText($StatusBar1, "", 1)
    _GUICtrlStatusBarSetBKColor($StatusBar1, 0xD3D3D3)
    If GUICtrlRead($Checkbox2) = 1 Then
    _DisplayListLong()
    Else
    _DisplayListShort()
    EndIf
    EndFunc

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

    Func AForm1Close()
    Exit
    EndFunc

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

    Func bClearClick()
    GUICtrlSetData($iPath,"")
    GUICtrlSetData($iExtension,"")
    GUICtrlSetData($List1,"")
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)
    GUICtrlSetState($lExtension,$GUI_SHOW)
    GUICtrlSetState($lExtension1,$GUI_SHOW)
    GUICtrlSetState($iExtension,$GUI_SHOW)
    GUICtrlSetState($Checkbox2, $GUI_HIDE)
    GUICtrlSetState($Checkbox3, $GUI_HIDE)
    _GUICtrlStatusBarSetText($StatusBar1, "", 0)
    _GUICtrlStatusBarSetText($StatusBar1, "", 1)
    _GUICtrlStatusBarSetBKColor($StatusBar1, 0xD3D3D3)
    $Pfad = ""
    $PfadExec = ""
    EndFunc

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

    Func bAuslesenClick()
    Dim $tmp = "", $asc
    If $Pfad = "" Then
    MsgBox(0, "ACHTUNG!", "Es wurde kein Pfad ausgewählt!")
    bPathClick()
    Return 0
    EndIf
    If GUICtrlRead($Checkbox1) = 1 Then
    $Extension = "n"
    Else
    $Extension = GUICtrlRead($iExtension)
    If Not StringInStr($Extension, "*") Then
    $len = StringLen($Extension)
    For $i = 1 To $len
    $asc = Asc(StringLower(StringMid($Extension,$i,1)))
    If ($asc > 47 And $asc < 58) Or ($asc > 96 And $asc < 123) Then $tmp = $tmp & StringMid($Extension,$i,1)
    Next
    $Extension = $tmp
    If StringLen($Extension) > 3 Then
    $tmp = MsgBox(4,"ACHTUNG!", "Die Erweiterung ist länger als 3 Zeichen."& @LF & @LF & " " & _
    $Extension & @LF & @LF & " Wollen Sie korrigieren?" )
    If $tmp = 6 Then
    GUICtrlSetState($iExtension, $GUI_FOCUS)
    Return 0
    EndIf
    ElseIf StringLen($Extension) = 0 Then
    MsgBox(0,"ACHTUNG!", "Die Erweiterung wurde nicht festgelegt!")
    GUICtrlSetState($iExtension, $GUI_FOCUS)
    Return 0
    EndIf
    EndIf
    EndIf
    GUISetState(@SW_SHOW, $Busy)
    _WriteAllFiles()
    GUISetState(@SW_HIDE, $Busy)
    _DisplayListShort()
    GUICtrlSetState($Checkbox2, $GUI_SHOW)
    GUICtrlSetState($Checkbox3, $GUI_SHOW)
    EndFunc

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

    Func ListClick()
    $currPosIndex = _GUICtrlListGetCaretIndex($List1)
    $info = _GUICtrlListGetText($List1, $currPosIndex)
    $tmp = StringSplit($info, "\")
    If $tmp[0] > 3 Then
    $inf1 = ""
    $inf2 = ""
    $split = Floor($tmp[0] / 2)+1
    For $i = 1 To $split
    $inf1 = $inf1 & $tmp[$i] & "\"
    Next
    For $i = $split+1 To $tmp[0]
    $inf2 = $inf2 & $tmp[$i] & "\"
    Next
    $info = $inf1 & @LF & $inf2
    EndIf
    If StringRight($info, 1) = "\" Then $info = StringTrimRight($info, 1)
    _GUICtrlStatusBarSetBKColor($StatusBar1, 0x90EE90)
    GUICtrlSetFont($StatusBar1, 10, Default,2)
    _GUICtrlStatusBarSetText($StatusBar1, $currPosIndex+1, 0)
    _GUICtrlStatusBarSetText($StatusBar1, $info, 1)
    ToolTip("(" & $currPosIndex+1 & ".) " & $info)
    Sleep(GUICtrlRead($iTipTime)*1000)
    ToolTip("")
    EndFunc

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

    Func bEndeClick()
    Exit
    EndFunc

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

    Func bPathClick()
    $Pfad = FileSelectFolder("Bitten den Pfad auswählen","",6)
    If StringRight($Pfad, 1) <> "\" Then $Pfad = $Pfad & "\"
    GUICtrlSetData($iPath,$Pfad)
    If GUICtrlRead($iPath) = "\" Then
    GUICtrlSetData($iPath,"")
    $Pfad = ""
    EndIf
    EndFunc

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

    Func bPrintClick()
    If GUICtrlRead($Checkbox3) = 1 Then
    _FilePrintCom($ListPfad & $ListFile) ; Ausgabe auf Standard-Drucker
    Else
    _FilePrintCom($ListPfad & $ListFileShortPrint)
    EndIf
    EndFunc

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

    Func bClipboardClick()
    ClipPut($PfadExec)
    GUISetState(@SW_HIDE, $RightMenu)
    EndFunc

    Func bEscR_MenuClick()
    GUISetState(@SW_HIDE, $RightMenu)
    EndFunc

    Func bShellExClick()
    GUISetState(@SW_HIDE, $RightMenu)
    ShellExecute($PfadExec)
    EndFunc

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

    Func _WriteAllFiles()
    If FileExists($ListPfad & "\" & $ListFile) Then _
    FileMove($ListPfad & "\" & $ListFile, $ListPfad & "\" & "Rekursiv_List.bak", 1)
    If FileExists($ListPfad & "\" & $ListFileShort) Then _
    FileMove($ListPfad & "\" & $ListFileShort, $ListPfad & "\" & "Rekursiv_List_Short.bak", 1)
    If FileExists($ListPfad & "\" & $ListFileShortPrint) Then _
    FileMove($ListPfad & "\" & $ListFileShortPrint, $ListPfad & "\" & "Rekursiv_Short_P.bak", 1)
    If $Extension = "n" Then
    $Daten = _GetFileList($Pfad,$Extension,1) ; alle Ordner
    Else
    If Not StringInStr($Extension, "*") Then
    $Daten = _GetFileList($Pfad,"*." & $Extension) ; Dateien mit gewählter Erweiterung
    Else
    $Daten = _GetFileList($Pfad,"*.*") ; alle Dateien
    EndIf
    EndIf
    If Not IsArray($Daten) Or $Daten[0] = 0 Then
    GUICtrlSetData($List1, "Keine Dateien/Ordner gemäß Suchmuster vorhanden.")
    Return 0
    EndIf
    $file = FileOpen($ListPfad & $ListFile, 1)
    $fileShort = FileOpen($ListPfad & $ListFileShort, 1)
    $fileShortPrint = FileOpen($ListPfad & $ListFileShortPrint, 1)
    For $i = 1 To $Daten[0]
    FileWriteLine($file, $Daten[$i])
    $var = StringSplit($Daten[$i], "\")
    FileWriteLine($fileShort, $var[0] & "|" & $var[$var[0]]) ; Anz. Elemente & letztes Element
    FileWriteLine($fileShortPrint, $var[$var[0]])
    Next
    FileClose($file)
    FileClose($fileShort)
    FileClose($fileShortPrint)
    EndFunc

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

    Func _DisplayListLong()
    GUICtrlSetData($List1, "")
    _FileReadToArray($ListPfad & $ListFile, $arDisp)
    $anzahl = $arDisp[0]-1
    $v = 15 ; Verzögerungszeit für Progressbar (1,5 sec gesamt)
    $progress_step = (100 / $anzahl)
    If $anzahl < 100 Then $v = 1000 / $anzahl
    GUICtrlSetState($progressbar1, $GUI_SHOW)
    For $i = 1 To $arDisp[0]-1
    GUICtrlSetData($List1, $arDisp[$i])
    $tmp = Floor($progress_val)
    $progress_val = $progress_val + $progress_step
    If Floor($progress_val) > $tmp Then
    GUICtrlSetData ($progressbar1,Floor($progress_val))
    Sleep($v) ; dadurch kein Springen der Progressbar
    EndIf
    Next
    _GUICtrlListSetTopIndex($List1, 0)
    GUICtrlSetData ($progressbar1, 100)
    Sleep(1200)
    GUICtrlSetData ($progressbar1, 0)
    GUICtrlSetState($progressbar1, $GUI_HIDE)
    EndFunc

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

    Func _DisplayListShort()
    GUICtrlSetData($List1, "")
    _FileReadToArray($ListPfad & $ListFileShort, $arDisp)
    $anzahl = $arDisp[0]-1
    $v = 15 ; Verzögerungszeit für Progressbar (1,5 sec gesamt)
    $progress_step = (100 / $anzahl)
    If $anzahl < 100 Then $v = 1000 / $anzahl
    GUICtrlSetState($progressbar1, $GUI_SHOW)
    For $i = 1 To $arDisp[0]-1
    $var = StringSplit($arDisp[$i], "|")
    $point = ""
    If $var[1] > 1 Then
    For $j = 1 To $var[1]-1
    $point = $point & ". "
    Next
    EndIf
    GUICtrlSetData($List1, $point & $var[2])
    $tmp = Floor($progress_val)
    $progress_val = $progress_val + $progress_step
    If Floor($progress_val) > $tmp Then
    GUICtrlSetData ($progressbar1,Floor($progress_val))
    Sleep($v) ; dadurch kein Springen der Progressbar
    EndIf
    Next
    _GUICtrlListSetTopIndex($List1, 0)
    GUICtrlSetData ($progressbar1, 100)
    Sleep(1200)
    GUICtrlSetData ($progressbar1, 0)
    GUICtrlSetState($progressbar1, $GUI_HIDE)
    EndFunc

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

    ; Function: _FilePrintCom()
    ; Author: jos van der Zande
    Func _FilePrintCom($iFile)
    If Not FileExists($iFile) Then Return SetError(1,0,0)
    $objShellApp = ObjCreate("Shell.Application")
    $objShellApp.ShellExecute($iFile,0,0,"PRINT",0)
    EndFunc

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

    ; Function: _GetFileList()
    ; Author: jos van der Zande
    ; Einbindung des $DIR_ONLY-Flag von BugFix
    Func _GetFileList($T_DIR,$T_MASK,$DIR_ONLY=0)
    Dim $N_DIRNAMES[200000] ; max number of directories that can be scanned
    Local $N_DIRCOUNT = 0
    Local $N_FILE
    Local $N_SEARCH
    Local $N_TFILE
    Local $N_OFILE
    Local $T_FILENAMES
    Local $T_FILECOUNT
    Local $T_DIRCOUNT = 1
    ; check Filemask \ for empty File-Array by GetDirOnly
    If $T_MASK = "n" Then $T_MASK = "*.no"
    ; remove the end \ If specified
    If StringRight($T_DIR,1) = "\" Then $T_DIR = StringTrimRight($T_DIR,1)
    $N_DIRNAMES[$T_DIRCOUNT] = $T_DIR
    ; Exit if base dir doesn't exists
    If Not FileExists($T_DIR) Then Return 0
    ; keep on looping until all directories are scanned
    While $T_DIRCOUNT > $N_DIRCOUNT
    $N_DIRCOUNT = $N_DIRCOUNT + 1
    ; find all subdirs in this directory and save them in a array
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\*.*")
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") > 0 Then
    $T_DIRCOUNT = $T_DIRCOUNT + 1
    $N_DIRNAMES[$T_DIRCOUNT] = $N_TFILE
    EndIf
    Wend
    FileClose($N_SEARCH) ; find all Files that mtach the MASK
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\" & $T_MASK )
    If $N_SEARCH = -1 Then ContinueLoop
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") = 0 Then
    $T_FILENAMES = $T_FILENAMES & $N_TFILE & @CR
    $T_FILECOUNT = $T_FILECOUNT + 1
    ;MsgBox(0,'filecount ' & $T_FILECOUNT ,$N_TFILE)
    EndIf
    Wend
    FileClose($N_SEARCH)
    Wend
    If $DIR_ONLY = 0 Then
    $T_FILENAMES = StringTrimRight($T_FILENAMES,1)
    $N_OFILE = StringSplit($T_FILENAMES,@CR)
    Return( $N_OFILE )
    Else
    ReDim $N_DIRNAMES[$N_DIRCOUNT+1]
    $N_DIRNAMES[0] = $N_DIRCOUNT
    Return $N_DIRNAMES
    EndIf
    EndFunc ;==>_GetFileList

    [/autoit]

    Edit 5:
    Hab die vorigen Edits mal gefixed und alles zusammengefaßt.
    Hab doch noch etwas dran gebastelt. Jetzt hat es folgende Features:
    - Auslesen bestimmter Dateitypen
    - Auslesen aller Dateien
    - Auslesen nur Ordner
    - Standardanzeige: letztes Pfadelement (...Text.txt; ...Ordner)
    - Switchen auf komplette Pfadanzeige (und zurück)
    - ToolTip zeigt ausgewähltes Listenelement (bei Bedarf 2-zeilig)
    - Zeit für ToolTip frei wählbar
    - Kontextmenü für Listenelemente (Datei Ausführen; Pfad kopieren), wenn Datei und Langform
    - Ausdruck Liste (Kurzform oder Langform)
    - Statusbar zur Darstellung Progressbar und Co-Anzeige ToolTip

    Dateien

    rekursiv_filelist.au3 13,8 kB – 1.029 Downloads
  • Meine Programme

    • BugFix
    • 2. Oktober 2006 um 01:43
    Zitat

    Er darf seinen Namen ja veröffentlichen...
    Du aber nicht ohne seine Erlaubnis


    Da hab ich doch 'ne bessere Idee: z.B.
    "Der Verfasser dieses Links ...."
    Denn dort gibt er seinen Namen mehrfach im Klartext an.

    Comment peethebee: Danke für die Idee, ist angepasst.

  • Meine Programme

    • BugFix
    • 1. Oktober 2006 um 22:11

    Mann, Mann DJMANU!

    Meine Tochter ist 10 - und die benimmt sich nicht so zickig, wie du.
    Das hier ist ein Forum und nicht der Club pubertierender Jünglinge.

    Nein, wir kennen dich nicht. Und gerade in solch einem spezifischen Forum identifiziert sich jeder über sein Auftreten.

    Niemand stellt in Abrede, dass du Programme erstellen kannst. Und ich finde es persönlich sehr beruhigend, dass es heutzutage noch immer junge Menschen gibt, die sich für mehr als Hip-Hop und Gangsta-Rap interessieren.
    Aber wie heißt es: Wie man in den Wald hineinruft, so schallt es heraus. Und dein Umgangston entspricht leider nicht der Nettiquette.
    Wenn wir Kritik üben, dann nicht um dich niederzumachen sondern um dir Tipps und Anregungen zu geben.
    Darauf eingeschnappt zu reagieren ist einfach nur kindisch.

    Wir helfen gern. Aber wir erwarten auch etwas Eigeninitiative. Also komm in die Puschen. ;) (Dann klappts auch mit dem Nachbarn.) :rofl:

  • Dateien umbenennen???

    • BugFix
    • 1. Oktober 2006 um 21:27

    Richtig.Genauso geht das.


    Edit:

    He, Pee -schon wieder vor mir. Aber diesmal nur Sekunden. ;)

  • Ausführen-Feld in GUI einbauen?

    • BugFix
    • 1. Oktober 2006 um 18:11

    Dann mußt du anders vorgehen:
    - alle ausführbaren Dateien rekursiv auslesen in ein Array (Pfad + Dateiname)
    - Dateiname zur Auswahl bieten
    - zum Aufruf Dateiname mit Pfad per Run() ausführen

  • Ausführen-Feld in GUI einbauen?

    • BugFix
    • 1. Oktober 2006 um 17:58

    Dann sende es an das Original "Ausführen"-Fenster. Zwar nicht so elegant, aber funktioniert sicher:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $Form1 = GUICreate("AForm1", 551, 104, 192, 125)
    GUICtrlCreateLabel("Befehl (z.B. 'calc.exe')", 48, 35, 114, 17)
    $Input1 = GUICtrlCreateInput("", 176, 32, 161, 21)
    $Button1 = GUICtrlCreateButton("Ausführen", 376, 32, 123, 21, 0)
    GUISetState(@SW_SHOW)
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    $befehl = GUICtrlRead($Input1)
    Send("#r")
    WinWaitActive("Ausführen")
    Send($befehl)
    Send("{ENTER}")
    EndSelect
    WEnd
    Exit

    [/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™