Beim ListView gibt es viele Dinge, die man auch mit "WM_NOTIFY" realisieren kann (siehe Beispiel zu _GUICtrlListView_Create in der Hilfe).
Bei den ComboBoxen ist es eher "WM_COMMAND", was einiges möglich macht (siehe Beispiel zu _GUICtrlComboBox_Create in der Hilfe).
Beiträge von Oscar
-
-
Ich denke, dass das machbar ist. Aber die Frage ist, wenn Du schon nicht die Rechte hast das Hintergrundbild zu ändern, ob Du dann das AutoIt-Script ausführen darfst!?
Und wenn ja, was ist das für eine merkwürdige Rechtevergabe?Aber ganz abgesehen davon: für Programmieranfragen haben wir einen Extra-Forumbereich (mit und ohne Gegenleistung).
Und etwas aus Neugier: Was ist das für eine eigenartige Art Informationen und Telefonnummern zu speichern?

-
Bei welchem Browser passiert denn das?
Bei mir mit Firefox geht das kopieren einwandfrei.
-
Ich weiß nicht wieso Du da ein "OrOr" stehen hast, aber ändere das mal in "Or".
-
Hier mal ein kleines Beispiel:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GuiComboBoxEx.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>Global $aAccount = _LogInBox('Netzlaufwerk anmelden', 6, 'Deutsch', False)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
Exit
Else
$ret = DriveMapAdd("x:", "\\192.168.178.1\daten", 1, $aAccount[0], $aAccount[1]) ; Flag = 1 für Persistent mapping
ConsoleWrite('Returncode: ' & $ret & @CR & 'Error: ' & @error & @CR & 'Extended: ' & @extended & @CR)
EndIf#cs
[/autoit]
======================================================================================================================
Function Name: _LogInBox($sTitle [, $iMinLen [,$sStartLang [, $bPassVisible=True [, $iXPos=-1 [, $iYPos=-1]]]]])
Description: Eingabefenster für Benutzername und Passwort
Parameter(s): $sTitle = Fenstertitel
optional: $iMinLen = Mindestlänge des Passworts (Standard = keine Mindestlänge)
optional: $sStartLang = die Sprache auswählen (Standard = Deutsch)
optional: $bPassVisible = True/False = Passwort sichtbar anzeigen Ja/Nein (Standard = Ja)
optional: $iXPos = Horizontale Position des Fensters (Standard = zentriert)
optional: $iYPos = Vertikale Position des Fensters (Standard = zentriert)
Return Value(s): Array mit 2 Elementen (Benutzername und Passwort)
Bei "Abbrechen" oder "Schließen" wird @error = 1
Required: #include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
Author(s): Oscar (http://www.autoit.de)
======================================================================================================================
#ce
Func _LogInBox($sTitle, $iMinLen = 0, $sStartLang = 'Deutsch', $bPassVisible = True, $iXPos = -1, $iYPos = -1)
If $iMinLen < 0 Or $iMinLen = Default Then $iMinLen = 0
If $sStartLang = -1 Or $sStartLang = Default Then $sStartLang = 'Deutsch'
If $bPassVisible = -1 Or $bPassVisible = 'Default' Then $bPassVisible = True
If $iXPos < 0 Or $iXPos = Default Or $iXPos > @DesktopWidth Then $iXPos = -1
If $iYPos < 0 Or $iYPos = Default Or $iXPos > @DesktopHeight Then $iYPos = -1
Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk
Local $iOpt, $sStyle, $sTmp, $aLanguage, $iLanguage, $hImage
Local $iErr, $sFont = 'Arial', $aOut[2]
Local $iBGColorInner = 0xBBBBBB, $iBGColorOuter = 0xEEEEEE
Local $sIconsPath = @ScriptDir & '\icons.icl'
Local $sLang = 'Dansk|Deutsch|English|Français'
Local $aTranslation[4][7] = [ _
['Brugernavn:' & @CRLF & '(påkrævet)', _ ; Dänisch
'Password:', _
@CRLF & '(mindst ' & $iMinLen & ' tegn)', _
'&Password synlige', _
'Abonner...', _
'Annuller', ''], _
['Benutzername:' & @CRLF & '(erforderlich)', _ ; Deutsch
'Passwort:', _
@CRLF & '(min. ' & $iMinLen & ' Zeichen)', _
'&Passwort sichtbar', _
'Anmelden...', _
'Abbrechen', ''], _
['Username:' & @CRLF & '(needed)', _ ; Englisch
'Password:', _
@CRLF & '(min. ' & $iMinLen & ' Chars)', _
'&Password visible', _
'Log in...', _
'Cancel', ''], _
['Nom:' & @CRLF & '(nécessaire)', _ ; Französisch
'mot de passe:', _
@CRLF & '(min. ' & $iMinLen & ' lettre)', _
'&mot de passe visible', _
'déclarer...', _
'Annuler', '']]
$aLanguage = StringSplit($sLang, '|')
For $i = 1 To $aLanguage[0]
If $sStartLang = $aLanguage[$i] Then $iLanguage = $i - 1
Next
$iOpt = Opt('GUIOnEventMode', 0)
$hGui = GUICreate($sTitle, 343, 200, $iXPos, $iYPos, BitOR($WS_SYSMENU, $WS_VISIBLE))
GUISetIcon(@SystemDir & '\shell32.dll', -212)
GUISetBkColor($iBGColorOuter)
GUICtrlCreateLabel('', 5, 5, 325, 120, -1, $WS_EX_CLIENTEDGE)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetBkColor(-1, $iBGColorInner)
$hUserLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][0], 12, 17, 90, 35)
GUICtrlSetFont(-1, 9, 400, 0, $sFont)
GUICtrlSetBkColor(-1, $iBGColorInner)
$hUser = GUICtrlCreateInput('', 115, 20, 205, 25)
GUICtrlSetFont(-1, 10, 400, 0, $sFont)
If $iMinLen > 0 Then
$aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
Else
$aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
EndIf
$hPassLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][6], 12, 63 + ($iMinLen = 0) * 6, 100, 35)
GUICtrlSetFont(-1, 9, 400, 0, $sFont)
GUICtrlSetBkColor(-1, $iBGColorInner)
$hPass = GUICtrlCreateInput('', 115, 65, 205, 25)
GUICtrlSetFont(-1, 10, 400, 0, $sFont)
GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
$hCheck = GUICtrlCreateCheckbox($aTranslation[$iLanguage][3], 120, 92, 200, 25)
GUICtrlSetFont(-1, 9, 400, 0, $sFont)
GUICtrlSetBkColor(-1, $iBGColorInner)
If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
$hLanguage = _GUICtrlComboBoxEx_Create($hGui, '', 10, 135, 110, 140, $CBS_DROPDOWNLIST)
If FileExists($sIconsPath) Then
$hImage = _GUIImageList_Create(32, 20, 5, 4, 4)
_GUIImageList_AddIcon($hImage, $sIconsPath, 0, True)
_GUIImageList_AddIcon($hImage, $sIconsPath, 1, True)
_GUIImageList_AddIcon($hImage, $sIconsPath, 2, True)
_GUIImageList_AddIcon($hImage, $sIconsPath, 3, True)
_GUICtrlComboBoxEx_SetImageList($hLanguage, $hImage)
EndIf
_GUICtrlComboBoxEx_SetItemHeight($hLanguage, 0, 25)
For $i = 1 To $aLanguage[0]
_GUICtrlComboBoxEx_AddString($hLanguage, $aLanguage[$i], $i-1, $i-1)
Next
_GUICtrlComboBoxEx_SetCurSel($hLanguage, $iLanguage)
$hCancel = GUICtrlCreateButton($aTranslation[$iLanguage][5], 250, 135, 80, 25)
GUICtrlSetFont(-1, 9, 400, 0, $sFont)
$hOk = GUICtrlCreateButton($aTranslation[$iLanguage][4], 160, 135, 80, 25, $BS_DEFPUSHBUTTON)
GUICtrlSetFont(-1, 9, 400, 0, $sFont)
GUICtrlSetState(-1, $GUI_DISABLE)
WinSetOnTop($hGui, '', 1)
GUICtrlSetState($hUser, $GUI_FOCUS)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $hCancel
$iErr = 1
ExitLoop
Case $hCheck
GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck), $GUI_CHECKED) * Asc('*'), 0)
GUICtrlSetState($hPass, $GUI_FOCUS)
Case $hOk
$aOut[0] = GUICtrlRead($hUser)
$aOut[1] = GUICtrlRead($hPass)
ExitLoop
EndSwitch
If Not _GUICtrlComboBoxEx_GetDroppedState($hLanguage) Then
If _GUICtrlComboBoxEx_GetCurSel($hLanguage) <> $iLanguage Then
$iLanguage = _GUICtrlComboBoxEx_GetCurSel($hLanguage)
If $iMinLen > 0 Then
$aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
Else
$aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
EndIf
GUICtrlSetData($hUserLabel, $aTranslation[$iLanguage][0])
GUICtrlSetData($hPassLabel, $aTranslation[$iLanguage][6])
GUICtrlSetData($hCheck, $aTranslation[$iLanguage][3])
GUICtrlSetData($hCancel, $aTranslation[$iLanguage][5])
GUICtrlSetData($hOk, $aTranslation[$iLanguage][4])
GUICtrlSetState($hUser, $GUI_FOCUS)
EndIf
EndIf
If GUICtrlRead($hUser) <> '' And StringLen(GUICtrlRead($hPass)) >= $iMinLen Then
If BitAND(GUICtrlGetState($hOk), $GUI_DISABLE) Then GUICtrlSetState($hOk, $GUI_ENABLE)
Else
If BitAND(GUICtrlGetState($hOk), $GUI_ENABLE) Then GUICtrlSetState($hOk, $GUI_DISABLE)
EndIf
WEnd
Opt('GUIOnEventMode', $iOpt)
GUIDelete($hGui)
Return SetError($iErr, 0, $aOut)
EndFunc ;==>_LogInBox -
Mist! Bei "1" muss das Script noch erweitert werden. Nimm mal das:
[autoit]
[/autoit]
; Verbindet Laufwerk X mit \\192.168.178.1\daten, wobei der Benutzer "user" mit dem Passwort "passwort" benutzt werden soll
DriveMapAdd("X:", "\\192.168.178.1\daten", 0, "user", "passwort")
ConsoleWrite('Error: ' & @error & @CR & 'Extended: ' & @extended & @CR) -
Drück mal in SciTE die Taste F8 (um Konsolen-Output anzuzeigen) und starte dann das Script.
In dem Output-Feld muss nun eine Zahl ausgegeben werden. Das ist die Fehlernr. -
Ich hatte gemeint, dass Du die Ausgabe der Konsole posten sollst, damit man sieht, welcher Fehler aufgetreten ist.
-
Füge mal ein:
[autoit]ConsoleWrite(@error & @CR)
[/autoit]
hinter die "DriveMapAdd(...)"-Zeile ein und poste das Ergebnis. -
Stimmt, das ist dann noch einfacher.


