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

Beiträge von Micha_he

  • Nur ein Registry "valuename" möglich warum? bzw. wie umgehe ich den Fehler?

    • Micha_he
    • 20. Dezember 2012 um 13:43
    Zitat von BugFix

    Das geht ganz einfach:

    '0x' & Hex($Farbwert,6)

    Die ersten beiden "FF" sind eh nicht erforderlich, kann man also gleich weglassen.

    so geht es bei mir nicht !

  • Nur ein Registry "valuename" möglich warum? bzw. wie umgehe ich den Fehler?

    • Micha_he
    • 20. Dezember 2012 um 13:25

    Ich tippe sein Problem ist folgendes:

    In die Registry wird im Script 1 der Registrywert Hex geschrieben. Dort kommt er auch einwandfrei an.

    Im Script 2 liest er ihn in Zeile 13 aber dezimal ein (geht ja wahrscheinlich auch nicht anders) und verwendet die Dezimalzahl in _GDIPlus_BrushCreateSolid($itxtcolor) in Zeile 24 als Parameter, wo er aber in Hex angegeben werden muss.

    Nur ich komm zur Zeit nicht drauf, wie man aus "4278255360" wieder "0xFF00FF00" bekommt :(

  • Nur ein Registry "valuename" möglich warum? bzw. wie umgehe ich den Fehler?

    • Micha_he
    • 20. Dezember 2012 um 12:44

    Ich glaube Du hast das mit dem 'Mini'-Beispiel falsch verstanden :D

  • Netzwerkgeräte abfragen

    • Micha_he
    • 20. Dezember 2012 um 09:36

    Ja

  • [offen] Registry -Eintäge von AutoIt | Liste

    • Micha_he
    • 14. Dezember 2012 um 08:24

    Ich kann Dir zwar auch nicht versprechen ob in dem von mir genutzten Script alle Registry-Schlüssel beachtet sind, aber folgendes habe ich schon seit mehr wie 2 Jahren im 'portablen' Einsatz:

    Spoiler anzeigen
    [autoit]

    #cs
    ****************************************************************************
    Titel: AutoIt3Portable.au3
    Autor: [email='micha_he@autoit.de'][/email]
    Datum: 05.11.2012
    Info: Erzeugt ein Tray-Symbol mit Kontextmenues für ein portables
    AutoIt. Es werden mögliche alte Registryeinträge (Standard-
    aktionen für den AU3-Dateityp und Kontextmenüs) gesichert,
    vorrübergehend auf die portable Version umkonfiguriert und
    am Programmende wieder hergestellt.
    AutoIt-Version: 3.3.8.1
    History: 1.00 - Erstrelease
    1.01 - Pfad RJTextEd angepasst
    ****************************************************************************
    #ce

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

    #Include <Constants.au3>
    Opt("MustDeclareVars",1)
    Opt("TrayMenuMode",1)

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

    Dim $KodaItem, $aboutitem, $helpau3item, $RJItem
    Dim $exititem, $CompilerItem, $time1, $msg

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

    $time1 = TimerInit()
    If FileExists(@ScriptDir & "\AutoIT3Portable.jpg") Then SplashImageOn("Splash Screen",@ScriptDir & "\Autoit3Portable.jpg",416,249,-1,-1,17)
    If RegRead("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp") = "Portable" Then
    SplashOff()
    MsgBox(64, "Start wird abgebrochen !", "Portables Autoit läuft schon !!")
    Exit
    EndIf

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

    $aboutitem = TrayCreateItem("About")
    TrayCreateItem("")
    $helpau3item = TrayCreateItem("AutoIt 3 Hilfe")
    TrayCreateItem("")
    If FileExists(StringLeft(@ScriptDir, 2) & "\Tools\Editor & Viewer\RJ TextEd\TextEd.exe") Then
    $RJItem = TrayCreateItem("RJ TextEd")
    TrayCreateItem("")
    EndIf
    If FileExists(@ScriptDir & "\Koda\FD.exe") Then
    $KodaItem = TrayCreateItem("KODA GUI Designer")
    TrayCreateItem("")
    EndIf
    If FileExists(@ScriptDir & "\Aut2Exe\Aut2Exe.exe") Then
    $CompilerItem = TrayCreateItem("AutoIT Compiler")
    TrayCreateItem("")
    EndIf
    $exititem = TrayCreateItem("Exit")
    TraySetState()

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

    _BackupRegistry()
    _Setup_Registry()

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

    While TimerDiff($time1) < 2000
    Sleep(100)
    Wend
    SplashOff()
    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    TrayItemSetState($aboutitem, $TRAY_UNCHECKED)
    MsgBox(0, "about:", @CRLF & "AutotITPortable V1.2" & @CRLF)
    Case $msg = $RJItem
    TrayItemSetState($RJItem, $TRAY_UNCHECKED)
    Run(StringLeft(@ScriptDir, 2) & "\Tools\Editor & Viewer\RJ TextEd\TextEd.exe", @TempDir)
    Case $msg = $KodaItem
    TrayItemSetState($KodaItem, $TRAY_UNCHECKED)
    Run(@ScriptDir & "\Koda\FD.exe", @TempDir)
    Case $msg = $CompilerItem
    TrayItemSetState($CompilerItem, $TRAY_UNCHECKED)
    Run(@ScriptDir & "\Aut2Exe\Aut2Exe.exe", @TempDir)
    Case $msg = $helpau3item
    TrayItemSetState($helpau3item, $TRAY_UNCHECKED)
    ShellExecute(@ScriptDir & "\AutoIt.chm","",@TempDir)
    Case $msg = $exititem
    $time1 = TimerInit()
    If FileExists(@ScriptDir & "\AutoIT3Portable.jpg") Then SplashImageOn("Splash Screen",@ScriptDir & "\Autoit3Portable.jpg",416,249,-1,-1,17)
    RegDelete("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp")
    _RestoreRegistry()
    While TimerDiff($time1) < 2000
    Sleep(100)
    Wend
    SplashOff()
    Exit
    EndSelect
    WEnd

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

    Func _BackupRegistry()
    If Not FileExists(@ScriptDir & '\RegBackup') Then DirCreate(@ScriptDir & '\RegBackup')
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\userclass.reg "HKEY_CURRENT_USER\Software\Classes"',"", @SW_HIDE)
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\autoit.reg "HKEY_CURRENT_USER\Software\AutoIt v3"',"", @SW_HIDE)
    If IsAdmin() Then
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\au3.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.au3"',"", @SW_HIDE)
    RunWait('RegEdit.exe /E ' & @ScriptDir & '\RegBackup\autoitscript.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AutoIt3Script"',"", @SW_HIDE)
    EndIf
    EndFunc ;==>backupRegistry

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

    Func _RestoreRegistry()
    RegDelete("HKEY_CURRENT_USER\Software\Classes\.au3")
    RegDelete("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe")
    RegDelete("HKEY_CURRENT_USER\Software\Classes\au3_auto_file")
    If FileExists(@ScriptDir & '\RegBackup\userclass.reg') Then RunWait('RegEdit.exe /S userclass.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If FileExists(@ScriptDir & '\RegBackup\autoit.reg') Then RunWait('RegEdit.exe /S autoit.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If IsAdmin() Then
    If FileExists(@ScriptDir & '\RegBackup\au3.reg') Then RunWait('RegEdit.exe /S au3.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    If FileExists(@ScriptDir & '\RegBackup\autoitscript.reg') Then RunWait('RegEdit.exe /S autoitscript.reg', @ScriptDir & '\RegBackup', @SW_HIDE)
    EndIf
    DirRemove(@ScriptDir & '\RegBackup',1)
    EndFunc ;==>RestoreRegistry

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

    Func _Setup_Registry()
    RegWrite("HKEY_CURRENT_USER\Software\Classes\.au3","","REG_SZ","au3_auto_file")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe","CurrentStartTyp","REG_SZ","Portable")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\Applications\AutoIt3.exe\shell\open\command","","REG_SZ",'"' & @ScriptDir & '\AutoIt3.exe" "%1"')
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell","","REG_SZ","1_Run")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\1_Run","","REG_SZ","AutoIT Script ausführen")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\1_Run\command","","REG_SZ",'"' & @ScriptDir & '\AutoIt3.exe" "%1" %*')
    If $RJItem <> 0 Then
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\2_Edit","","REG_SZ","AutoIT Script editieren")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\2_Edit\command","","REG_SZ",'"' & StringLeft(@ScriptDir, 2) & '\Tools\Editor & Viewer\RJ TextEd\TextEd.exe" "%1"')
    EndIf
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\3_Compile","","REG_SZ","AutoIT Script kompilieren")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\3_Compile\command","","REG_SZ",'"' & @ScriptDir & '\Aut2Exe\Aut2Exe.exe" /in "%l"')
    If FileExists(@ScriptDir & "\Aut2Exe_wOpt\Aut2Exe_wOpt.exe") Then
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\4_Compile with Options","","REG_SZ","AutoIT Script kompilieren mit Optionen")
    RegWrite("HKEY_CURRENT_USER\Software\Classes\au3_auto_file\shell\4_Compile with Options\command","","REG_SZ",'"' & @ScriptDir & '\Aut2Exe_wOpt\Aut2Exe_wOpt.exe" "%l"')
    EndIf
    EndFunc

    [/autoit]

    Du musst ggf. relative Pfad zu den Tools anpassen und eigene/andere Tools (z.B. anderen Editor, obwohl der RJTextEd gut ist) nachtragen.

    Hier noch das von mir verwendete Bild beim Start:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Die Grundidee stammt von einem anderen User entweder hier aus dem deutschen oder aus dem englischen Forum. Ich weiß nicht mehr von wem.

    Gruß
    Micha

    Dateien

    AutoIT3Portable.jpg 20,11 kB – 0 Downloads
  • Opera Erweiterungen

    • Micha_he
    • 12. November 2012 um 16:05

    Wenn die Buttons nicht per Controlklick erreichbar sind (sind sie bei mir auch nicht, hab ich gerade getestet), könntest Du mit WinGetPos() die Position der Fenster ermitteln und dann deinen MouseClick() relativ zu der ermittelten Ecke oben/links ausführen.

    Außer das Fenster ändert auch noch jedesmal die Größe ;)

  • AutoIT Window Info als Script

    • Micha_he
    • 26. Oktober 2012 um 16:49

    Dein Script aus #5 funktioniert bei mir einwandfrei !

  • AutoIT Window Info als Script

    • Micha_he
    • 26. Oktober 2012 um 16:41

    1. Der Titel heißt bestimmt "Unbenannt..." und nicht "Unbekannt..." !
    2. Der 2. Parameter von WinGetText() ist per Komma vom ersten zu trennen. Er ist aber nicht unbedingt notwendig, sondern optional. Also einfach weglassen.

  • PCI Karte selbst entwerfen

    • Micha_he
    • 22. Oktober 2012 um 09:28

    Du solltest außerdem mit Deinem Projekt fertig werden, bevor PCI komplett von den Mainboards verschwunden ist !

    Ich halte mehr von einer Realisierung z.B. über USB-Port, da dieser universeller und wahrscheinlich noch länger verfügbar ist.

  • Windows-Sicherheits Fenster

    • Micha_he
    • 4. Oktober 2012 um 11:19

    Ich glaube, ihr verwechselt hier die Meldung über 'nicht signierte Treiber' mit der UAC !

    Vor der installation eines nicht signierten Treibers, schalte ich die Meldung bei Bedarf mit folgendem Script ab:

    DriverSigningOff
    [autoit]

    ShellExecute("Control", "SYSDM.cpl,,2")
    $start = Timerinit()
    Do
    If WinExists("Systemeigenschaften") Then
    Sleep(200)
    ControlClick("Systemeigenschaften", "", "[CLASSNN:Button4]")
    ExitLoop
    EndIf
    Sleep(200)
    Until TimerDiff($start) > 10000

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

    $start = Timerinit()
    Do
    If WinExists("Treibersignaturoptionen") Then
    Sleep(200)
    ControlClick("Treibersignaturoptionen", "", "[CLASSNN:Button1]")
    ExitLoop
    EndIf
    Sleep(200)
    Until TimerDiff($start) > 10000

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

    Sleep(200)
    ControlClick("Treibersignaturoptionen", "", "[CLASSNN:Button5]")
    Sleep(200)
    ControlClick("Systemeigenschaften", "", "[CLASSNN:Button8]")

    [/autoit]

    Da das Script nur die Systemsteuerung nutzt, muss natürlich zu dem Zeitpunkt ein User angemeldet sein.
    Und das Script ist für WinXP in deutsch.

  • Treeview FileExplorer

    • Micha_he
    • 28. September 2012 um 14:34

    Schau mal in mein Tool 'AKrypto' (LINK).

    Ich nutze dort nur einen Unterordner unterhalb des @ScriptDir als Basis. (Siehe Zeile: 166, 211-213)

  • (mal wieder ein) Timer Problem

    • Micha_he
    • 28. September 2012 um 12:14

    ... und in dem script aus #3 wird der Timer in der "äußeren" Do-Until-Schleife immer wieder mit dem TimerInit() zurückgesetzt, bis die Schleife auf Grund des beendeten Downloads verlassen wird. Daher erhältst Du immer nur einige ms.

  • (mal wieder ein) Timer Problem

    • Micha_he
    • 27. September 2012 um 14:56

    Ich weiß zwar nicht so genau was Du mit

    Zitat

    Das Skript fängt komischerweise schon am Anfang meines Codes an, den Timer zu starten

    meinst, aber:

    - Der Timer startet mit "TimerInit()" und nicht "am Anfang des Scripts"
    - Sollte die Zeile mit dem TimerInit() wohl hinter die erste Do-Until-Schleife, damit man die Differenz für den Upload ermitteln kann.

  • eigene exe source herstellen

    • Micha_he
    • 26. September 2012 um 13:54

    Außerdem spricht doch meiner Meinung nach nichts dagegen, den Decompiler (EXE2AUT) der AutoIt-Version <= 3.2.5.1 für die eigene EXE zu verwenden, wenn diese damals damit compiliert wurde !

  • Mit Autoit .reg Datei ausführen

    • Micha_he
    • 23. September 2012 um 11:57

    Ich nutze es zwar selten, da ich meine Registry-Änderungen lieber von Hand ins Script schreibe, aber aus den Anfangszeiten wo ich einige Batchdateien in Autoit konvertiert habe, ist noh folgendes Script bei mir liegen geblieben:

    reg2au3
    [autoit]

    ; reg2au3
    ;
    ; converts reg files to au3 scripts
    ; reads simple unicode-files (like reg files from regedit windows 2000/xp)
    ;
    ; known problem: not all regtypes are supported by autoit
    ;
    ; by [email='albach_s@yahoo.de'][/email]

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

    global $file_in, $file_in_handle, $file_in_size, $file_out, $file_out_handle
    global $reg_delete, $reg_key, $reg_valuename, $reg_type, $reg_value
    global $eof, $lines_written, $lines_read, $file_read_size, $regedit

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

    ;set default params
    if 1 Then
    $shortkeys = 0
    $regedit = 0
    $step = 0

    $reg_delete = 0
    $reg_key = ""
    $reg_valuename = ""
    $reg_type = ""
    $reg_value = ""

    $eof = 0
    $lines_written = 0
    $lines_read = 0
    $file_read_size = 0
    EndIf

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

    ;start and fileselect-dialogs
    if 1 then
    MsgBox(0, "reg2au3", "Welcome to reg2au3 !" & @cr & @CR _
    & "With this handy little tool you're able to convert a standard .reg-file" & @CR _
    & "(previously exported from registry) to an AutoIt ready .au3-file." & @cr & @cr _
    & "Please select source-file and destination-file at the next dialogs" & @cr _
    & "and let this script do the rest.")

    $file_in = FileOpenDialog("reg2au3 - select source-file", "", ".reg-files (*.reg)", 1 )
    If @error Then _Error("source-file is needed")
    $file_in_size = FileGetSize($file_in)
    If $file_in_size = 0 Then _Error("source-file is empty")

    $file_out = FileSaveDialog( "reg2au3 - select destination-file", "", "AU3-Scripts (*.au3)", 24, _File_Name($file_in) & "_reghack.au3")
    If @error Then _Error("destination-file is needed")

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

    $a = MsgBox(36, "reg2au3", "Do you like short Registry keys ?" & @cr & @cr _
    & "like ""HKLM"" instead of ""HKEY_LOCAL_MACHINE"".")
    if $a = 6 then $shortkeys = 1
    EndIf

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

    _Files_Open()
    ProgressOn("reg3au3 - progress", "working ...")

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

    ;main script
    While 1
    $line = _File_Read_Line()
    Select
    case $eof and $line = ""
    if $step = 1 then _File_Write()
    ExitLoop
    case $line = ""
    case $regedit = 0
    if $line = "REGEDIT4" then $regedit = 4
    if $line = "Windows Registry Editor Version 5.00" Then $regedit = 5
    case StringLeft($line, 1) = "[" And StringRight($line, 1) = "]" ;New REG-Key
    $reg_valuename = ""
    $reg_type = ""
    $reg_value = ""
    if $shortkeys Then
    $line = StringReplace($line, "[HKEY_LOCAL_MACHINE", "[HKLM")
    $line = StringReplace($line, "[HKEY_CLASSES_ROOT", "[HKCR")
    $line = StringReplace($line, "[HKEY_CURRENT_USER", "[HKCU")
    $line = StringReplace($line, "[HKEY_USERS", "[HKU")
    $line = StringReplace($line, "[HKEY_CURRENT_CONFIG", "[HKCC")
    EndIf
    $line = StringTrimRight(StringTrimLeft($line, 1), 1)
    if $step = 1 Then
    if StringInStr($line, $reg_key) = 0 Then _File_Write()
    EndIf
    $reg_key = $line
    if StringLeft($reg_key, 1) = "-" Then
    $reg_delete = 1
    $reg_key = StringTrimLeft($reg_key, 1)
    _File_Write()
    $step = 0
    Else
    $step = 1
    EndIf
    case $step < 1
    Case Else
    $step = 2
    $err = 0
    if StringLeft($line, 2) = "@=" Then
    $reg_valuename = "@"
    $line = StringTrimLeft($line, 2)
    if $line = "-" then $err = 1
    ElseIf StringLeft($line, 1) = '"' Then
    $pos = 0
    $esc = 0
    $reg_valuename = ""
    for $i = 1 to stringlen($line)
    $a = stringmid($line, $i, 1)
    Select
    case $esc
    $esc = 0
    $reg_valuename = $reg_valuename & $a
    case $a = '\'
    $esc = 1
    case $a = '"'
    if $i > 1 Then
    $pos = $i + 1
    ExitLoop
    EndIf
    case Else
    $reg_valuename = $reg_valuename & $a
    EndSelect
    Next
    if StringMid($line, $pos, 1) = "=" then
    $line = StringTrimLeft($line, $pos)
    Else
    $err = 2
    EndIf
    Else
    $err = 3
    EndIf

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

    if $err Then
    msgbox(4144, "reg2au3", "Warning:" & @cr & "bad syntax at value-name - " & $err & @cr & "in line: " & $lines_read )
    ContinueLoop
    EndIf

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

    if StringLeft($line, 1) = '"' And StringRight($line, 1) = '"' Then
    $reg_type = "REG_SZ"
    $pos = 0
    $esc = 0
    $reg_value = ""
    for $i = 1 to stringlen($line)
    $a = stringmid($line, $i, 1)
    Select
    case $esc
    $esc = 0
    $reg_value = $reg_value & $a
    case $a = '\'
    $esc = 1
    case $a = '"'
    if $i > 1 Then
    $pos = $i +1
    ExitLoop
    EndIf
    case Else
    $reg_value = $reg_value & $a
    EndSelect
    Next
    ElseIf StringLeft($line, 1) = "-" Then
    $reg_delete = 1
    Else
    $type = StringLeft($line, StringInStr($line, ":"))
    $line = StringTrimLeft($line, StringLen($type))
    Select
    case $type = "dword:"
    $reg_type = "REG_DWORD"
    $reg_value = Dec($line)
    case $type = "hex(7):"
    $reg_type = "REG_MULTI_SZ"
    $reg_value = _Hex_Convert($line)
    case $type = "hex(2):"
    $reg_type = "REG_EXPAND_SZ"
    $reg_value = _Hex_Convert($line)
    case $type = "hex:"
    $reg_type = "REG_BINARY"
    $reg_value = StringReplace($line, ",", "")
    case StringLeft($type, 3) = "hex"
    msgbox(4144, "reg2au3", "Warning:" & @cr & "unsupported key-type - " & $type & @cr & "in line: " & $lines_read , 3)
    ContinueLoop
    case Else
    msgbox(4144, "reg2au3", "Warning:" & @cr & "bad syntax at key-type" & @cr & "in line: " & $lines_read )
    ContinueLoop
    EndSelect
    EndIf
    _File_Write()
    EndSelect
    WEnd

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

    ;some Types of Registry Values
    ;hex: REG_BINARY
    ;hex(0): REG_NONE - Null value
    ;hex(1): REG_SZ - Null terminated Unicode fixed string value
    ;hex(2): EXPAND_SZ - Null terminated unexpanded Unicode/ANSI environment string value
    ;hex(3): REG_BINARY - Binary value of any form/length
    ;hex(4): REG_DWORD - 32-bit numerical value
    ;hex(4): REG_DWORD_LITTLE_ENDIAN - little-endian 32-bit numerical value (same as REG_DWORD)
    ;hex(5): REG_DWORD_BIG_ENDIAN - 32-bit reversed numerical value
    ;hex(6): REG_LINK - Symbolic Unicode link string value
    ;hex(7): REG_MULTI_SZ - Array of multiple Unicode strings separated/ended by null characters
    ;hex(8): REG_RESOURCE_LIST - Device driver list of hardware resources in Resource Map tree
    ;hex(9): REG_FULL_RESOURCE_DESCRIPTOR - List of hardware resources in Description tree
    ;hex(a): REG_RESOURCE_REQUIREMENTS_LIST - Device driver list of hardware resource requirements in Resource Map tree
    ;hex(?): REG_QWORD - 64-bit numerical value
    ;hex(?): REG_QWORD_LITTLE_ENDIAN - little-endian 64-bit numerical value (same as REG_QWORD)

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

    _Files_Close()

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

    ;end-dialog
    if 1 then
    ProgressSet(100 , "Done", "Complete")
    sleep(1000)
    ProgressOff()
    EndIf

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

    ;returns converted hex-string suitable to regwrite
    Func _Hex_Convert( $hex)
    local $i, $a, $string
    $string = ""
    for $i = 1 to StringLen($hex)
    $a = chr(dec(StringMid($hex, $i, 2)))
    if $a = chr(0) then $a = @lf
    $string = $string & $a
    if $regedit = 5 then
    $i = $i + 5
    Else
    $i = $i + 2
    EndIf
    Next
    While StringRight($string,1) = @LF
    $string = StringTrimRight($string, 1)
    WEnd
    return $string
    EndFunc

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

    ;extract the filename without extension
    Func _File_Name( $file )
    $fn = StringRight( $file , stringlen( $file ) - StringInStr($file, "\", 0, -1) )
    if StringInStr($fn, ".") then $fn = StringLeft($fn, StringInStr($fn, ".")-1)
    Return $fn
    EndFunc

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

    ;returns a string containing the commandline
    Func _Create_Commandline()
    Local $cmdline
    if $reg_delete Then
    $cmdline = "RegDelete(" & chr(34) & _Clean_String($reg_key) & chr(34)
    if $reg_valuename <> "" Then
    $cmdline = $cmdline & ", " & chr(34) & _Clean_String($reg_valuename) & chr(34)
    Else
    $reg_key = ""
    EndIf
    $cmdline = $cmdline & ")"
    $reg_delete = 0
    Else
    $cmdline = "RegWrite(" & chr(34) & _Clean_String($reg_key) & chr(34)
    if $reg_valuename <> "" Then
    if $reg_valuename = "@" then $reg_valuename = ""
    $cmdline = $cmdline & ", " & chr(34) & _Clean_String($reg_valuename) & chr(34)
    $cmdline = $cmdline & ", " & chr(34) & $reg_type & chr(34)
    $cmdline = $cmdline & ", " & chr(34) & _Clean_String($reg_value) & chr(34)
    EndIf
    $cmdline = $cmdline & ")"
    EndIf
    $reg_valuename = ""
    $reg_type = ""
    $reg_value = ""
    Return $cmdline
    EndFunc

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

    ;cleans given String from @LF
    Func _Clean_String( $val )
    $val = StringReplace($val, '"', '""')
    $val = StringReplace($val, @lf, '" & @lf & "')
    Return $val
    EndFunc

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

    ;open the input and output files
    Func _Files_Open()
    $file_in_handle = FileOpen($file_in, 0)
    If $file_in_handle = -1 Then _Error( "Unable to open source-file.")
    $file_out_handle = FileOpen($file_out, 2)
    If $file_out_handle = -1 Then _Error( "Unable to open destinaion-file.")
    EndFunc

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

    ;reads a line from a file
    Func _File_Read_Line()
    local $line, $a, $b, $c, $r
    $line = ""
    $c = 1
    While $c
    $c = 0
    $r = ""
    while 1
    $a = FileRead($file_in_handle, 1)
    If @error = -1 Then
    $eof = 1
    ExitLoop
    EndIf
    $file_read_size = $file_read_size + 1
    $b = asc($a)
    if $b > 0 and $b < 254 Then $r = $r & $a
    if $b = 10 then ExitLoop
    WEnd
    $lines_read = $lines_read + 1
    _Show_Progress()
    $r = StringStripWS($r, 3)
    if StringRight($r, 1) = "\" Then ;regedit uses the backslash to split long lines
    $r = StringTrimRight($r, 1)
    $c = 1
    EndIf
    $line = $line & $r
    WEnd
    return $line
    EndFunc

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

    ;Write Commandline to Outputfile
    Func _File_Write()
    local $a
    $a = FileWriteLine( $file_out_handle, _Create_Commandline() )
    if $a = 0 Then _Error( "Unable to write to " & $file_in )
    $lines_written = $lines_written + 1
    EndFunc

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

    ;close the input and output files
    Func _Files_Close()
    if $file_in_handle then FileClose($file_in_handle)
    if $file_out_handle then FileClose($file_out_handle)
    EndFunc

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

    ;cleanup output files
    Func _Files_Cleanup()
    FileDelete($file_out)
    EndFunc

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

    ;shows the progress bar
    Func _Show_Progress()
    local $p
    $p = int($file_read_size * 100 / $file_in_size)
    ProgressSet( $p, "current line: " & $lines_read)
    EndFunc

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

    ;errorhandling
    Func _Error( $message )
    _Files_Close()
    _Files_Cleanup()
    ProgressOff()
    msgbox(16, "reg2au3", "ERROR:" & @cr & $message)
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • _IsPressed wird ignoriert

    • Micha_he
    • 11. September 2012 um 11:06

    Während der MsgBox() pausiert Dein Script. Die MsgBox lässt sich auch mit F11 nicht beenden. Bestätigst Du die MsgBox z.B. mit Enter, dann ist innerhalb kürzester Zeit, der Shutdown (Else-Zweig der _Ispressed()) bereits ausgelöst.

    Wenn Ich die F11-Taste bis zum Timeout der MsgBox festhalte, wird sie bei mir auch erkannt !

    Ich würde die MsgBox durch einen Splash und eine 15s Warteschleife ersetzen, in der Du dann mit IsPressed() abbrechen kannst.

  • Send + Variable

    • Micha_he
    • 8. September 2012 um 13:19

    So:

    [autoit]

    Send($opener & "{ENTER}")

    [/autoit]
  • angemeldeten User in ListView Subitem eintragen <--- Fehler

    • Micha_he
    • 24. August 2012 um 19:35

    Beim mir funktioniert Dein Beispiel aus #3 nicht !

  • angemeldeten User in ListView Subitem eintragen <--- Fehler

    • Micha_he
    • 24. August 2012 um 18:39

    Es scheint unter der Win32_OperatingSystem-Class kein "Username" zu existieren. Siehe MSDN.

    Aber unter "Win32_LoggedOnUser" ist es möglich:

    Spoiler anzeigen
    [autoit]

    $str_computer = "localhost"

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

    $wmiroot = ObjGet("winmgmts:\\"& $str_computer &"\root\CIMV2")
    $wmiColl = $wmiRoot.ExecQuery("SELECT * FROM Win32_LoggedOnUser")
    For $wmiObj In $wmiColl
    $string = StringReplace(StringMid($wmiObj.Antecedent, StringInStr($wmiObj.Antecedent, "=", 0, -1) + 1), '"', '')
    Msgbox(0,"",$string)
    Next
    $wmiColl = 0

    [/autoit]
  • 3 While Schleifen

    • Micha_he
    • 13. August 2012 um 11:34

    Zum Beispiel mal ganz einfach:

    [autoit]

    #NoTrayIcon

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

    HotKeySet (("#r"), "_exit")

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

    while 1

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

    If WinExists("skype.exe") Then WinClose ("skype.exe")
    If WinExists("notepad.exe") Then WinClose ("notepad.exe")
    Sleep(180000) ; 3 min warten

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

    Wend

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

    FUnc _exit()
    Exit
    EndFunc

    [/autoit]

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™