LOL, da habe ich die Error-Meldungen wohl viel zu wichtig genommen.
Aber bei soviel rot erstarrt man doch gleich in Erfurcht.
Beiträge von BugFix
-
-
Hi,
den Verweis auf dieses Skript von HolgerK hatte ich in Analyzers Thread entdeckt. Wollte aber nicht seinen Beitrag hijacken.
Ich verwende die aktuelle Beta (3.2.1.9), bekomme aber beim Ausführen des Beispiels folgende Fehlermeldung:Spoiler anzeigen
Code
Alles anzeigen>Running AU3Check (1.54.4.0) params: from:C:\Programme\AutoIt3\beta C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(12,78) : ERROR: $CLR_NONE previously declared as a 'Const' If Not IsDeclared("CLR_NONE") Then Global Const $CLR_NONE = 0xFFFFFFFF ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(18,74) : ERROR: $TV_FIRST previously declared as a 'Const' If Not IsDeclared("TV_FIRST") Then Global Const $TV_FIRST = 0x1100 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(19,93) : ERROR: $TVM_SETIMAGELIST previously declared as a 'Const' If Not IsDeclared("TVM_SETIMAGELIST") Then Global Const $TVM_SETIMAGELIST = $TV_FIRST + 9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(20,92) : ERROR: $TVM_GETNEXTITEM previously declared as a 'Const' If Not IsDeclared("TVM_GETNEXTITEM") Then Global Const $TVM_GETNEXTITEM = $TV_FIRST + 10 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(21,86) : ERROR: $TVM_GETITEM previously declared as a 'Const' If Not IsDeclared("TVM_GETITEM") Then Global Const $TVM_GETITEM = $TV_FIRST + 12 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(22,86) : ERROR: $TVM_SETITEM previously declared as a 'Const' If Not IsDeclared("TVM_SETITEM") Then Global Const $TVM_SETITEM = $TV_FIRST + 13 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(25,73) : ERROR: $TVGN_NEXT previously declared as a 'Const' If Not IsDeclared("TVGN_NEXT") Then Global Const $TVGN_NEXT = 0x1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(26,75) : ERROR: $TVGN_PARENT previously declared as a 'Const' If Not IsDeclared("TVGN_PARENT") Then Global Const $TVGN_PARENT = 0x3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(27,74) : ERROR: $TVGN_CHILD previously declared as a 'Const' If Not IsDeclared("TVGN_CHILD") Then Global Const $TVGN_CHILD = 0x4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(28,74) : ERROR: $TVGN_CARET previously declared as a 'Const' If Not IsDeclared("TVGN_CARET") Then Global Const $TVGN_CARET = 0x9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(29,77) : ERROR: $TVIF_STATE previously declared as a 'Const' If Not IsDeclared("TVIF_STATE") Then Global Const $TVIF_STATE = 0x0008 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(30,78) : ERROR: $TVIF_HANDLE previously declared as a 'Const' If Not IsDeclared("TVIF_HANDLE") Then Global Const $TVIF_HANDLE = 0x0010 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(31,90) : ERROR: $TVIS_STATEIMAGEMASK previously declared as a 'Const' If Not IsDeclared("TVIS_STATEIMAGEMASK") Then Global Const $TVIS_STATEIMAGEMASK = 0xF000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(337,73) : WARNING: $hImageList: possibly used before declaration. DllCall("comctl32.dll", "int", "ImageList_Destroy", "hwnd", $hImageList) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeViewLib.au3(337,73) : ERROR: $hImageList: undeclared global variable. DllCall("comctl32.dll", "int", "ImageList_Destroy", "hwnd", $hImageList) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\Dokumente und Einstellungen\Standard\Desktop\AU3-Scripte\tristatestuff\TristateTreeview-sample.au3 - 14 error(s), 1 warning(s)
Kann ich mir nicht erklären. Mag mein Rechner das Beispiel nicht?
-
Zitat
Zeile auslesen nützt mir leider nichts, da die ipconfig unterschiedlich viele einträge enthalten kann.
[autoit]
Lies doch die Zeilen in ein Array aus und vergleiche mit deinem Suchbegriff. In etwa so:
[/autoit]
#include <file.au3>
Dim $aRecords
If Not _FileReadToArray("temp.txt",$aRecords) Then
MsgBox(4096,"Error", " Fehler beim Einlesen der Datei Fehler:" & @error)
Exit
EndIf
For $x = 1 to $aRecords[0]
If StringInStr($aRecords[$x], "keine Verbindung") Then ; Eintrag ist vorhanden
; was immer du dann machen willst
ExitLoop
EndIf
NextEdit: Da war 'ne Klammer zuviel...
-
FileDelete arbeitet mit Wildcards:
[autoit]FileDelete($Pfad & "\" & "*.fbk")
[/autoit] -
An folgender Stelle in der Funktion "_back()" lösche ich das Array, bzw. ich definiere es mit "ReDim" neu als Array ohne Inhalt:
[autoit]Func _back()
[/autoit]
$pfad = $Masterpfad
$filesearch2 = FileFindFirstFile($pfad & "*.*")
_GUICtrlListViewDeleteAllItems($LIST_FOLDER)
;###################################################
ReDim $arFolder[1], $arFile[1] ; Arrays löschen
;###################################################Hatte ich erst auch nicht dran gedacht und da war mir das gleiche passiert .
-
Ich hab es mal in dein Script eingebaut. Bei mir funktionierts.
Meine Zusätze hab ich mit: ;######################### markiert:Spoiler anzeigen
[autoit];########## START ##########
[/autoit] [autoit][/autoit] [autoit]
#cs
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ BrowseNET BETA 2 +
+ +
+ Version: 0.7.9 BETA +
+ +
+ Autor: Kay Stratmann +
+ mit freundlicher Unterstützung von http://www.autoit.de +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#ce;////////// GLOBALS \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit]
Global Const $NM_FIRST = 0
Global Const $NM_DBLCLK = -3
;////////// ENDE \\\\\\\\\\;////////// HOTKEYS \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{F1}", "_help")
;////////// ENDE \\\\\\\\\\;////////// INCLUDES \\\\\\\\\
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <process.au3>
#include <string.au3>;###################################################
[/autoit] [autoit][/autoit] [autoit]
#include <array.au3>
Dim $arFolder[1], $arFile[1]
;###################################################;////////// ENDE \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];////////// OPTIONS \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode", 1)
;////////// ENDE \\\\\\\\\\;////////// MAINSETTINGS \\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$datei1 = @ScriptDir & "\ordner.db"
$Masterpfad = IniRead(@Scriptdir & "\konfiguration.ini", "Masterpfad", "Value", @Scriptdir & "\")
$pfad = $masterpfad
$autostart = IniRead(@ScriptDir & "\konfiguration.ini", "Autostart", "VALUE", "4")
$pass_read = IniRead(@ScriptDir & "\konfiguration.ini", "Passwort", "Value", "")
$encrypt = _StringEncrypt(0, $pass_read, "last")
;////////// ENDE \\\\\\\\\\;////////// GUIS \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;~~~~~~~~~~ MAINGUI ~~~~~~~~~~~
$MAIN_GUI = GUICreate("BrowseNET", 200, 440, 0, 0) ;ERSTELLT DIE GUI
GUISetHelp("BrowseNET.exe")
$search = FileFindFirstFile($pfad & "*.*")
$LIST_FOLDER = GUICtrlCreateListView("Scripte", 0, 0, 200, 410, $LVS_NOCOLUMNHEADER);ERSTELLT EINE LISTE
_GUICtrlListViewSetColumnWidth($LIST_FOLDER, 0, 180) ; Breite = 200 minus Scrollbalken
GUIRegisterMsg(0x004E, "_DoubleClickOnListView") ;DOPPELKLICK FUNKTION
$main_btn1 = GUICtrlCreateButton("Zurück zum Startpfad", 37, 415, 120, 20) ;ERSTELLT EINEN BUTTON
GUICtrlSetOnEvent($main_btn1, "_back")
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") ;CLOSE BUTTON
GUISetState(@SW_Show) ;SETZT DIE GUI AUF SHOW
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ DATEI ~~~~~~~~~~
$DATEI_MENUE = GUICtrlCreateMenu("Datei") ;ERSTELLT DAS MENUE
$DATEI_ITEM1 = GUICtrlCreateMenu("Export", $Datei_Menue) ;ERSTELLT EIN ITEM
$Export_ITEM1 = GUICtrlCreateMenuitem("Textdatei", $Datei_Item1) ;TEXTDATEI
GUICtrlSetOnEvent($Export_ITEM1, "_export_text") ;EXPORT TEXT
$Export_ITEM2 = GUICtrlCreateMenuitem("Exceldatei", $Datei_Item1) ;EXCELDATEI
GUICtrlSetOnEvent($Export_item2, "_export_excel")
$DATEI_ITEM2 = GUICtrlCreateMenuitem("Beenden", $DATEI_MENUE) ;ERSTELLT EIN ITEM
GUICtrlSetOnEvent($DATEI_ITEM2, "_exit") ;BEENDEN
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ OPTIONEN ~~~~~~~~~~
$OPTION_MENUE = GUICtrlCreateMenu("Optionen") ;ERSTELLT DAS MENUE
$OPTION_ITEM1 = GUICtrlCreateMenuitem("Einstellungen", $OPTION_MENUE) ;ERSTELLT EIN ITEM
GUICtrlSetOnEvent($OPTION_ITEM1, "_pw_gui") ;OPTIONEN GUI
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ INHALT LADEN ~~~~~~~~~~
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
;###################################################
If StringInStr(StringRight($file,5),".") Then ; ==> Datei
_ArrayAdd($arFile,$file)
Else
_ArrayAdd($arFolder,$file)
EndIf
;###################################################
;GUICtrlCreateListViewItem($file, $LIST_FOLDER)
WEnd
;###################################################
For $i = 1 To UBound($arFolder)-1
GUICtrlCreateListViewItem($arFolder[$i], $LIST_FOLDER)
Next
For $i = 1 To UBound($arFile)-1
GUICtrlCreateListViewItem($arFile[$i], $LIST_FOLDER)
Next
;###################################################
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ OPTIONGUI ~~~~~~~~~~
$OPT_GUI = GUICreate("Optionen", 200, 195) ;ERSTELLT DIE GUI
GUICtrlCreateLabel("Masterpfad", 10, 10, 100, 20) ;ERSTELLT EIN LABEL
GUICtrlCreateLabel("INFO: Die Pfadangabe muss immer mit einem ''\'' enden!", 10, 160, 180, 50) ;ERSTELLT EIN LABEL
GUICtrlCreateLabel("Passwort", 10, 60, 75, 20) ;ERSTELLT EIN LABEL
$opt_input1 = GUICtrlCreateInput($Masterpfad, 10, 30, 180, 20) ;ERSTELLT EIN INPUTFELD
$opt_input2 = GUICtrlCreateInput($encrypt, 10, 80, 180, 20) ;ERSTELLT EIN INPUTFELD
$checkbox = GUICtrlCreateCheckbox("Autostart", 15, 105) ;CHECKBOX
GUICtrlSetState(-1, $autostart)
$opt_btn1 = GUICtrlCreateButton("OK", 10, 135, 75, 20) ;ERSTELLT EINEN BUTTON
GUICtrlSetOnEvent($opt_btn1, "_Opt_save") ;EINSTELLUNGEN SPEICHERN
$opt_btn2 = GUICtrlCreateButton("Abbrechen", 115, 135, 75, 20) ;ERSTELLT EIEN BUTTON
GUICtrlSetOnEvent($opt_btn2, "_opt_hide") ;ABBRECHEN
GUISetOnEvent($GUI_EVENT_CLOSE, "_opt_hide") ;BEENDEN
GUISetState(@SW_Hide, $OPT_GUI) ;SETZT DIE GUI AUF HIDE
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ PASSWORTGUI ~~~~~~~~~~
$pw_gui = GUICreate("Passwort", 200, 70) ;ERSTELLT DIE GUI
$pw_input = GUICtrlCreateInput("", 10, 10, 180, 20, $ES_PASSWORD) ;INPUTFELD
$pw_btn1 = GUICtrlCreateButton("Login", 10, 40, 75, 20) ;BUTTON
GUICtrlSetOnEvent($pw_btn1, "_pw_login") ;LOGIN
$pw_btn2 = GUICtrlCreateButton("Abbrechen", 115, 40, 75, 20) ;BUTTON
GUICtrlSetOnEvent($pw_btn2, "_pw_hide") ;ABBRECHEN
GUISetOnEvent($GUI_EVENT_CLOSE, "_pw_hide") ;BEENDEN
GUISetState(@SW_Hide, $pw_gui) ;SETZT DIE GUI AUF HIDE
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\;////////// WHILESCHLEIFE \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1 ;BEGINN DER SCHLEIFE
Sleep(100) ;100MS PAUSE
WEnd ;SCHLEIFENENDE
;////////// ENDE \\\\\\\\\\;////////// FUNKTIONEN \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit]
;~~~~~~~~~~ HELP ~~~~~~~~~~
FUNC _help()
_RunDOS("start " & @ScriptDir & "\Readme.txt")
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ EXPORT ~~~~~~~~~~
Func _export_text()
$exp_txt = FileSaveDialog("Export", Default, "(*.txt)", 16, "Export.txt")
If @error Then
;
Else
If FileExists($exp_txt) Then
FileDelete($exp_txt)
EndIf
$filesearch = FileFindFirstFile($pfad & "*.*")
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
FileWriteLine($exp_txt, $filefind)
FileClose($exp_txt)
WEnd
_RunDOS("start " & $exp_txt)
EndIf
EndFuncFunc _export_excel()
[/autoit] [autoit][/autoit] [autoit]
$exp_xls = FileSaveDialog("Export", Default, "(*.xls)", 16, "Export.xls")
If @error Then
;
Else
If FileExists($exp_xls) Then
FileDelete($exp_xls)
EndIf
$filesearch = FileFindFirstFile($pfad & "*.*")
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
FileWriteLine($exp_xls, $filefind)
FileClose($exp_xls)
WEnd
_RunDOS("start " & $exp_xls)
EndIf
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ PASSWORT~~~~~~~~~~
Func _pw_gui()
GUISetState(@SW_SHOW, $pw_gui) ;SETZT DIE GUI AUF SHOW
EndFuncFunc _pw_hide()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $pw_GUI) ;SETZT DIE GUI AUF HIDE
EndFuncFunc _pw_login()
[/autoit] [autoit][/autoit] [autoit]
$pw_input_read = GUICtrlRead($pw_input)
If $pw_input_read == $encrypt Then
GUISetState(@SW_SHOW, $opt_gui) ;SETZT DIE GUI AUF SHOW
GUISetState(@SW_HIDE, $pw_gui) ;SETZT DIE GUI AUF HIDE
Else
MsgBox(0, "EINGABE FALSCH", "Das Passwort welches Sie eingegeben haben ist nicht korrekt!") ;MSGBOX
EndIf
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~
;~~~~~~~~~~ OPTIONEN ~~~~~~~~~~Func _opt_hide()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $opt_GUI) ;SETZT DIE GUI AUF HIDE
EndFuncFunc _opt_save()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$opt_input1_read = GUICtrlRead($opt_input1) ;ERSTELLT EIN INPUTFELD
$opt_input2_read = GUICtrlRead($opt_input2)
IniWrite(@Scriptdir & "\konfiguration.ini", "Masterpfad", "Value", $opt_input1_read);SCHREIBT IN EINE INIDATEI
IniWrite(@ScriptDir & "\konfiguration.ini", "Autostart", "Value", GUICtrlRead($Checkbox))
$crypt = _StringEncrypt(1, $opt_input2_read, "last")
IniWrite(@ScriptDir & "\konfiguration.ini", "Passwort", "Value", $crypt)
If GUICtrlRead($checkbox) = "4" Then
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BrowseNET")
EndIf
If GUICtrlRead($checkbox) = "1" Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BrowseNET", "REG_SZ", @ScriptFullPath)
EndIf
MsgBox(0, "Einstellungen", "Die änderungen werden erst nach einem Neustart des Programms in kraft treten")
GUISetState(@SW_HIDE, $OPT_GUI)
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ ZURÜCK ~~~~~~~~~~
Func _back()
$pfad = $Masterpfad
$filesearch2 = FileFindFirstFile($pfad & "*.*")
_GUICtrlListViewDeleteAllItems($LIST_FOLDER)
;###################################################
ReDim $arFolder[1], $arFile[1] ; Arrays löschen
;###################################################
While 1
$filefind2 = FileFindNextFile($filesearch2)
If @error Then ExitLoop
;###################################################
If StringInStr(StringRight($filefind2,5),".") Then ; ==> Datei
_ArrayAdd($arFile,$filefind2)
Else
_ArrayAdd($arFolder,$filefind2)
EndIf
;###################################################
;GUICtrlCreateListViewItem($filefind2, $LIST_FOLDER)
WEnd
;###################################################
For $i = 1 To UBound($arFolder)-1
GUICtrlCreateListViewItem($arFolder[$i], $LIST_FOLDER)
Next
For $i = 1 To UBound($arFile)-1
GUICtrlCreateListViewItem($arFile[$i], $LIST_FOLDER)
Next
;###################################################
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ BEENDEN ~~~~~~~~~
Func _exit()
;IniWrite(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", "I:\DV\dv3\scripte\ordner\")
Exit ;BEENDEN
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\;////////// EXTERN [AUTOIT.DE] \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit]
;~~~~~~~~~~ DOUBLECLICK ~~~~~~~~~~
Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam);Die Eigentliche Funktion
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
If $wParam = $List_Folder Then;Wenn der Klick auf das ListView ging..
If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
; Hier kommt hin was er machen soll:
$read_select = GUICtrlRead(GUICtrlRead($LIST_FOLDER))
If StringInStr(FileGetAttrib($pfad & $read_select),"D") Then
IniWrite(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", $pfad & $read_select & "\")
$pfad = IniRead(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", "")
$filesearch = FileFindFirstFile($pfad & "*.*")
_GUICtrlListViewDeleteAllItems($LIST_FOLDER)
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
GUICtrlCreateListViewItem($filefind, $LIST_FOLDER)
WEnd
Else
_RunDOS("Start " & $pfad & $read_select)
EndIf
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\;########## ENDE ##########
[/autoit] -
Schau mal hier: Dateien / Ordner rekursiv lesen nach.
Vielleicht bringt dich das weiter.Edit:
Oder willst du erst nur Ordner und dann nur Dateien anzeigen, oder wie?Edit:
[autoit]
Sortiere doch beim Auslesen (FindNextFile) gleich ob Datei oder Ordner. Die Arrays sind hier bei Index "0" leer kannst ja beim zuweisen der Einträge dort einen Zähler mitführen für Anzahl Elemente:#include <array.au3>
[/autoit]
Dim $arFolder[1], $arFile[1]
If StringInStr(StringRight($file,5),".") Then ; ==> Datei
_ArrayAdd($arFile,$file)
Else
_ArrayAdd($arFolder,$file)
EndIf
Am Ende bestückst du dein Listview mit den Daten aus den Arrays, erst die Ordner, dann die Dateien. -
Hast du auch Gebietseinstellungen auf englisch gesetzt?
Wechseln der Sprache in der Eingabegebietsschema-Leiste hat nur Einfluß auf die Tastatur (wie der Name sagt: Eingabe).
Willst du, dass dein Rechner auch englisches Datum und Uhrzeit hat, mußt du in <Regions- und Sprachoptionen><Regionale Einstellungen> auf <Englisch(Großbritannien)> oder <Englisch(USA)> ändern.
Dann hat dein PC diese Werte als Systemeinstellung und sollte entsprechend beim Galenda berücksichtigt werden (hoffe ich ). -
Vielleicht gibts ja bald eine site:
Edit:
Mußte ich jetzt einfach loswerden um meinen 200. Post zu haben -
Hi,
nachdem ich lange genug und mit eurer Unterstützung gegrübelt habe, konnte ich das Problem nun lösen.
Das Ergebnis habe ich gleich in eine UDF verpackt. Vielleicht kann es ja noch jemand brauchen.
Hier ein Muster zum Probieren:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#cs
Mit Alt+C wechselt ihr zwischen
Link Benutzkarte gesperrt / Link Kalender frei
und
Link Benutzkarte frei / Link Kalender gesperrt
und zurück
#ce#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <Misc.au3>
Global $changed = 0, $mode = 0; direkte Links
[/autoit] [autoit][/autoit] [autoit]
$x = "http://clustrmaps.com/counter/maps.php?url=http://autoit.aufwaerts.de" ; Benutzerkarte; http://autoit.aufwaerts.de/calendar.php?sid=
[/autoit] [autoit][/autoit] [autoit]
; da "sid" bei jedem Aufruf wechselt, für solche Links:
$y = "http://autoit.aufwaerts.de/calendar.php?" ; KalenderHotKeySet("!c","change")
[/autoit] [autoit][/autoit] [autoit]$oMSIE = _IECreate ("http://autoit.aufwaerts.de/portal.php")
[/autoit] [autoit][/autoit] [autoit]
_SkipForbiddenLink($x)Func _SkipForbiddenLink($ForbiddenLink,$Part=0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $Link
AutoItSetOption("WinTitleMatchMode", 2)
If $changed = 1 Then $changed = 0 ; nur für Test zum Umschalten
While 1
$Link = StatusbarGetText("Internet Explorer")
If $Link <> "" Then
If $Part = 0 Then ; kpl. Link angegeben
If $Link = $ForbiddenLink And _
( _IsPressed("01") Or _IsPressed("02")) Then MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0)
Else ; Teil des Links angegeben
If StringInStr($Link, $ForbiddenLink) And _
( _IsPressed("01") Or _IsPressed("02")) Then MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0)
EndIf
EndIf
Sleep(100)
; If Not WinExists("Internet Explorer") Then Exit ; Original in der Funktion
If Not WinExists("Internet Explorer") Or $changed = 1 Then Exit ; nur für Test zum Umschalten
WEnd
EndFuncFunc change()
[/autoit]
$changed = 1
If $mode = 0 Then
$mode = 1
_SkipForbiddenLink($y, 1)
Else
$mode = 0
_SkipForbiddenLink($x)
EndIf
EndFunc
Die Funktion im Anhang.Edit:
Hab eine Änderung eingefügt. Erst wenn auf den Link geklickt wird springt die Maus zur Mitte. -
Ich werd jetzt mal folgendes versuchen:
- wenn Maus über Link ($Link = StatusbarGetText("Internet Explorer") , Vergleich mit Link-Liste)
- dann Maus bewegen zu Pos x,y (z.B. Bildschirmmitte)Ich geb Bescheid ob es klappt.
Edit:
Heureka, ich habs!
Da die Links sich täglich ändern, checke ich jetzt nur deren Basis ab. Das geht super. Sowie die Maus auf einen 'bösen' Link zeigt springt sie zur Mitte.
Hier das Script:Spoiler anzeigen
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>
#cs
Seitenaufruf
Login
#ceAutoItSetOption("WinTitleMatchMode", 2)
[/autoit]
While 1
$Link = StatusbarGetText("Internet Explorer")
If $Link <> "" Then
If _
StringInStr($Link, "http://redirect.1und1.de/") Or _
StringInStr($Link, "http://maxdome.1und1.de/movies/?") Or _
StringInStr($Link, "http://maxdome.1und1.de/comedy/?") Or _
StringInStr($Link, "http://maxdome.1und1.de/serie/?") Or _
StringInStr($Link, "http://xxx.nightclub.de/") Or _
StringInStr($Link, "http://maxdome.1und1.de/abos/") Or _
StringInStr($Link, "http://www.nightclub.de/") _
Then
MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0)
EndIf
EndIf
Sleep(100)
If Not WinExists("Internet Explorer") Then Exit
WEndWürde gern "gelöst" aktivieren -- aber kein Schalter da.
-
Werde es morgen mal auf nem 2k testen und (so es dann funzt ) den Thread als gelöst markieren -- ähh wo mach ich das denn? Seh hier keinen Schalter.
Oder geht das mit <Weitere Optionen><Öffnen/Schließen> ?Edit:
Hab es versucht mit den verschiedensten Größen. Ergebnis ist immer das gleiche: Win2k mag die Combobox einfach nicht. Was solls, ich lass mich doch von Windoof nicht ärgern -- hab jetzt einfach 'ne Liste genommen. -
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
[/autoit]
$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 -
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. -
@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,
[autoit]
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
[/autoit]
#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:Spoiler anzeigen
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>$oIE = _IECreate ("https://maxdomeservice.1und1.de/login/start/index.php?mxdsid=&__rd=hjRQwTpsrii46868GHTj,uTRWzuui46")
[/autoit] [autoit][/autoit] [autoit]
Send("{TAB 2}")
Send("USER")
Send("{TAB}")
Send("PASSWORT")
Send("{ENTER}")
WinWaitActive("Sicherheitshinweis")
Send("!j")Dim $arVerboteneLinks[15]
[/autoit] [autoit][/autoit] [autoit]
$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)
[/autoit]
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)
[/autoit]
If Not FileExists($iFile) Then Return SetError(1,0,0)
$objShellApp = ObjCreate("Shell.Application")
$objShellApp.ShellExecute($iFile,0,0,"PRINT",0)
EndFuncIn der Beta gibt es für reinen Textdruck:
[autoit]#Include <File.au3>
[/autoit]
_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= -
[autoit]
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.
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
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)
[/autoit] [autoit][/autoit] [autoit]
$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
[/autoit]
$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.