wenns mal etwas länger dauert, äh.. länger wird
:
Arbeite mit Regionen, die kannst du dann einfach "zusammenfalten" und nur bei Bedarf ausklappen.
#region - GUI-Setup
; Code
; ...
; ...
#endregion
Ich finde das recht übersichtlich.
wenns mal etwas länger dauert, äh.. länger wird
:
Arbeite mit Regionen, die kannst du dann einfach "zusammenfalten" und nur bei Bedarf ausklappen.
#region - GUI-Setup
; Code
; ...
; ...
#endregion
Ich finde das recht übersichtlich.
Im Allgemeinen gelangt man mit mehreren TAB-Sprüngen auf das gewünschte Control und kann es dann mit SPACE aktivieren/deaktivieren.
Das ist dann völlig unabhängig von der Auflösung (wie übrigens auch ControlClick).
Hast du schon mit dem WindowsInfoTool probiert die Controls auszulesen?
Hi,
also wenn ich das richtig verstanden habe, möchtest du:
- Installscripts schreiben
- dazu die Controls, die bei der Installation des entsprechenden Programms verwendet werden vorher ermitteln ohne die Installation zu starten
Die setup's sind kompilierte Dateien. Was da drin steckt, siehst du erst, wenn du es ausführst.
Kompilier doch mal eine eigene GUI und versuch dann festzustellen, welche Controls darin sind - no way. ![]()
Hallo,
wow - interessante Angelegenheit.
Wie sieht das aus mit der Datenmenge, die ich im jeweiligen Stack parken kann. Gibt es eine Limitierung von Haus aus oder begrenzt der physikalische Speicher den Inhalt?
Ich fasse das gleich mal ins Auge um für eine umfangreiche Datenbank die selektierten Daten nach verschiedensten Kriterien schneller umsortieren zu können. Da könnte natürlich die Datenmenge eine Rolle spielen. Muß ich aber selbst erst mal hochrechnen, was als Maximum zu erwarten ist. ![]()
Ich halte eigentlich auch nichts von einer weiteren Unterteilung.
Durch das Portal sind immer die aktuellen Themen obenauf. Wer Fragen zu bestimmten Themen hat sollte immer erst die Suche bemühen, und da ist es egal aus welchem 'Karton' das Ergebnis kommt. ![]()
Und dem Fragesteller selbst wird es auch egal sein, in welcher Kategorie seine Frage beantwortet wird.
Wobei hast du das Problem?
alle 60 min: Sleep(3600000)
Dos-Befehl: _RunDOS( $sCommand )
Als Bsp.
HotKeySet("^{ESC}", "Esc") ; zum Verlassen der Schleife
[/autoit][autoit][/autoit][autoit]While 1
Sleep(3600000)
_RunDOS( $sCommand )
WEnd
Func Esc()
Exit
EndFunc
EDIT:
Da war doch wer schneller ![]()
Aber 2-mal das selbe Ergebnis - dann muß es ja stimmen! ![]()
Ahh..
Danke, Assign( ) und Eval( ) - das paßt.
EDIT:
Hier warum ich es brauchte. Aus meiner http://autoit.aufwaerts.de/thread.php?threadid=595. Mal im Vergleich der alte Code und nun mit Assign( ) und Eval( ).
alte Version:
$day1 = GUICtrlRead($R1)
$day2 = GUICtrlRead($R2)
$day3 = GUICtrlRead($R3)
$day4 = GUICtrlRead($R4)
$day5 = GUICtrlRead($R5)
$day6 = GUICtrlRead($R6)
$day7 = GUICtrlRead($R7)
$day8 = GUICtrlRead($R8)
$day9 = GUICtrlRead($R9)
$day10 = GUICtrlRead($R10)
$day11 = GUICtrlRead($R11)
$day12 = GUICtrlRead($R12)
$day13 = GUICtrlRead($R13)
$day14 = GUICtrlRead($R14)
$day15 = GUICtrlRead($R15)
$day16 = GUICtrlRead($R16)
$day17 = GUICtrlRead($R17)
$day18 = GUICtrlRead($R18)
$day19 = GUICtrlRead($R19)
$day20 = GUICtrlRead($R20)
$day21 = GUICtrlRead($R21)
$day22 = GUICtrlRead($R22)
$day23 = GUICtrlRead($R23)
$day24 = GUICtrlRead($R24)
$day25 = GUICtrlRead($R25)
$day26 = GUICtrlRead($R26)
$day27 = GUICtrlRead($R27)
$day28 = GUICtrlRead($R28)
$day29 = GUICtrlRead($R29)
$day30 = GUICtrlRead($R30)
$day31 = GUICtrlRead($R31)
$mon1 = GUICtrlRead($R1m)
$mon2 = GUICtrlRead($R2m)
$mon3 = GUICtrlRead($R3m)
$mon4 = GUICtrlRead($R4m)
$mon5 = GUICtrlRead($R5m)
$mon6 = GUICtrlRead($R6m)
$mon7 = GUICtrlRead($R7m)
$mon8 = GUICtrlRead($R8m)
$mon9 = GUICtrlRead($R9m)
$mon10 = GUICtrlRead($R10m)
$mon11 = GUICtrlRead($R11m)
$mon12 = GUICtrlRead($R12m)
Select
Case $day1 = 1
$D = 1
Case $day2 = 1
$D = 2
Case $day3 = 1
$D = 3
Case $day4 = 1
$D = 4
Case $day5 = 1
$D = 5
Case $day6 = 1
$D = 6
Case $day7 = 1
$D = 7
Case $day8 = 1
$D = 8
Case $day9 = 1
$D = 9
Case $day10 = 1
$D = 10
Case $day11 = 1
$D = 11
Case $day12 = 1
$D = 12
Case $day13 = 1
$D = 13
Case $day14 = 1
$D = 14
Case $day15 = 1
$D = 15
Case $day16 = 1
$D = 16
Case $day17 = 1
$D = 17
Case $day18 = 1
$D = 18
Case $day19 = 1
$D = 19
Case $day20 = 1
$D = 20
Case $day21 = 1
$D = 21
Case $day22 = 1
$D = 22
Case $day23 = 1
$D = 23
Case $day24 = 1
$D = 24
Case $day25 = 1
$D = 25
Case $day26 = 1
$D = 26
Case $day27 = 1
$D = 27
Case $day28 = 1
$D = 28
Case $day29 = 1
$D = 29
Case $day30 = 1
$D = 30
Case $day31 = 1
$D = 31
EndSelect
Select
Case $mon1 = 1
$mon = 1
Case $mon2 = 1
$mon = 2
Case $mon3 = 1
$mon = 3
Case $mon4 = 1
$mon = 4
Case $mon5 = 1
$mon = 5
Case $mon6 = 1
$mon = 6
Case $mon7 = 1
$mon = 7
Case $mon8 = 1
$mon = 8
Case $mon9 = 1
$mon = 9
Case $mon10 = 1
$mon = 10
Case $mon11 = 1
$mon = 11
Case $mon12 = 1
$mon = 12
EndSelect
und DAS SELBE Ergebnis neu:
[autoit]For $i = 1 To 31
Assign("day" & $i, GUICtrlRead(Eval("R" & $i))) ; $day1-$day31 = GUICtrlRead($R1-$R31)
Next
For $i = 1 To 12
Assign("mon" & $i, GUICtrlRead(Eval("R" & $i & "m"))) ; $mon1-12 = GUICtrlRead($R1m-$R12m)
Next
For $i = 1 To 31
If Eval("d"&"a"&"y"&$i) = 1 Then ; If $day1-$day31 = 1 Then $D = $i
$D = $i
ExitLoop
EndIf
Next
For $i = 1 To 12
If Eval("m"&"o"&"n"&$i) = 1 Then ; If $mon1-$mon12 = 1 Then $D = $i
$mon = $i
ExitLoop
EndIf
Next
Hi,
vielleicht ist das Problem ja ganz simpel zu lösen -aber ich hab da 'nen Hänger.
Ich möchte z.B. 31 Radio-Control's erstellen. Und da ich ja faul bin
am liebsten in einer Schleife. Etwa so, allerdings funktioniert die Syntax für den Variablennamen so nicht.
$top = 15
For $i = 1 To 31
$Radio & $i = GUICtrlCreateRadio($i, 20, $i*$top, 30, 15) ; soll dann $Radio1, $Radio2 usw. ergeben
Next
Gibt ja häufiger Situationen, in denen Controls mit fortlaufender Nummerierung existieren und wo es sinnvoll wäre, den numerischen Bestandteil des Variablennamens, wie im obigen Bsp. in einer Zählschleife auszuwerten oder festzulegen.
Das war nur ein Bsp., mir geht es grundsätzlich darum: Kann ich Variablennamen zusammensetzen oder Bestandteile des Namens auswerten?
LOL, da habe ich die Error-Meldungen wohl viel zu wichtig genommen.
Aber bei soviel rot erstarrt man doch gleich in Erfurcht. ![]()
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:
>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)
Alles anzeigen
Kann ich mir nicht erklären. Mag mein Rechner das Beispiel nicht? ![]()
ZitatZeile auslesen nützt mir leider nichts, da die ipconfig unterschiedlich viele einträge enthalten kann.
Lies doch die Zeilen in ein Array aus und vergleiche mit deinem Suchbegriff. In etwa so:
#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
Next
Edit: 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()
$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:
;########## START ##########
#cs
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ BrowseNET BETA 2 +
+ +
+ Version: 0.7.9 BETA +
+ +
+ Autor: Kay Stratmann +
+ mit freundlicher Unterstützung von http://www.autoit.de +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#ce
;////////// GLOBALS \\\\\\\\\\
Global Const $NM_FIRST = 0
Global Const $NM_DBLCLK = -3
;////////// ENDE \\\\\\\\\\
;////////// HOTKEYS \\\\\\\\\\
HotKeySet("{F1}", "_help")
;////////// ENDE \\\\\\\\\\
;////////// INCLUDES \\\\\\\\\
#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <process.au3>
#include <string.au3>
;###################################################
#include <array.au3>
Dim $arFolder[1], $arFile[1]
;###################################################
;////////// ENDE \\\\\\\\\\
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];////////// OPTIONS \\\\\\\\\\
Opt("GUIOnEventMode", 1)
;////////// ENDE \\\\\\\\\\
;////////// MAINSETTINGS \\\\\\\\\
$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 \\\\\\\\\\
;~~~~~~~~~~ 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 \\\\\\\\\\
While 1 ;BEGINN DER SCHLEIFE
Sleep(100) ;100MS PAUSE
WEnd ;SCHLEIFENENDE
;////////// ENDE \\\\\\\\\\
;////////// FUNKTIONEN \\\\\\\\\\
;~~~~~~~~~~ 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
EndFunc
Func _export_excel()
$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
EndFunc
Func _pw_hide()
GUISetState(@SW_HIDE, $pw_GUI) ;SETZT DIE GUI AUF HIDE
EndFunc
Func _pw_login()
$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()
GUISetState(@SW_HIDE, $opt_GUI) ;SETZT DIE GUI AUF HIDE
EndFunc
Func _opt_save()
$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] \\\\\\\\\\
;~~~~~~~~~~ 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:
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>
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:
#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>
#Include <Misc.au3>
Global $changed = 0, $mode = 0
; direkte Links
$x = "http://clustrmaps.com/counter/maps.php?url=http://autoit.aufwaerts.de" ; Benutzerkarte
; http://autoit.aufwaerts.de/calendar.php?sid=
; da "sid" bei jedem Aufruf wechselt, für solche Links:
$y = "http://autoit.aufwaerts.de/calendar.php?" ; Kalender
HotKeySet("!c","change")
[/autoit] [autoit][/autoit] [autoit]$oMSIE = _IECreate ("http://autoit.aufwaerts.de/portal.php")
_SkipForbiddenLink($x)
Func _SkipForbiddenLink($ForbiddenLink,$Part=0)
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
EndFunc
Func change()
$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:
#NoTrayIcon
#include <IE.au3>
#cs
Seitenaufruf
Login
#ce
AutoItSetOption("WinTitleMatchMode", 2)
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
WEnd
Wü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.