@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.
@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.
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.
#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")
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:
#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")
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"
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
Da hat sich doch nix geändert.
Hier ein Screenshot:
[Blockierte Grafik: http://img143.imageshack.us/img143/4531/windowinfosa2.jpg]
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
In der Beta gibt es für reinen Textdruck:
[autoit]#Include <File.au3>
_FilePrint($s_File, $i_Show = @SW_HIDE)
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=
MsgBox(0,"Installiertes Service-Pack",@OSServicePack)
[/autoit]
Schau mal in der Hilfe, Makroreferenz. Da findest du noch mehr zum Thema Systeminfo.
Ich hab dir mal ein Beispiel für 2-Fenster Verwaltung gemacht.
#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)
$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)
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
Benutze die Beta.
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.
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"
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.
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.
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:
#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()
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
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.
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.
#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)
$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)
$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")
GUISetState(@SW_SHOW, $Form1)
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
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
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
Func ACheckbox2Click()
_GUICtrlStatusBarSetText($StatusBar1, "", 0)
_GUICtrlStatusBarSetText($StatusBar1, "", 1)
_GUICtrlStatusBarSetBKColor($StatusBar1, 0xD3D3D3)
If GUICtrlRead($Checkbox2) = 1 Then
_DisplayListLong()
Else
_DisplayListShort()
EndIf
EndFunc
Func AForm1Close()
Exit
EndFunc
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
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
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
Func bEndeClick()
Exit
EndFunc
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
Func bPrintClick()
If GUICtrlRead($Checkbox3) = 1 Then
_FilePrintCom($ListPfad & $ListFile) ; Ausgabe auf Standard-Drucker
Else
_FilePrintCom($ListPfad & $ListFileShortPrint)
EndIf
EndFunc
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
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
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
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
; 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
; 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
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
ZitatEr 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.
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.)
Richtig.Genauso geht das.
Edit:
He, Pee -schon wieder vor mir. Aber diesmal nur Sekunden.
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
Dann sende es an das Original "Ausführen"-Fenster. Zwar nicht so elegant, aber funktioniert sicher:
#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
Also bei mir funktionierts. Habe mal auskommentiert, was ich zum Test nicht brauche.
Wenn du im Eingabefeld eingibst:
"aa {TAB} bb {ENTER}
cc {TAB} dd"
(Für TAB im Eingabefeld mußt du STRG+TAB drücken.), dann kommt in der MsgBox
bei Durchlauf 1: [1.]aa[2.]bb
bei Durchlauf 2: [1.]cc[2.]dd
Genau, wie es soll.
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]; == GUI generated with Koda ==
$Form1 = GUICreate("Vokabeln eingeben", 540, 441, 192, 125)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 537, 377)
GUICtrlSetData($Edit1, "")
$Button1 = GUICtrlCreateButton("Start", 224, 392, 75, 25, 0)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button1
GUISetState(@SW_HIDE)
$Zeilen = GUICtrlRead($Edit1)
$Zeile = StringSplit($Zeilen, @LF)
;~ Run("C:\HEUREKA\VOXYGB5\VOXY.EXE GB5")
;~ Sleep(2000)
;~ Send("Kevin")
;~ Send("{TAB}")
;~ Send("Kevin")
;~ Send("{ENTER}")
;~ MouseMove(408, 280)
;~ MouseClick("left")
;~ Sleep(500)
;~ Send("!d")
;~ Sleep(500)
;~ Send("{DOWN}")
;~ Send("{DOWN}")
;~ Sleep(500)
;~ Send("{ENTER}")
For $i = 1 To $Zeile[0]
$Vokabel = StringSplit($Zeile[$i], @TAB)
MsgBox(0,"","[1.]"&$Vokabel[1]&"[2.]"&$Vokabel[2])
;~ Send("^n")
;~ Send($Vokabel[1])
;~ Send("{TAB}")
;~ Send($Vokabel[2])
;~ Send("^s")
;~ Sleep(1000)
Next
;~ GUISetState(@SW_Show)
EndSelect
WEnd
Exit
Was genau willst du machen?
Befehlszeile in Inputfeld einlesen und dann das Original Windows "Programme -Ausführen" öffnen und den Befehl übergeben?
Dein bisheriger Code stimmt auch nicht - du hast keine GUI erstellt und falsche Zuweisung.
Hier mal korrigiert:
$GUI = GUICreate("Meine GUI", 400, 250, -1, -1)
$run_input="Ausführen!"
$run_inputfield=GUICtrlCreateInput($run_input, 10, 30, 100, 20)
$run_button=GUICtrlCreateButton("Ready", 115, 30, 100, 20)
Sag mal, was du genau willst.
Edit:
Di Spinne war wieder schneller - Sauerei.