1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Jescho

Beiträge von Jescho

  • Excel 2010 Embedded mit Macro

    • Jescho
    • 28. Oktober 2013 um 14:50

    Danke, Fehler gefunden. Hatte das Macro unter Diese Arbeitsmappe und nicht unter Module gespeichert, nice.

    @rynow, dass werde ich mir mal ansehen, danke

    water, 32 bit

  • Excel 2010 Embedded mit Macro

    • Jescho
    • 28. Oktober 2013 um 13:33

    Hallo zusammen,

    ich möchte eine Excel 2010 Datei mit Macros Embedded starten. Im Forum bin ich natürlich auch fündig geworden. Leider beendet sich bei mir das Script mit folgendem Fehler in der Ausgabe:

    D:\Test\test.au3 (45) : ==> The requested action with this object has failed.:
    $Obj1.Application.Run("Align_Z")
    $Obj1.Application.Run("Align_Z")^ ERROR

    leider kenne ich mich mit der Object gesteuerten Programmierung nicht so gut aus. Meine erste Vermutung war, das es mit Excel 2010 zusammenhängt. Daher habe ich es mit einer im alten 2003-Format gespeicherten ExcelDatei versucht - das gleiche Ergebnis.

    Das Excel-Macro in einem normal gestarteten Excel-Fenster macht was es soll.

    Ich bin mit meinem Latein am Ende, weiß jemand woran es liegt und wie man es beheben kann?

    Vielen Dank

  • PhotoViewer

    • Jescho
    • 22. September 2013 um 18:41

    Hallo RR04,

    ich möchte mal ein kleines Statement abgeben. Meine Kritikpunkte:

    - Ich würde es gut finden, wenn die Programmoberfläche skalierbar wäre und die Diashow auch Bildschirmfüllend gestartet werden könnte.

    - die Auflösung der Bilder reicht mir nicht. Die Kanten sind ziemlich pixellig.

    Als sich die Updatemeldung öffnete wurde mein Interesse geweckt. Als ich dann aber im Code nur ein Aufruf der Homepage fand, war ich doch etwas enttäuscht. Ich dachte schon, ich kann etwas abschauen.

    Sonst aber ein nettes Programm

    VG Jescho

  • Autoit SysInfo Clock v0.9.9.7 build 2014-08-28 beta

    • Jescho
    • 15. Juni 2013 um 13:56

    Hallo, das ist ja ein nettes Tool :rock: .

    Funktioniert super bei mir. Die Werte passen soweit.

    Meine Frage: Wofür stehen diese Lampen MAIL und EIN (ich denke mal das es welche sein sollen)?

    Könnte es sein - für Maileingang/neue Mail oder? Wenn ja wie kann man es den koppeln? Und die Anzeige über dem Halbkreis erschließt sich auch noch nicht.

    VG Jescho

  • Ausgabe-Monitor wechseln

    • Jescho
    • 28. Januar 2013 um 20:52

    Du sagtest es handelt sich um einen Laptop, die haben doch für diese Prozedur Sondertasten. Bei mir ist das die Tastenkombination: Fn+F10.

    Manchmal kann man ja schon fertige Lösungen nutzen.

  • Happy Birthday Oscar

    • Jescho
    • 18. Januar 2013 um 20:15

    Na da schließe ich mich doch gern an.

    >>Herzlichen Glückwunsch auch von mir<<

  • Dezimaldatum von Excel umwandeln

    • Jescho
    • 24. Januar 2012 um 17:11

    Hallo TheLuBu,

    nicht schlecht - aber zwei kleine Kritikpunkte habe ich:

    ein Tipp auf die nötigen Includes (#Include<Date.au3>) wäre super gewesen, ersparrt die Fehlersuche. Weiterhin ist mir ein Tippfehler aufgefallen. Du hast in Zeile 24 und 26 auf einmal ein Variable $iDate verwendet, sie müßte aber $i_Date heißen.

    MfG Jescho

  • .Ini vollständig in ein Array lesen

    • Jescho
    • 24. Januar 2012 um 09:43

    Sieh dir mal dieses Bsp. von Oskar an.

    Grüße

  • Probeleme beim Netzwerkzugriff auf DB

    • Jescho
    • 17. Januar 2012 um 20:33

    Danke, das werde ich mal einbauen.

  • Probeleme beim Netzwerkzugriff auf DB

    • Jescho
    • 17. Januar 2012 um 16:34

    Hallo Helferleins,

    ich habe mal wieder ein Progblem. Ich habe aus dem wunderbaren Bsp. von Oskar eine Datenbank erstellt. Die ersten Tests liefen auch wunderbar. Als von mehreren Benutzern ein Datensatz zur gleichen Zeit eingegeben wurde, stellte ich aber fest, das nur ein Datensatz gespeichert wurde. Mache ich einen Denkfehler oder möchte ich da etwas was nur richtige Datenbanken haben? Hier mein bisheriges Werk:

    Spoiler anzeigen
    [autoit]

    #include<WindowsConstants.au3>
    #include<ListViewConstants.au3>
    #include<ButtonConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<Guilistview.au3>
    #include<String.au3>
    #Include<Date.au3>

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

    Global $ver = 'Ver. 0.2' ; Versionsnummer auf Label

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

    Global $sHeader = "Tfz|Lz-Nummer|von|nach|Zeit|Datum" ; Die Überschriften für das Listview und für das "Neuer Eintrag"-Fenster
    Global $sDBFile = @ScriptDir & "\datenbank.txt" ; Pfad und Name der Datenbank-Datei
    Global $iEdit = -1 ; Wert auf -1 setzen, weil _GUICtrlListView_GetSelectionMark() einen Nullbasierten Wert liefert

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

    #Region Hauptfenster
    Global $hGui = GUICreate("Ausfall Lz-Nummern", 560, 500) ; Hauptfenster erstellen
    Global $hListView = GUICtrlCreateListView($sHeader, 2, 3, 420, 470, $LVS_SHOWSELALWAYS) ; Listview erstellen

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

    Global $hLVHandle = GUICtrlGetHandle($hListView) ; das Handle vom Listview wird für die UDF-Listview-Funktionen benötigt
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Tfz" , 60, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 1, "Lz-Nummer" , 80, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 2, "von" , 60, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 3, "nach" , 60, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 4, "Zeit" , 60, 0)
    _GUICtrlListView_SetColumn($hLVHandle, 5, "Datum" ,100, 0)

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

    Global $hNew = GUICtrlCreateButton("Neuer Eintrag" , 435, 10, 115, 30, $BS_DEFPUSHBUTTON) ; ist Default-Push-Button (User = [Enter])
    Global $hEdit = GUICtrlCreateButton("Eintrag bearbeiten" , 435, 50, 115, 30)
    Global $hDel = GUICtrlCreateButton("Eintrag löschen" , 435, 90, 115, 30)
    Global $hSave = GUICtrlCreateButton("Speichern" , 435, 130, 115, 30)
    Global $hLoad = GUICtrlCreateButton("Neu laden" , 435, 170, 115, 30)
    Global $hClose = GUICtrlCreateButton("Programm Schließen" , 457, 250, 70, 40, $BS_MULTILINE) ; Zeilenumbruch
    Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 435, 444, 115, 30)

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

    Global $hCM = GUICtrlCreateContextMenu($hListView) ; ein Kontextmenü für das Listview erstellen
    Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM) ; der 1. Kontextmenüeintrag
    Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM) ; der 2. Kontextmenüeintrag
    Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM) ; der 3. Kontextmenüeintrag
    #EndRegion Hauptfenster

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

    #Region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neue Lz-Nummer", 636, 140, -1, -1, $WS_SYSMENU) ; das Fenster "Neuer Eintrag" erstellen (größer)
    Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
    Global $aNew[$aHeader[0]] ; Array für die Input-IDs
    For $i = 1 To $aHeader[0]
    GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 105, 15, 90, 20); Überschriften-Label erstellen
    GUICtrlSetFont(-1, 9, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
    $aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 105, 30, 100, 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
    Next
    Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 140, 65, 150, 35) ; Button zum speichern
    Global $hCreateSave = GUICtrlCreateButton("Speichern und schließen", 310, 65, 150, 35, $BS_DEFPUSHBUTTON) ; Button zum speichern und schließen
    #EndRegion Fenster für neuen Eintrag

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

    _GUICtrlListView_RegisterSortCallBack($hLVHandle) ; damit man das Listview (mit Klick auf die Spaltenüberschrift) sortieren kann

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

    GUISetState(@SW_SHOW, $hGui) ; Hauptfenster sichtbar machen

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

    If FileExists($sDBFile) Then Load() ; wenn Datenbank-Datei existiert, dann Datenbank laden

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

    AdlibRegister('Load', 60000) ; zum automatischen Aktualisieren 60000 ms = 1 min

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

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
    Case $hListView ; User hat auf eine Spaltenüberschrift geklickt
    _GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView)) ; Einträge entsprechend sortieren
    Case $hNew, $hCMNew ; User hat auf "Neuer Eintrag" geklickt
    WinSetTitle($hGuiNew, "", "Neuer Eintrag") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    Case $hEdit, $hCMEdit ; User hat auf "Eintrag bearbeiten" geklickt
    WinSetTitle($hGuiNew, "", "Eintrag bearbeiten") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    Edit() ; Daten aus dem Listview ins Formular einlesen
    Load() ; aktuelle Daten aus DB laden
    Case $hLoad ; User hat auf "Aktualisieren" geklickt
    Load() ; aktuelle Daten aus DB laden
    Case $hSave ; User hat auf "Speichern" geklickt
    Save() ; geänderte Daten in DB speichern
    Load() ; aktuelle Daten aus DB laden
    Case $hDel, $hCMDel ; User hat auf "Markierte Einträge löschen" geklickt
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then
    _GUICtrlListView_DeleteItemsSelected($hLVHandle)
    Save() ; geänderte Daten in DB speichern
    Load() ; aktuelle Daten aus DB laden
    EndIf
    Case $hDelAll ; User hat auf "Alle Einträge löschen" geklickt
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then
    _GUICtrlListView_DeleteAllItems($hLVHandle)
    Save() ; geänderte Daten in DB speichern
    Load() ; aktuelle Daten aus DB laden
    EndIf
    Case $hCreate ; User hat auf "Eintrag speichern" im Fenster "Neuer Eintrag" geklickt
    Load() ; Daten aktualiesierern
    NewItem() ; Daten bearbeiten
    Save() ; Daten prüfen und speichern
    Load() ; Daten neu einlesen
    Case $hCreateSave ; User hat auf "Speichern und schließen" im Fenster "Neuer Eintrag" geklickt
    Load() ; Daten aktualiesierern
    NewItem() ; Daten bearbeiten
    Save() ; Daten prüfen und speichern
    GUISetState(@SW_HIDE, $hGuiNew)
    GUISetState(@SW_ENABLE, $hGui)
    WinActivate($hGui)
    Load() ; Daten neu einlesen
    Case $hClose ; User hat auf "Programm schließen" geklickt
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End() ; wenn ja, dann End-Funktion aufrufen
    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End() ; wenn ja, dann End-Funktion aufrufen
    Case $hGuiNew ; User will das "Neuer Eintrag"-Fenster schließen
    $iEdit = -1
    For $i = 0 To UBound($aNew) - 1
    GUICtrlSetData($aNew[$i], "") ; Alle Eingabefelder leeren
    Next
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui) ; und in den Vordergrund holen
    EndSwitch
    EndSwitch
    WEnd

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

    Func NewItem() ; Funktion zum auslesen der Eingabefelder (Neuer Eintrag bzw. Eintrag bearbeiten)
    ConsoleWrite('NewItem() aufgerufen' & @LF)
    Dim $sTime, $sDate
    Local $sItem = ""
    For $i = 0 To UBound($aNew) - 1 ; Schleife, um alle Eingabefelder durchzugehen
    If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
    Switch $i
    Case 0 ; Tfz
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Case 1 ; Lz-Nummer
    If StringLen(GUICtrlRead($aNew[$i])) < 6 Then
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Else
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, StringLeft(GUICtrlRead($aNew[$i]), 5), $i) ; nur die ersten 5 Zeichen nehmen
    EndIf
    Case 2 ; von Bst
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, StringUpper(GUICtrlRead($aNew[$i])), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Case 3 ; nach Bst
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, StringUpper(GUICtrlRead($aNew[$i])), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Case 4 ; Zeit
    If StringInStr(GUICtrlRead($aNew[$i]), ':') = 0 Then ; Doppelpunkt ist noch nicht vorhanden
    $sTime = '0' & _StringInsert(GUICtrlRead($aNew[$i]), ':' , -2) ; einfügen des Doppelpunktes
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, $sTime, $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Else ; Doppelpunkt bereits vorhanden
    If StringLen(GUICtrlRead($aNew[$i])) = 4 Then
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, '0'&GUICtrlRead($aNew[$i]), $i) ; Uhrzeitformat vervollständigen
    Else
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    EndIf
    EndIf
    Case 5 ; Datum
    $sDate = GUICtrlRead($aNew[$i])
    If StringLen($sDate) < 2 Then
    $sDate = '0'&$sDate ; auffüllen des Datums
    Else
    $sDate = StringLeft($sDate, 2) ; nur den Tag extrahieren
    EndIf
    If StringRight(_NowCalcDate(), 2) = $sDate Then ; passt die eingabe zu heute?
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, _NowCalcDate(), $i)
    ElseIf StringRight(_DateAdd('d', 1, _NowCalcDate()), 2) = $sDate Then ; passt die eingabe zu morgen
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, _DateAdd('d', 1, _NowCalcDate()), $i)
    ElseIf StringRight(_DateAdd('d', -1, _NowCalcDate()), 2) = $sDate Then ; passt die eingabe zu gestern
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, _DateAdd('d', -1, _NowCalcDate()), $i)
    Else
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; leeren Eintrag ins Listview schreiben
    EndIf
    EndSwitch
    Else ; sonst $iEdit = -1 (neuer Eintrag)
    ConsoleWrite('$i= '&$i&' >> $sItem= ' & $sItem & @LF)
    Switch $i
    Case 0 ; Tfz
    $sItem &= GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Case 1 ; Lz-Nummer
    If StringLen(GUICtrlRead($aNew[$i])) < 6 Then
    $sItem &= GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Else
    $sItem &= StringLeft(GUICtrlRead($aNew[$i]), 5) & "|" ; nur die ersten 5 Zeichen nehmen
    EndIf
    Case 2 ; von Bst
    $sItem &= StringUpper(GUICtrlRead($aNew[$i])) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Case 3 ; nach Bst
    $sItem &= StringUpper(GUICtrlRead($aNew[$i])) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Case 4 ; Zeit
    If StringInStr(GUICtrlRead($aNew[$i]), ':') = 0 Then ; Doppelpunkt ist noch nicht vorhanden
    If StringLen(GUICtrlRead($aNew[$i])) = 3 Then
    $sTime = '0' & _StringInsert(GUICtrlRead($aNew[$i]), ':' , -2)
    $sItem &= $sTime & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Else
    $sTime = _StringInsert(GUICtrlRead($aNew[$i]), ':' , -2)
    $sItem &= $sTime & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    EndIf
    ElseIf StringLen(GUICtrlRead($aNew[$i])) = 4 Then
    $sItem &= '0' & GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    Else
    $sItem &= GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    EndIf
    Case 5 ; Datum
    $sDate = GUICtrlRead($aNew[$i])
    If StringLen($sDate) < 2 Then
    $sDate = '0'&$sDate ; auffüllen des Datums
    Else
    $sDate = StringLeft($sDate, 2) ; nur den Tag extrahieren
    EndIf

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

    If StringRight(_NowCalcDate(), 2) = $sDate Then ; passt die eingabe zu heute?
    $sItem &= _NowCalcDate() & '|'
    ElseIf StringRight(_DateAdd('d', 1, _NowCalcDate()), 2) = $sDate Then ; passt die eingabe zu morgen
    $sItem &= _DateAdd('d', 1, _NowCalcDate()) & '|'
    ElseIf StringRight(_DateAdd('d', -1, _NowCalcDate()), 2) = $sDate Then ; passt die eingabe zu morgen
    $sItem &= _DateAdd('d', -1, _NowCalcDate()) & '|'
    Else
    $sItem &= '' & '|' ;
    EndIf
    EndSwitch
    EndIf
    GUICtrlSetData($aNew[$i], "") ; das entsprechende Eingabefeld leeren
    Next

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

    If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
    $iEdit = -1
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    Sleep(300)
    WinActivate($hGui) ; und in den Vordergrund holen
    Else ; sonst $iEdit = -1 (neuer Eintrag)
    If $sItem<>"||||||" Then ; bei Leeres Eingabfenster nichts
    GUICtrlSetState($aNew[0], $GUI_FOCUS) ; den Focus wieder auf das erste Eingabefeld setzen, für weitere Eingaben
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView) ; mit den Werten aus $sItem einen neuen Listview-Eintrag hinzufügen
    EndIf
    EndIf
    EndFunc ;==>NewItem

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

    Func Edit() ; Funktion zum bearbeiten eines Listview-Eintrags im "Eintrag bearbeiten"-Fenster
    ConsoleWrite('Edit() aufgerufen' & @LF)
    $iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle) ; auslesen, welcher Listview-Eintrag markiert (bei mehreren, den obersten) ist
    If $iEdit > -1 Then
    Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit) ; die Einträge aus dem Listview in ein Array holen
    For $i = 1 To $aItem[0]
    GUICtrlSetData($aNew[$i - 1], $aItem[$i]) ; und in die entsprechenden Eingabefelder schreiben
    Next
    EndIf
    EndFunc ;==>Edit

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

    Func Load() ; Datenbank-Datei laden
    ConsoleWrite('Load() aufgerufen' & @LF)
    _GUICtrlListView_DeleteAllItems($hLVHandle) ; löscht alle Items des ListViews
    Local $sItem
    Local $hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>Load

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

    Func Save() ; Datenbank-Datei speichern
    ConsoleWrite('Save() aufgerufen' & @LF)
    Local $sItem, $sSplit, $vTrain, $Msg
    Local $iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1 ; Anzahl der Listview-Einträge holen
    Local $hFile = FileOpen($sDBFile, 2) ; Datei zum speichern (überschreiben) öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i) ; die Werte aus dem Listview-Eintrag holen
    $sSplit = StringSplit($sItem, '|') ; aufsplitten der Eintrags
    $vTrain = _getValidTrain($sSplit[6], $sSplit[5]) ; überprüfen ob noch nicht abgelaufen
    If $vTrain = 1 Then
    FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
    Else
    $Msg = MsgBox(4,'','Der Eintrag ' & $sSplit[2] & ' ist abgelaufen oder falsch und wird gelöscht.')
    If $Msg = 7 Then FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
    EndIf
    Next
    FileClose($hFile) ; Datei schließen
    ElseIf $hFile = -1 Then ; wenn das öffnen nicht erfolgreich war, dann...
    MsgBox(16,'Fehler', 'Leider konnte die Datenbank nicht zum schreiben geöffnet werden.')
    EndIf
    EndFunc ;==>Save

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

    Func End() ; Funktion zum Speicher und Beenden der Datenbank
    ConsoleWrite('End() aufgerufen' & @LF)
    _GUICtrlListView_UnRegisterSortCallBack($hLVHandle) ; Sortierroutine wieder de-registrieren
    Exit
    EndFunc ;==>End

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

    Func _getValidTrain($sDate, $sTime) ; prüft die Gültigkeit des Eintrages
    ;ReturnWert 0 = Zug zu alt
    ;ReturnWert 1 = Zug noch gültig
    ;Returnwert 2 = Falsches Datumsformat
    Dim $svalidityTime = '1200' ; angabe in Min
    $sDatetime = $sDate & ' ' & $sTime ; zusammenfassen der Var
    If _DateIsValid($sDatetime) Then ; prüft auf Gültigkeit
    Dim $iDateCalc = _DateDiff('n', $sDatetime, _NowCalc())
    ;~ ConsoleWrite('$iDateCalc= ' & $iDateCalc & @LF) ; mur zu testzwecken
    If $iDateCalc > $svalidityTime Then ; Abfrage
    Return 0
    Else
    Return 1
    EndIf
    Else
    Return 2
    EndIf
    EndFunc ; ==>_getValidTrain

    [/autoit]

    VG Jescho

  • If/Else ok Switch/Case Bug ???

    • Jescho
    • 5. Januar 2012 um 15:21

    Danke Fehler sind da um gemacht zu werden :rock:

  • If/Else ok Switch/Case Bug ???

    • Jescho
    • 5. Januar 2012 um 15:09

    Hallo miteinander, woher kommt der Unterschied??? Bei der zweiten Variante wird für die aktuelle Kalenderwoche ein falscher Wert zurückgegeben.

    So ist es richtig:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    ConsoleWrite('kw ' & _WeekNumberISO() & @LF)

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

    ConsoleWrite('kw für letzte Woche ist: ' & _KW_IF(2)&@LF)
    ConsoleWrite('kw für diese Woche ist: ' & _KW_IF(0)&@LF)
    ConsoleWrite('kw für nächste Woche ist: ' & _KW_IF(1)&@LF)
    ConsoleWrite('Fehler: ' &@error&@LF)

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

    Func _KW_IF($kw)
    ;~ ConsoleWrite('Wert $kw= ' & $kw & @LF)
    If $kw = 0 Then ;aktuelle Woche
    $ret = _WeekNumberISO()
    ElseIf $kw = 1 Then ;nächste Woche
    $s_string =StringSplit(_DateAdd('d', 7, _NowCalcDate()), '/')
    $ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
    ElseIf $kw = 2 Then ;letzte Woche
    $s_string =StringSplit(_DateAdd('d', - 7, _NowCalcDate()), '/')
    $ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
    Else
    MsgBox(16,'','Es wurde kein gültiger Parameter übergeben.')
    EndIf
    Return $ret
    EndFunc

    [/autoit]

    So ist es falsch - warum:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    ConsoleWrite('kw ' & _WeekNumberISO() & @LF)

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

    ConsoleWrite('kw für letzte Woche ist: ' & _KW_SWITCH(2)&@LF)
    ConsoleWrite('kw für diese Woche ist: ' & _KW_SWITCH(0)&@LF)
    ConsoleWrite('kw für nächste Woche ist: ' & _KW_SWITCH(1)&@LF)
    ConsoleWrite('Fehler: ' &@error&@LF)

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

    Func _KW_SWITCH($kw)
    ;~ ConsoleWrite('Wert $kw= ' & $kw & @LF)
    Switch $kw
    Case $kw = 0 ;aktuelle Woche
    $ret = _WeekNumberISO()
    Case $kw = 1 ;nächste Woche
    $s_string =StringSplit(_DateAdd('d', 7, _NowCalcDate()), '/')
    $ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
    Case $kw = 2 ;letzte Woche
    $s_string =StringSplit(_DateAdd('d', - 7, _NowCalcDate()), '/')
    $ret = _WeekNumberISO($s_string[1], $s_string[2], $s_string[3])
    Case Else
    MsgBox(16,'','Es wurde kein gültiger Parameter übergeben.')
    EndSwitch
    Return $ret
    EndFunc

    [/autoit]
  • Start des Internet Explorers im Privaten Modus

    • Jescho
    • 22. August 2011 um 23:36

    @sillyboy:
    die Anfrage war auf die Funktion _IECreate ausgerichtet. Die Info mit dem ständigen Aktivieren hatte ich auch schon gegoogelt.
    aber trotzdem danke - so ein Login-script ist immer gut (ich versuche mich gerade mal wieder in die IE-Func einzulesen)

    misterspeed:
    der Tip mit dem englischen Forum war gut - das werde ich mir mal genauer ansehen, Danke

  • Start des Internet Explorers im Privaten Modus

    • Jescho
    • 22. August 2011 um 01:17

    Hallo Leute,

    kann man mit _IECreate den IE auch im Privaten Modus Starten? Also ich habe nichts gefunden.

    Meine Versuche:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    $Link = 'https://service.gmx.net/de/cgi/g.fcgi/organizer/login'
    ;~ ;InPrivate geht
    Run('"C:\Program Files (x86)\Internet Explorer\iexplore.exe" -private ' & $Link)
    ;InPrivate geht nicht
    $oIE = _IECreate ($Link)

    [/autoit]
  • Registry-Funktionen

    • Jescho
    • 20. Juli 2011 um 12:40

    Dietmar

    sorry, das Post war zu kurz. "geht leider nicht." bezog sich auf: Der Registrierung-Editor ist gesperrt. Aktueller Stand:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <Constants.au3>
    #Include <String.au3>
    Local $RegPath1 = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common\Smart Tag"
    Local $save_file = 'D:\Sicherung\Test.dat'
    _EnumRegKey($RegPath1, 0, $save_file)

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

    ;========================================================================================
    ; Function Name: _EnumRegKey($HKEY, $prm, [$file])
    ; Description: Ermittelt alle Namen, Typen und Werte in einem gegebenen Schlüssel
    ; Parameter(s): $HKEY der Registryschlüssel
    ; Parameter(s): 0 = Ausgabe auf Console
    ; 1 = Ausgabe in Datei
    ; nur bei 1 path der Sicherungsdatei
    ; Return Value(s): Ausgabe auf Console
    ; Ausgabe in Sicherungsdatei
    ; Author(s): JeScho ([email='jescho@autoit.de'][/email])
    ; Großvater (Unterst. im Forum)
    ;========================================================================================
    Func _EnumRegKey($RegPath, $prm ,$file)
    ;prm Gültigkeit prüfen
    If $prm = 0 Then
    ElseIf $prm = 1 And $file <> '' Then
    ConsoleWrite('richtige Prm,' & @LF)
    Else
    ConsoleWrite('Falscher Prm,' & @LF)
    Exit
    EndIf
    $aReg = _EnumRegVal($RegPath)
    If $prm = 0 Then ConsoleWrite(@LF)
    If $prm = 0 Then ConsoleWrite('[' & $RegPath & ']' & @LF)
    For $i = 1 To UBound($aReg) -1
    ;~ If $prm = 0 Then ConsoleWrite('"' & $aReg[$i][0] & '"=' & $aReg[$i][1] & $aReg[$i][2] & @LF)
    If $prm = 0 Then ConsoleWrite('"' & $aReg[$i][0] & '"=' & $aReg[$i][1] &':' & $aReg[$i][2] & @LF)
    Next
    $REK = RegEnumKey($RegPath,1)
    If $REK <> '' Then
    For $i = 1 To 100
    $REK = RegEnumKey($RegPath,$i)
    If @error Then ExitLoop
    _EnumRegKey($RegPath & '\' & $REK, 0, $save_file);recursiver Aufruf
    Next
    EndIf
    EndFunc ;==> _EnumRekKey
    Func _EnumRegVal($RegPath)
    ;~ Local $RegTypes[8] = ["REG_NONE", '', "REG_EXPAND_SZ", "hex:", "dword:", '', '', "REG_MULTI_SZ"]
    Local $RegTypes[8] = ['REG_NONE', 'REG_SZ', 'REG_EXPAND_SZ', 'REG_BINARY', 'REG_DWORD', '', '', 'REG_MULTI_SZ']
    Local $RegValue = ""
    Local $Instance = 1
    Local $aResult[256][3] = [[0, 0, 0]]
    Local $Reg = ""
    Local $Ext = ""
    While True
    $RegValue = RegEnumVal($RegPath, $Instance)
    If @error Then ExitLoop
    $Reg = RegRead($RegPath, $RegValue)
    If @error Then ExitLoop
    $Ext = @extended
    If $Ext = $REG_BINARY Then $Reg = StringToBinary(BinaryToString($Reg))
    $aResult[0][0] = $Instance
    $aResult[$Instance][0] = $RegValue
    $aResult[$Instance][1] = $RegTypes[$Ext]
    $aResult[$Instance][2] = $Reg
    $Instance += 1
    WEnd
    ReDim $aResult[$Instance][3]
    Return $aResult
    EndFunc

    [/autoit]

    Die Ausgabe auf die Console passt schon. Jetzt soll aber die Ausgabe in eine Datei gehen, und dann nach dem Userlogin synchronisiert werden.

    Du sagst mit einer Schleife ist es zu langsam - für Verbesserungen bin ich immer offen.

    Gruß Jescho

  • Registry-Funktionen

    • Jescho
    • 20. Juli 2011 um 10:19

    Dietmar

    geht leider nicht ;(

  • Registry-Funktionen

    • Jescho
    • 19. Juli 2011 um 16:40

    Moin,

    auch wenn sich das System Registry sich mir noch nicht ganz erschlossen hat so ist doch etwas Licht ins Dunkle gelangt. Ich habe den Code auch schon erweitert, so dass er mir den kompletten Zweig ausliest. Vielen Dank erstmal. Was mich noch interressiert, ich möchte gerne einen kompletten Reg-Zweig als Datei sichern und auf anderen Rechnern wiederherstellen. Muss ich dabei beim auslesen/speichern/wiederherstellen etwas besonderes beachten?

  • Registry-Funktionen

    • Jescho
    • 17. Juli 2011 um 16:15

    :rock: Danke.

    Jedoch bleibt noch die Frage mit den hexadezimalen Wert. Warum wird im Export vom Regitrierungs-Editors überhaupt der hexadetimale Wert gespeichert? ?(

  • Registry-Funktionen

    • Jescho
    • 17. Juli 2011 um 04:52

    Hallo Leute,

    was mache ich falsch? Wenn ich die Funktion "_GetRegValues($HKEY)" von BugFix "Registry-Funktionen per Objekt " nutze erhalte ich bei den meisten Einträgen keinen Wert. Hier der zusammengestrickter Code:

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    Local $regpath = 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common\Smart Tag'
    ;~ Local $regpath = 'HKEY_CURRENT_USER\Software\AutoIt v3\Au3Info'

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

    ; Versuch 1
    Local $ar = _GetRegValues($regpath) ; Ermittelt alle Namen, Typen und Werte in einem gegebenen Schlüssel
    If IsArray($ar) Then
    _ArrayDisplay($ar, 'Values von ' & $regpath)
    Else
    MsgBox(0, '', 'Fehler')
    EndIf
    ; bringt fast keine Werte unter Col2
    ; --> was mache ich falsch?

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

    ; Versuch 2
    $REV = RegEnumVal($regpath, 1)
    $RR = RegRead($regpath, $REV)
    If @error Then
    ConsoleWrite('Fehler: ' & @error & @LF)
    Else
    ConsoleWrite($REV & ':' & $RR & @LF)
    EndIf
    ; bringt nur den dezimalen Wert
    ; --> wie erhalte ich den hexadezimalen Wert?
    ; --> aus der Hilfe werde ich in diesem Fall nicht schlau

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

    ; Versuch 3
    $REV = RegEnumVal($regpath, 1)
    $RRB = _RegReadBinary($regpath, $REV)

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

    If @error Then
    ConsoleWrite('Fehler: ' & @error & @LF)
    Else
    ConsoleWrite($REV & ':' & $RRB & @LF)
    EndIf
    ; den Wert kann ich garnicht deuten
    ; --> auch hier möchte ich den hexadezimalen Wert wie ihn der Regiestrierungs-Editor ausgibt

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

    ;========================================================================================
    ; Function Name: _GetRegSubKeys($HKEY)
    ; Description: Ermittelt die Unterschlüssel für den übergebenen Schlüssel
    ; Parameter(s): $HKEY der Registryschlüssel
    ; Return Value(s): Erfolg Array mit den Unterschlüsseln
    ; Fehler Leerstring (keine Unterschlüssel vorhanden oder Schlüssel existiert nicht)
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;========================================================================================
    Func _GetRegSubKeys($HKEY)
    If StringInStr($HKEY, '\') Then
    If StringRight($HKEY, 1) = '\' Then
    $HKEY = StringTrimRight($HKEY, 1)
    Local $strKeyPath = ''
    Else
    Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
    $HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
    EndIf
    Else
    Local $strKeyPath = ''
    EndIf
    Select
    Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
    $HKEY = 0x80000002
    Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
    $HKEY = 0x80000003
    Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
    $HKEY = 0x80000001
    Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
    $HKEY = 0x80000000
    Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
    $HKEY = 0x80000005
    EndSelect
    Local $arrSubKeys = '', $subkey
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    $oReg.EnumKey ($HKEY, $strKeyPath, $arrSubKeys)
    Return $arrSubKeys
    EndFunc ;==>_GetRegSubKeys

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

    ;========================================================================================
    ; Function Name: _GetRegRights($HKEY)
    ; Description: Ermittelt die Rechte des Abfragenden für den übergebenen Schlüssel
    ; Parameter(s): $HKEY der zu prüfende Registryschlüssel
    ; Return Value(s): String mit Auflistung der Rechte:
    ; Q Key Query Value
    ; S Key Set Value
    ; C Key Create Sub Key
    ; D Delete
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;========================================================================================
    Func _GetRegRights($HKEY)
    Local $bHasAccessRight, $sRights = ''
    If StringInStr($HKEY, '\') Then
    If StringRight($HKEY, 1) = '\' Then
    $HKEY = StringTrimRight($HKEY, 1)
    Local $strKeyPath = ''
    Else
    Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
    $HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
    EndIf
    Else
    Local $strKeyPath = ''
    EndIf
    Select
    Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
    $HKEY = 0x80000002
    Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
    $HKEY = 0x80000003
    Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
    $HKEY = 0x80000001
    Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
    $HKEY = 0x80000000
    Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
    $HKEY = 0x80000005
    EndSelect
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    $oReg.CheckAccess($HKEY, $strKeyPath, 0x0001, $bHasAccessRight)
    If $bHasAccessRight = True Then $sRights &= 'Q'
    $oReg.CheckAccess($HKEY, $strKeyPath, 0x0002, $bHasAccessRight)
    If $bHasAccessRight = True Then $sRights &= 'S'
    $oReg.CheckAccess($HKEY, $strKeyPath, 0x0004, $bHasAccessRight)
    If $bHasAccessRight = True Then $sRights &= 'C'
    $oReg.CheckAccess($HKEY, $strKeyPath, 0x00010000, $bHasAccessRight)
    If $bHasAccessRight = True Then $sRights &= 'D'
    Return $sRights
    EndFunc ;==>_GetRegRights

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

    ;========================================================================================
    ; Function Name: _GetRegValues($HKEY)
    ; Description: Ermittelt alle Namen, Typen und Werte in einem gegebenen Schlüssel
    ; Parameter(s): $HKEY der Registryschlüssel
    ; Return Value(s): Erfolg Array[i][0] = Name
    ; Array[i][1] = Typ
    ; Array[i][2] = Wert
    ; Fehler Leerstring (Schlüssel existiert nicht oder ist ohne Einträge)
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;========================================================================================
    Func _GetRegValues($HKEY)
    Local $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
    If StringInStr($HKEY, '\') Then
    If StringRight($HKEY, 1) = '\' Then
    $HKEY = StringTrimRight($HKEY, 1)
    Local $strKeyPath = ''
    Else
    Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
    $HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
    EndIf
    Else
    Local $strKeyPath = ''
    EndIf
    Select
    Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
    $HKEY = 0x80000002
    Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
    $HKEY = 0x80000003
    Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
    $HKEY = 0x80000001
    Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
    $HKEY = 0x80000000
    Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
    $HKEY = 0x80000005
    EndSelect
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    Local $arrValueNames, $arrValueTypes, $strValue
    $oReg.EnumValues($HKEY, $strKeyPath, $arrValueNames, $arrValueTypes)
    $OEvent = ObjEvent($oReg, "EnumValues")
    If Not IsArray($arrValueNames) Then Return ''
    Local $arOut[UBound($arrValueNames)][3]
    For $i = 0 To UBound($arrValueNames) -1
    $arOut[$i][0] = $arrValueNames[$i]
    Switch $arrValueTypes[$i]
    Case 1
    $arOut[$i][1] = 'REG_SZ'
    $oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 2
    $arOut[$i][1] = 'REG_EXPAND_SZ'
    $oReg.GetExpandedStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 3
    $arOut[$i][1] = 'REG_BINARY'
    $oReg.GetBinaryValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 4
    $arOut[$i][1] = 'REG_DWORD'
    $oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 7
    $arOut[$i][1] = 'REG_MULTI_SZ'
    $oReg.GetMultiStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    EndSwitch
    $arOut[$i][2] = $strValue
    Next
    Return $arOut
    EndFunc ;==>_GetRegValues

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

    Func MyErrFunc()
    Return
    Endfunc

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

    Func _RegReadBinary($KEY, $VALUE)
    If $KEY = '' Or $VALUE = '' Then Return SetError(4,0,1)
    Local $reg = RegRead($KEY, $VALUE)
    Local $err = @error, $ext = @extended
    If $err Then Return SetError($err,0,1)
    If $ext <> 3 Then Return $reg
    Local $val = ''
    For $i = 1 To StringLen($reg) - 2 Step 2
    $tmp = BinaryToString('0x' & StringMid($reg, $i, 2))
    If $tmp <> "" Then
    $val = $val & $tmp
    EndIf
    Next
    Return $val
    EndFunc ;==>_RegReadBinary

    [/autoit]


    Des weiteren habe ich mit den Standard-Functionen versucht weiter zu kommen, jedoch habe ich es bis jetzt nicht geschaft den hexadezimalen Wert zu erhalten. Auch mit der Function _RegReadBinary($KEY, $VALUE)von BugFix bin ich nicht weitergekommen. Zur Konntrolle, wass ich erwarte habe ich einen Export aus dem Registrierungs-Editor ausgeführt. Der Export sieht so aus:

    Spoiler anzeigen

    [HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag]
    "migratedBitValues"=hex:01,00,00,00

    Spoiler anzeigen

    [HKEY_CURRENT_USER\Software\AutoIt v3\AU3Info]
    "WinX"=dword:00000200
    "WinY"=dword:00000000
    "WinW"=dword:00000200
    "WinH"=dword:00000258
    "ColorMode"=dword:00000001
    "CoordMode"=dword:00000001
    "HighlightControls"=dword:00000000
    "Magnify"=dword:00000000
    "AlwaysOnTop"=dword:00000001
    "HighlightColor"=dword:00000000
    "LastTab"=dword:00000006

  • Problem mit Control ID

    • Jescho
    • 23. August 2010 um 23:29

    Danke für die schnellen Antworten. Ich werde mir das mal in Ruhe anschauen. Mit dem Spoiler habe ich meinen Fehler schon gesehen - danke

    Edit: das wars - Danke

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™