-
Vielleicht so:
Spoiler anzeigen
[autoit]
[/autoit]
#include <IE.au3>
Global $sStatus = '', $sCheck = ''
$hGui = GUICreate('Test', 300, 200)
GUICtrlCreateLabel('Fenster schließen zum beenden.', 5, 20, 290, 20)
GUISetState()
_IECreate('www.autoit.de')
Do
$sStatus = ControlGetText('Portal - AutoIt.de', '', '[CLASS:msctls_statusbar32; INSTANCE:1]')
If $sStatus <> $sCheck Then
$sCheck = $sStatus
ToolTip($sStatus, Default, Default, 'Statuszeile:', 1, 1)
EndIf
Until GUIGetMsg() = -3
Exit -
RegRead geht wohl davon aus, dass der Key vorhanden ist. Beim weglassen des Wertes wird dann nicht auf Vorhandensein des Keys geprüft.
[autoit]
Du kannst aber mit RegEnumVal testen ob es den Key gibt:
[/autoit]
Local $regvar = RegEnumVal('HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip', 1); - nur Beispiel Key
If $regvar = '' Then
MsgBox(4096, "Testbox", "Der Reg-Key ist nicht vorhanden !!!")
Else
MsgBox(4096, "Testbox", "Der Reg-Key: '" & $regvar & "' ist vorhanden")
EndIf -
Schön, aber dabei werden wir nicht mehr helfen. Das musst Du schon allein hinkriegen oder Dir ein anderes Ziel aussuchen.
[close] -
AutoRun haben doch die meisten ausgeschaltet (Virengefahr).
Ich würde das von Schnitzel verwenden, aber nicht in einer permanenten Schleife, sondern die Erkennung Windows überlassen und dann den Event registrieren:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Global Const $WM_DEVICECHANGE = 0x0219 ; Notifies an application of a change to the hardware configuration of a device or the computer.
[/autoit] [autoit][/autoit] [autoit]
Global Const $DBT_DEVICEARRIVAL = 0x8000 ; A device or piece of media has been inserted and is now available.
Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004 ; A device or piece of media has been removed.;~ ConsoleWrite(DriveGetSerial('G:') & @CR)
[/autoit] [autoit][/autoit] [autoit]
Global $iSerial = 692753667 ; <- Die vorher ermittelte Seriennummer des gesuchten Laufwerks
Global $sDriveLetter = ''$hGui = GUICreate('Automatische Laufwerkserkennung', 380, 200)
[/autoit] [autoit][/autoit] [autoit]
$idSerialDriveFound = GUICtrlCreateDummy()
$idSerialDriveLetter = GUICtrlCreateLabel('Laufwerksbuchstabe = "-"', 10, 10, 260, 20)
GUISetState()
GUIRegisterMsg($WM_DEVICECHANGE, 'MY_WM_DEVICECHANGE')While True
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $idSerialDriveFound
$sDriveLetter = _ReadDrives()
GUICtrlSetData($idSerialDriveLetter, 'Laufwerksbuchstabe = "' & $sDriveLetter & '"')
EndSwitch
WEndFunc MY_WM_DEVICECHANGE($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $hWnd, $Msg, $lParam
Switch $wParam
Case $DBT_DEVICEARRIVAL
ConsoleWrite('A device or piece of media has been inserted and is now available.' & @CR)
GUICtrlSendToDummy($idSerialDriveFound)
Case $DBT_DEVICEREMOVECOMPLETE
ConsoleWrite('A device or piece of media has been removed.' & @CR)
GUICtrlSendToDummy($idSerialDriveFound)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_DEVICECHANGEFunc _ReadDrives()
[/autoit]
Local $aDrives = DriveGetDrive('REMOVABLE')
If @error Then Return SetError(1, 0, '-')
For $i = 1 To $aDrives[0]
If DriveGetSerial($aDrives[$i]) = $iSerial Then Return SetError(0, 0, StringUpper($aDrives[$i]))
Next
Return SetError(2, 0, '-')
EndFunc ;==>_ReadDrives -
Habe Deinen Tip mal umgesetzt.
Fleißarbeit war das eigentlich nicht. Habe eine Seite aus dem Internet mit AutoIt ausgelesen, bearbeitet und das Array erzeugen lassen.
-
Hier mal eine kleine Funktion zum umwandeln der von HTML stammenden "named entities" oder "benannte Zeichen" in Unicode-Zeichen.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$sText = 'Käse Äpfel Öl Überfall Füße 450€'
$sText = _HTML_named_entities2Unicode($sText)
ConsoleWrite($sText & @CR)Func _HTML_named_entities2Unicode($sText)
[/autoit]
Local $aHTML_Entities[251][2] = [ _
["Acirc", 194],["acirc", 226],["acute", 180],["AElig", 198],["aelig", 230],["Agrave", 192],["agrave", 224],["alefsym", 8501], _
["Alpha", 913],["alpha", 945],["amp", 38],["and", 8743],["ang", 8736],["apos", 39],["Aring", 197],["aring", 229], _
["asymp", 8776],["Atilde", 195],["atilde", 227],["Auml", 196],["auml", 228],["bdquo", 8222],["Beta", 914],["beta", 946], _
["brvbar", 166],["bull", 8226],["cap", 8745],["Ccedil", 199],["ccedil", 231],["cedil", 184],["cent", 162],["Chi", 935], _
["chi", 967],["circ", 710],["clubs", 9827],["cong", 8773],["copy", 169],["crarr", 8629],["cup", 8746],["curren", 164], _
["Dagger", 8225],["dagger", 8224],["dArr", 8659],["darr", 8595],["deg", 176],["Delta", 916],["delta", 948],["diams", 9830], _
["divide", 247],["Eacute", 201],["eacute", 233],["Ecirc", 202],["ecirc", 234],["Egrave", 200],["egrave", 232],["empty", 8709], _
["emsp", 8195],["ensp", 8194],["Epsilon", 917],["epsilon", 949],["equiv", 8801],["Eta", 919],["eta", 951],["ETH", 208], _
["eth", 240],["Euml", 203],["euml", 235],["euro", 8364],["exist", 8707],["fnof", 402],["forall", 8704],["frac12", 189], _
["frac14", 188],["frac34", 190],["frasl", 8260],["Gamma", 915],["gamma", 947],["ge", 8805],["gt", 62],["hArr", 8660], _
["harr", 8596],["hearts", 9829],["hellip", 8230],["Iacute", 205],["iacute", 237],["Icirc", 206],["icirc", 238],["iexcl", 161], _
["Igrave", 204],["igrave", 236],["image", 8465],["infin", 8734],["int", 8747],["Iota", 921],["iota", 953],["iquest", 191], _
["isin", 8712],["Iuml", 207],["iuml", 239],["Kappa", 922],["kappa", 954],["Lambda", 923],["lambda", 955],["lang", 9001], _
["laquo", 171],["lArr", 8656],["larr", 8592],["lceil", 8968],["ldquo", 8220],["le", 8804],["lfloor", 8970],["lowast", 8727], _
["loz", 9674],["lrm", 8206],["lsaquo", 8249],["lsquo", 8216],["lt", 60],["macr", 175],["mdash", 8212],["micro", 181], _
["middot", 183],["minus", 8722],["Mu", 924],["mu", 956],["nabla", 8711],["nbsp", 160],["ndash", 8211],["ne", 8800], _
["ni", 8715],["not", 172],["notin", 8713],["nsub", 8836],["Ntilde", 209],["ntilde", 241],["Nu", 925],["nu", 957], _
["Oacute", 211],["oacute", 243],["Ocirc", 212],["ocirc", 244],["OElig", 338],["oelig", 339],["Ograve", 210],["ograve", 242], _
["oline", 8254],["Omega", 937],["omega", 969],["Omicron", 927],["omicron", 959],["oplus", 8853],["or", 8744],["ordf", 170], _
["ordm", 186],["Oslash", 216],["oslash", 248],["Otilde", 213],["otilde", 245],["otimes", 8855],["Ouml", 214],["ouml", 246], _
["para", 182],["part", 8706],["permil", 8240],["perp", 8869],["Phi", 934],["phi", 966],["Pi", 928],["pi", 960], _
["piv", 982],["plusmn", 177],["pound", 163],["Prime", 8243],["prime", 8242],["prod", 8719],["prop", 8733],["Psi", 936], _
["psi", 968],["quot", 34],["radic", 8730],["rang", 9002],["raquo", 187],["rArr", 8658],["rarr", 8594],["rceil", 8969], _
["rdquo", 8221],["real", 8476],["reg", 174],["rfloor", 8971],["Rho", 929],["rho", 961],["rlm", 8207],["rsaquo", 8250], _
["rsquo", 8217],["sbquo", 8218],["Scaron", 352],["scaron", 353],["sdot", 8901],["sect", 167],["shy", 173],["Sigma", 931], _
["sigma", 963],["sigmaf", 962],["sim", 8764],["spades", 9824],["sub", 8834],["sube", 8838],["sum", 8721],["sup", 8835], _
["sup1", 185],["sup2", 178],["sup3", 179],["supe", 8839],["szlig", 223],["Tau", 932],["tau", 964],["there4", 8756], _
["Theta", 920],["theta", 952],["thetasym", 977],["thinsp", 8201],["THORN", 222],["thorn", 254],["tilde", 732],["times", 215], _
["trade", 8482],["Uacute", 218],["uacute", 250],["uArr", 8657],["uarr", 8593],["Ucirc", 219],["ucirc", 251],["Ugrave", 217], _
["ugrave", 249],["uml", 168],["upsih", 978],["Upsilon", 933],["upsilon", 965],["Uuml", 220],["uuml", 252],["weierp", 8472], _
["Xi", 926],["xi", 958],["Yacute", 221],["yacute", 253],["yen", 165],["Yuml", 376],["yuml", 255],["Zeta", 918], _
["zeta", 950],["zwj", 8205],["zwnj", 8204]]
For $i = 0 To UBound($aHTML_Entities) - 1
$sText = StringReplace($sText, '&' & $aHTML_Entities[$i][0] & ';', ChrW($aHTML_Entities[$i][1]), 0, 1)
Next
Return $sText
EndFunc ;==>_HTML_named_entities2UnicodeEdit: Den Tip von AspirinJunkie umgesetzt. Danke!
-
Habe das Beispiel mal erweitert, um das besser testen zu können. Ich denke mal, Du meinst sowas:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Global $aCombo[4], $aInhalt[9] = ["Default", "Inhalt 1", "Inhalt 2", "Inhalt 3", "Inhalt 4", "Inhalt 5", "Inhalt 6", "Inhalt 7", "Inhalt 8"];hier folgen (in $aInhalt) weitere Inhalte
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("ComboBox-Problematik")
[/autoit] [autoit][/autoit] [autoit]
$aCombo[0] = GUICtrlCreateCombo("Box 1", 5, 10, 75, 25)
$aCombo[1] = GUICtrlCreateCombo("Box 2", 5, 40, 75, 25)
$aCombo[2] = GUICtrlCreateCombo("Box 2", 5, 70, 75, 25)
$aCombo[3] = GUICtrlCreateCombo("Box 2", 5, 100, 75, 25)
;hier folgen weitere ComboBox-Controls (daher im folgenden allgemeine Schreibweisen)
GUISetState(@SW_SHOW)Global $sComboDefault = ''
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aInhalt) - 1
$sComboDefault &= $aInhalt[$i] & '|'
Next
$sComboDefault = StringTrimRight($sComboDefault, 1)
_SetComboStart($sComboDefault, $aInhalt[0])While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $aCombo[0] To $aCombo[UBound($aCombo)-1];s. Kommentar oben
_ComboBoxUpdate($msg)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc _ComboBoxUpdate($msg);diese Funktion soll optimiert werden
[/autoit] [autoit][/autoit] [autoit]
Local $sValue, $sDefault, $sComboTmp
For $i = 0 To UBound($aCombo) - 1
$sComboTmp = $sComboDefault & '|'
For $j = 0 To UBound($aCombo) - 1
If $i <> $j Then
$sValue = GUICtrlRead($aCombo[$j])
If $sValue <> $aInhalt[0] Then $sComboTmp = StringReplace($sComboTmp, $sValue & '|', '', 1)
EndIf
Next
$sComboTmp = StringTrimRight($sComboTmp, 1)
$sDefault = GUICtrlRead($aCombo[$i])
GUICtrlSetData($aCombo[$i], '')
GUICtrlSetData($aCombo[$i], $sComboTmp, $sDefault)
Next
EndFunc ;==>_ComboBoxUpdateFunc _SetComboStart($sText, $sDefault)
[/autoit]
For $i = 0 To UBound($aCombo) - 1
GUICtrlSetData($aCombo[$i], '')
GUICtrlSetData($aCombo[$i], $sText, $sDefault)
Next
EndFunc ;==>_SetComboStart -
Allein der Child-Parameter führt nicht automatisch zur Sperrung des Parent-Fensters. Das wäre ja auch nicht gut, weil man gerade das oft nicht haben will.
Ich denke, Du (reeky) wirst um die Benutzung der zwei Befehle nicht herumkommen. -
-
Hier mal eine Möglichkeit:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
$sLogfile = @ScriptDir & '\logfile.txt'
$sDelDate = '20131004' ; <- Datum im Format: YYYYMMDD, alle Einträge vor diesem Datum werden gelöscht
$aLogData = _DeleteByDate($sLogfile, $sDelDate)
_ArrayDisplay($aLogData)Func _DeleteByDate($sLogfile, $sDelDate)
[/autoit] [autoit][/autoit] [autoit]
Local $sData = FileRead($sLogfile)
If @error Then Return SetError(1, 0, '')
Local $aLines = StringRegExp($sData, '\[\d{2}\.\d{2}\.\d{4}/\d{2}\:\d{2}\:\d{2}\].+', 3)
If Not IsArray($aLines) Then Return SetError(2, 0, '')
For $i = UBound($aLines) - 1 To 0 Step -1
If _GetDate($aLines[$i]) < $sDelDate Then _ArrayDelete($aLines, $i)
Next
Return $aLines
EndFunc ;==>_DeleteByDateFunc _GetDate($sLine)
[/autoit]
Return StringRegExpReplace($sLine, '\[(\d{2})\.(\d{2})\.(\d{4})/\d{2}\:\d{2}\:\d{2}\].+', '$3$2$1') ; <- umwandeln nach YYYYMMDD
EndFunc ;==>_GetDate