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. Herra

Beiträge von Herra

  • REG_BINARY Registry-Wert in Text umwandeln.

    • Herra
    • 21. April 2009 um 15:14

    Hallo zusammen,

    ich möchte einen Registry-Wert (REG_BINARY) in Text umwandeln.
    Leider funktioniert das nicht immer. Bei manchen Werten klappt es, bei manchen kommt nichts oder unleserliches Zeug raus.
    Ich bin mir aber sicher, dass in den Werten, wo nichts oder unleserliches Zeug rauskommt z.B: Pfade enthalten sind.

    Ich verwende folgendes:

    [autoit]


    $reg1 = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\profil\2b0fd4a9b7c3f34a888e02f4456ed759', '001f6700')
    MsgBox(0, '001f6700', BinaryToString($reg1, 2))
    ; hier kommt was vernünftiges raus

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

    $reg3 = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\profil\0a0d020000000000c000000000000046', '1102039b')
    MsgBox(0, '1102039b', BinaryToString($reg3, 2))
    ; hier nicht

    [/autoit]

    Hierbei handelt es sich um die Pfade von PST Dateien im Outlook Profil.
    0a0d020000000000c000000000000046 sollte bei allen gleich sein, die Outlook 2003 verwenden
    2b0fd4a9b7c3f34a888e02f4456ed759 variiert, aber der enthaltene Value 001f6700 sollte in jedem Profil nur ein mal vorhanden sein.

    Hoffe Ihr könnt mir helfen.

    Danke und Gruß
    Herra

  • Probleme mit Programm-Neustart Skript.

    • Herra
    • 11. März 2009 um 14:11

    Habe den Fehler gefunden. Ich bin ja so doooooof :rofl:
    Habe meinen Skript auch Outlook.exe genannt. Dadurch hat sich der Skript immer selbst beendet.

    eukalyptus
    Du hast recht, diese Funktionen habe ich aber nicht selbst erstellt, sondern habe sie im Forum gefunden.
    Die Schleife soll eigentlich prüfen, ob der Prozess öfter läuft, ist aber nicht schön gemacht, da er immer den letzten schließt den er findet.
    Ich muss das mal ein bisschen umschreiben.

    Danke euch für die Hilfe.
    cu Herra

  • Probleme mit Programm-Neustart Skript.

    • Herra
    • 11. März 2009 um 10:34

    Hi Alina,

    entschuldigt meine Ungeduld ;)

    Also MsgBox(0,$v_start_profile) habe ich nur zu Testzwecken eingefügt. Die bringt bei mir keine Fehlermeldung.

    Wie oben geschrieben, es wird gar keine Fehlermeldung ausgegeben.

    Zitat von Herra

    ...Wenn ich es über den Skript Editor starte funktioniert er Einwand frei.
    Sobald ich es in eine Exe kompiliere und ausführe stürzt es einfach nach Zeile 124 (dem DllCall) ohne Meldung ab.

    Danke und Gruß
    Herra

  • Probleme mit Programm-Neustart Skript.

    • Herra
    • 11. März 2009 um 09:14

    Kann mir bei dem Problem echt niemand helfen? ;(
    Ich komme einfach nicht weiter.

    Danke euch.
    cu Herra

  • Probleme mit Programm-Neustart Skript.

    • Herra
    • 9. März 2009 um 16:03

    niemand eine Idee? ;(

  • Probleme mit Programm-Neustart Skript.

    • Herra
    • 9. März 2009 um 10:54

    Hi,

    hab ein kleines Problem mit folgendem Skript. Wenn ich es über den Skript Editor starte funktioniert er Einwand frei.
    Sobald ich es in eine Exe kompiliere und ausführe stürzt es einfach nach Zeile 124 (dem DllCall) ohne Meldung ab.

    Hoffe Ihr könnt mir helfen.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <Array.au3>
    #include <WindowsConstants.au3>

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

    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.0.0
    #ce ----------------------------------------------------------------------------

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

    Opt("TrayIconDebug", 1)

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

    ;=========================================================================================================================
    ;Kommandozeilenparameter prüfen und Variablen setzen
    Global $v_GuiName = 'Outlook Start-Assistent'
    $a_outlook_profiles = _ArrayCreate('')
    $v_def_profile = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles', 'DefaultProfile')
    $v_Outlook_Home = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE', 'Path')

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

    For $i = 1 to 10
    $var = RegEnumKey('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles', $i)
    If @error <> 0 Then ExitLoop
    If RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\' & $var & '\13dbb0c8aa05101a9bb000aa002fc45a', '001e6750') <> '' Then
    If $var = $v_def_profile Then $var = $var & ' (Default)'
    _ArrayAdd($a_outlook_profiles, $var)
    EndIf
    Next

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

    ;~ #################################################################################
    ;~ Gui1
    $gui_high = 170
    If UBound($a_outlook_profiles) > 2 Then $gui_high = $gui_high + (20 * (UBound($a_outlook_profiles) - 2 ))
    If $gui_high > 600 Then $gui_high = 600

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

    $Gui1 = GUICreate($v_GuiName, 260, $gui_high, -1, -1, -1)
    $l_Gui1 = GUICtrlCreateLabel('Folgende Profile sind konfiguriert.' & @CRLF & 'Wählen Sie eine zum start von Outlook aus.', 30, 10)

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

    Global $radio[UBound($a_outlook_profiles)]
    Global $high = 30
    For $i = 1 To UBound($a_outlook_profiles) - 1
    $high = $high + 20
    $radio[$i] = GUICtrlCreateRadio($a_outlook_profiles[$i], 30, $high, 120, 20)
    If StringInStr($a_outlook_profiles[$i], ' (Default)') Then GUICtrlSetState($radio[$i], $GUI_CHECKED)
    Next

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

    $l_Parameter = GUICtrlCreateLabel('Parameter:', 10, $high + 33, 50, 20)
    $ib_Parameter = GUICtrlCreateInput('', 65, $high + 30, 155, 20)
    $b_Parameter_List = GUICtrlCreateButton('...', 225, $high + 30, 20, 20)

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

    $b_outlook_start = GUICtrlCreateButton('Profil starten', 15, $high + 60, 230, 20)

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

    $schliessen = GUICtrlCreateButton("Schließen", 95, $high + 90, 70, 20)

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

    GUISetState(@SW_SHOW, $Gui1)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $b_Parameter_List
    Run('notepad.exe ParameterAll.txt', @ScriptDir, @SW_SHOW)
    Case $b_outlook_start
    If ProcessExists('OUTLOOK.EXE') Then
    SplashTextOn('Outlook', 'Outlook wird neu gestartet.' & @CRLF & 'Bitte warten...', 300, 50, -1, -1, 34, '', 11)
    Else
    SplashTextOn('Outlook', 'Outlook wird gestartet.' & @CRLF & 'Bitte warten...', 300, 50, -1, -1, 34, '', 11)
    EndIf

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

    ProcessQuit('OUTLOOK.EXE')
    Sleep(3000)

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

    While ProcessExists('OUTLOOK.EXE')
    ProcessClose('OUTLOOK.EXE')
    Sleep(2000)
    WEnd

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

    For $i = 1 To UBound($a_outlook_profiles) - 1
    If GUICtrlRead($radio[$i]) = 1 Then $v_start_profile = $a_outlook_profiles[$i]
    Next
    MsgBox(0, '', $v_start_profile)
    If StringInStr($v_start_profile, ' (Default)') Then
    Run($v_Outlook_Home & 'OUTLOOK.EXE ' & GUICtrlRead($ib_Parameter))
    Else
    Run($v_Outlook_Home & 'OUTLOOK.EXE /Profile "' & $v_start_profile & '" ' & GUICtrlRead($ib_Parameter))
    EndIf
    SplashOff()
    Case $GUI_EVENT_CLOSE, $schliessen
    Exit
    EndSwitch
    WEnd

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

    Func ProcessGetWindows($PId)
    $PId = ProcessExists($PId)
    If $PId = 0 Then
    SetError(1)
    Else
    Local $WinList = WinList()
    Local $WindowTitle[1][2]
    Local $x = 0

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

    For $i = 1 To $WinList[0][0]
    If WinGetProcess($WinList[$i][1], "") = $PId And $WinList[$i][0] <> ""Then
    ReDim $WindowTitle[$x+1][2]
    $WindowTitle[$x][0] = $WinList[$i][0]
    $WindowTitle[$x][1] = $WinList[$i][1]
    $x += 1
    EndIf
    Next

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

    Return $WindowTitle
    EndIf
    EndFunc

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

    Func ProcessQuit($filename)
    $Return=0
    $a = ProcessList($filename)

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

    For $i = 1 To UBound($a) - 1
    $Return = ProcessGetWindows($a[$i][1])
    Next

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

    If($Return==0) Then
    Return
    EndIf

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

    DllCall("User32.dll", "int", "PostMessageA", "hwnd", $Return[0][1], "int", $WM_QUIT, "int", "", "int", "")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • GUICtrlCreateListViewItems verschachteln.

    • Herra
    • 26. September 2008 um 19:23

    Hi Progandy,

    danke für den Link. Mit "TristateTreeViewLib.au3" konnte ich tatsächlich alle meine Wünsche umsetzen.

    Danke euch für die Unterstützung.

    BugFix : Danke für den Hinweis mit dem TreeView. Manchmal sieht man den Wald vor lauter Bäumen nicht :D

  • GUICtrlCreateListViewItems verschachteln.

    • Herra
    • 25. September 2008 um 12:23
    Zitat von BugFix

    Und eben dazu verwendest du das Array. Du speicherst die ID's im Array statt in einzelnen Variablen.

    Hi BugFix,

    stimmt, Ihr habt recht. Das konnte ich lösen.
    Habt Ihr Ideen zu Punkt 1 und 2?

    Danke und Gruß
    Herra

  • GUICtrlCreateListViewItems verschachteln.

    • Herra
    • 24. September 2008 um 19:27
    Zitat von funkey

    Hallo!

    Nur mal zum 3. Punkt:

    Mach das mit einem Array ($lvi_sub_file[0],$lvi_sub_file[1],$lvi_sub_file[2].

    Leider ist das nicht möglich. Ich benötige kein Array, sondern die Handles der einzelnen ListViewItems, damit ich sie anschließend auswerten kann.

  • GUICtrlCreateListViewItems verschachteln.

    • Herra
    • 24. September 2008 um 11:49

    Hi,

    ich benötige wieder mal euere Hilfe.

    Ich habe eine Gui erstellt wo bestimmt Dateien ausgewählt und anschließend kopiert bzw. gezippt werden können.

    [autoit]


    $lv_ConfigFiles = GUICtrlCreateListView('Name|Path', 15, 40, 415, 300, -1, $LVS_EX_GRIDLINES + $LVS_EX_CHECKBOXES + $LVS_EX_FULLROWSELECT) ;List View mit Checkboxen

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

    $lvi_datei1 = GUICtrlCreateListViewItem('Datei1.txt|c:\temp', $lv_ConfigFiles)
    $lvi_datei2 = GUICtrlCreateListViewItem('Datei2.txt|c:\temp', $lv_ConfigFiles)

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

    $lvi_ordner1 = GUICtrlCreateListViewItem('Ordner1|c:\temp\ordner1', $lv_ConfigFiles)

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

    $v_file_List = _FileListToArray('c:\temp\ordner1', '*', 1)

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

    For $a = 1 To $v_file_List[0]
    $lvi_sub_file = GUICtrlCreateListViewItem($v_file_List[$a] & '|c:\temp\ordner1\', $lv_ConfigFiles)
    Next

    [/autoit]

    Wenn ich Ordner 1 auswähle, wird der ganze Ordner kopiert.

    Was ich nun umsetzen möchte ist folgendes:

    1. In der Liste unter Ordner 1 sollen die Dateien angezeigt werden, die im Ordner liegen. Am besten eingerückt, damit man es unterscheiden kann und Ordner 1 soll aufklappbar sein.

    2. Wenn ich Ordner 1 anhacke, sollen alle Dateien unter dem Ordner ebenfalls angehackt werden, wenn ich nur ein paar Datein unter Ordner 1 auswähle, soll die Checkbox von Ordner 1 das Dritte-Status-Attribut erhalten.

    3. Wie kann ich automatisch einen Variablennamen in einer For/Next Schleife hochzählen. Bei jedem Durchlauf soll die Variable $lvi_sub_file eine Zahl hinten dran bekommen. z.B: $lvi_sub_file1, $lvi_sub_file2 usw.

    Hoffe Ihr könnt mir weiterhelfen.
    Danke und Gruß
    Herra

  • Prüfen ob Datei(en) in einem Ordner gesperrt ist/sind oder nicht.

    • Herra
    • 5. September 2008 um 19:43

    Hi,

    Ich möchte einen Ordner verschieben, muss aber vorher prüfen, ob eine Datei in diesem Ordner gesperrt ist oder nicht, da sonst das Verschieben nicht möglich ist.
    AutoIt verschiebt in so einem Fall nur den halben Ordner und so können Inkonsistenzen auftreten.

    Mit gesperrt meine ich, wenn z.B. irgend eine Datei geöffnet ist, oder eben wenn Windows aus irgend einem Grund die Datei gesperrt hat.
    Tools wie Unlocker können das ja prüfen.

    Kann sowas AutoIt auch? Fällt euch eine Möglichkeit ein?

    Danke für die Hilfe und schönes WE.

    Gruß Herra

  • Tab's und TabItem's

    • Herra
    • 28. August 2008 um 17:31
    Zitat von ctec

    wenn man im KODA visible = false setzt, wird

    [autoit]

    GUICtrlSetState(-1, $GUI_HIDE)

    [/autoit]

    druntergestzt ... *grübel*

    Hilft leider nicht. Es passiert nichts.

    Gruß Herra

  • Tab's und TabItem's

    • Herra
    • 25. August 2008 um 10:32

    Hat niemand eine Idee? Würde mir sehr helfen.

    Danke und Gruß
    Herra

  • Hintergrundfarbe eines TabItems ändern.

    • Herra
    • 19. August 2008 um 12:47

    Hi Eukalyptus,

    leider nein. Die Tabs der AutoIt-Hilfe sind zum Bespiel grau. Nur in mit AutoIt kriege ich es nicht hin.

    Gruß Herra

  • Hintergrundfarbe eines TabItems ändern.

    • Herra
    • 18. August 2008 um 17:48

    Hi @all,

    ich habe ein TabItem erstellt:

    $ts_ConfigFiles = GUICtrlCreateTabItem('Config')

    Leider schaffe ich es nicht, die Hintergrundfarbe zu ändern. Es ist weiß und ich möchte es grau haben (wie die Standard Gui Farbe)
    Weder GUICtrlSetBkColor noch GUISetBkColor haben funktioniert.

    Hoffe jemand hat Rat ;)

    Danke und Gruß
    Herra

  • Tab's und TabItem's

    • Herra
    • 18. August 2008 um 10:48

    Hi zusammen,

    hat niemand eine Idee, wie man TabItems verstecken kann. Würde mich nämlich auch interessieren ;)

    Danke und Gruß
    Herra

  • _FileWriteToLine und Dateien im Unix Format.

    • Herra
    • 24. Juli 2008 um 17:31

    Hi Progandy,

    danke für die schnelle Antwort. Habe meine Function angepasst. jetzt funktioniert es auch.

    Gruß Herra

  • _FileWriteToLine und Dateien im Unix Format.

    • Herra
    • 24. Juli 2008 um 15:08

    Hallo zusammen,

    ich musste gerade feststellen, das _FileWriteToLine nicht in jede Datei schreiben kann.

    Ich habe eine Datei namens "Database.properties". Diese Datei beinhaltet bestimmt Zeilen, die ich ersetzen möchte.
    Das Problem ist, das diese Datei in Unix Format abgespeichert ist, z.B. werden die Zeilen mit LF umgebrochen.

    Wenn ich mit _FileWriteToLine eine Zeile größer 1 ersetzen möchte, kommt die Meldung, dass die Datei weniger Zeilen hat als $iLine.
    Wenn ich die Datei in Windows Format umkonvertiere funktioniert es.
    Wenn ich $iLine = 1 angebe, wird der gesamte Inhalt der Datei gelöscht und nur die Zeile 1 wird hineingeschrieben.

    _FileReadToArray funktioniert Einwand frei. Ich kann alle Zeilen in ein Array auslesen.

    Hoffe jemand kann mir helfen.

    Danke und Gruß
    Herra

  • String aufteilen

    • Herra
    • 24. Juli 2008 um 13:00

    Jetzt habe ich es kapiert. :thumbup:
    Danke für die Erklärung.

    Schönen Tag noch.
    Gruß Herra

  • String aufteilen

    • Herra
    • 24. Juli 2008 um 11:54

    Hi Xenobiologist,

    danke für deine einfache Lösung. Verstehe zwar nicht wie das pattern zusammengesetzt wird, funktioniert aber :thumbup:

    Dank auch an die anderen für die Lösungshilfe.

    Gruß Herra

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™