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

Beiträge von Bitnugger

  • #RequireAdmin & Windows 10

    • Bitnugger
    • 24. Oktober 2019 um 16:22

    So in etwa sieht das bei mir vom Schema her in einem aktuellen Projekt aus:

    AutoIt
    ;-- TIME_STAMP   2019-10-24 16:14:38   v 0.1
    
    #RequireAdmin
    #include <Array.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPISys.au3>
    
    Global $g_hGUI = GUICreate("", 483, 165, 192, 114, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE))
    Global $g_idPathIn = GUICtrlCreateInput("", 16, 32, 441, 21)
    Global $g_aDragQueryFiles
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    Global $g_idFileMenu = GUICtrlCreateMenu('Datei')
    Global $g_idFileMenuItem_LoadDatabase = GUICtrlCreateMenuItem('Datenbank laden', $g_idFileMenu)
    
    Global $g_idMainGUI_ESC_Dummy   = GUICtrlCreateDummy()
    Global $g_aAccelKeys[1][2] = [['{ESC}', $g_idMainGUI_ESC_Dummy]]
    GUISetState(@SW_SHOW)
    
    _WinAPI_ChangeWindowMessageFilterEx($g_hGUI, $WM_DROPFILES, $MSGFLT_ALLOW)
    _WinAPI_ChangeWindowMessageFilterEx($g_hGUI, $WM_COPYDATA, $MSGFLT_ALLOW)
    _WinAPI_ChangeWindowMessageFilterEx($g_hGUI, $WM_COPYGLOBALDATA, $MSGFLT_ALLOW)
    GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES")
    
    ; Sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
    
    Func WM_DROPFILES($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $ilParam
        Switch $iMsg
            Case $WM_DROPFILES
                $g_aDragQueryFiles = _WinAPI_DragQueryFileEx($iwParam)
                If Not @error Then
                    ConsoleWrite('> WM_DROPFILES $g_aDragQueryFiles:' & @CRLF & _ArrayToString($g_aDragQueryFiles, @CRLF) & @CRLF)
                Else
                    ConsoleWrite('! WM_DROPFILES $g_aDragQueryFiles:'& @LF & "!@ " & @TAB & "#Error: " & @error & @LF)
                EndIf
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_DROPFILES
    
    Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
        #forceref $hWnd, $iMsg
        Local $hWndFrom, $iIDFrom, $iCode
        $hWndFrom = $lParam
        $iIDFrom = _WinAPI_LoWord($wParam)
        $iCode = _WinAPI_HiWord($wParam)
        
        Switch $hWndFrom
            Case 0 ; Menu or Accelerator key/s has been pressed
                Switch $iCode
                    Case 0 ; Menu
                        Switch $iIDFrom ; Menu identifier (IDM_*)
                            Case $g_idFileMenuItem_LoadDatabase
                                ConsoleWrite('- WM_COMMAND Case $g_idFileMenuItem_LoadDatabase' & @CRLF)
                            Case Else
    ;~                             ...
                        EndSwitch
                    Case 1 ; Accelerator key/s has been pressed
                        Switch $iIDFrom ; Control identifier
                            Case $g_idMainGUI_ESC_Dummy
                                Exit
                            Case Else
    ;~                             ...
                        EndSwitch
                EndSwitch
            Case Else ; Control identifier
                Switch $iCode
                    Case $EN_CHANGE ; $EN_CHANGE message from one of the input / edit controls to its parent window.
                        Switch $iIDFrom
                            ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            ; Inputs Main-GUI
                            ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                            Case $g_idPathIn
                                ConsoleWrite('- WM_COMMAND $g_idPathIn: ' & GUICtrlRead($g_idPathIn) & @CRLF)
                        EndSwitch
                EndSwitch
        EndSwitch
        
        Return $GUI_RUNDEFMSG ; Anweisung an Windows, dass es mit der normalen Abarbeitung fortfahren kann
    EndFunc  ;==>WM_COMMAND
    Alles anzeigen
  • shellexecute - Netzlaufwerk öffnen

    • Bitnugger
    • 23. Oktober 2019 um 13:30

    Wenn du ein Netzlaufwerk mappst, kannst du dabei angeben, ob es nur für die aktuelle Sitzung oder permanent angelegt werden soll. Im letzten Fall wird dies in der Registry vermerkt.

    Wenn ShellExecute nicht auf das Laufwerk zugreifen kann, existiert es auch nicht, evtl. weil es nicht permanent angelegt wurde.

    Schau dir mal die Funktionen DriveMap* an...

    DriveMapAdd, DriveMapDel, DriveMapGet

    AutoIt
    If DriveMapGet('Y:') Then
        ConsoleWrite('> Drive Y: is mapped!' & @CRLF)
    Else
        ConsoleWrite('! Drive Y: is not mapped!' & @CRLF)
        Local $vMapp = DriveMapAdd('Y:', '\\Server\mnt', $DMA_AUTHENTICATION) ; Show authentication dialog if required
    ;~     Local $vMapp = DriveMapAdd('Y:', '\\Server\mnt', BitOR($DMA_PERSISTENT, $DMA_AUTHENTICATION)) ; Persistent mapping
        If Not $vMapp Then ConsoleWrite("Can't mapp Drive Y:!" & @LF & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @LF)
    EndIf
  • SQLite komplette Spalte auslesen und in Array speichern

    • Bitnugger
    • 19. Oktober 2019 um 17:55

    Das geht ganz einfach mit _SQLite_GetTable. In der AutoIt-Hilfe findest du auch ein Bsp. dazu.

    Hier habe ich mal das Bsp. aus der Hilfe ein wenig geändert, so dass nur die Spalte Name in ein Array kopiert wird.

    AutoIt
    ;-- TIME_STAMP   2019-10-19 17:51:43   v 0.1
    
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    
    Local $aResult, $iRows, $iColumns, $iRval
    
    _SQLite_Startup()
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!")
        Exit -1
    EndIf
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    _SQLite_Open() ; Open a :memory: database
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
        Exit -1
    EndIf
    
    ; Example Table
    ;     Name        | Age
    ;     -----------------------
    ;     Alice       | 43
    ;     Bob         | 28
    ;     Cindy       | 21
    
    If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Name, Age);") = $SQLITE_OK Then _
            MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
    If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Alice','43');") = $SQLITE_OK Then _
            MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
    If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Bob','28');") = $SQLITE_OK Then _
            MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
    If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy','21');") = $SQLITE_OK Then _
            MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
    
    ; Query
    ;~    $iRval = _SQLite_GetTable(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns) ; kopiert die komplette Tabelle in ein Array
    $iRval = _SQLite_GetTable(-1, "SELECT Name FROM persons;", $aResult, $iRows, $iColumns) ; kopiert nur die Spalte Name in ein Array
    If $iRval = $SQLITE_OK Then
        ; $aResult Looks Like this:
        ; [0]    = 4
        ; [1]    = Name
        ; [3]    = Alice
        ; [5]    = Bob
        ; [7]    = Cindy
        _ArrayDisplay($aResult, "Query Result")
    Else
        MsgBox($MB_SYSTEMMODAL, "SQLite Error: " & $iRval, _SQLite_ErrMsg())
    EndIf
    
    _SQLite_Close()
    _SQLite_Shutdown()
    Alles anzeigen
  • #RequireAdmin & Windows 10

    • Bitnugger
    • 16. Oktober 2019 um 15:23

    Versuche es mal hiermit:

    AutoIt
    #RequireAdmin
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    Global $g_hGUI = GUICreate("test", 317, 38, 192, 114, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE))
    Global $g_idInput = GUICtrlCreateInput("", 8, 8, 297, 21)
    Global $g_hInput = GUICtrlGetHandle($g_idInput)
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    GUISetState(@SW_SHOW)
    
    ; Allow WM_DROPFILES to be received from lower privileged processes (Windows Vista or later)
    If IsAdmin() Then
        _WinAPI_ChangeWindowMessageFilterEx($g_hInput, $WM_COPYGLOBALDATA, $MSGFLT_ALLOW)
        _WinAPI_ChangeWindowMessageFilterEx($g_hInput, $WM_DROPFILES, $MSGFLT_ALLOW)
    EndIf
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
    Alles anzeigen
  • Audio Output von AIMP feststellen

    • Bitnugger
    • 12. Oktober 2019 um 16:26

    Zuerst: Nach jeder Änderung in der Plugin-Config musst du AIMP neu starten, damit diese übernommen werden.

    Ich habe mir jetzt auch mal für jedes Event ein Template angelegt und für jedes Event eine andere Datei angegeben. Wenn sich bei mir der Status ändert (Play;Stop;Pause;Position;Statistics), wird immer eine der Dateien aktualisiert. Da kann man mit arbeiten, doch wirklich zufrieden bin ich damit nicht. Zum einen werden die Events nur ausgelöst, wenn ich in AIMP die Steuerung bediene, aber nicht wenn ich die Media-Tasten auf meiner Tastatur verwende, zum anderen hätte ich gerne mehr Infos, die ich in die Dateien speichern kann, wie z.B. die aktuelle Position im Track, Restzeit, gespielte Zeit, ...

    So sollte deine AIMP.ini etwa aussehen:

    AIMP.ini
    Code
    ...
    [CurrentTrackInfoToAny]
    Count=5
    Handler0=TCurrentTrackInfoToFileHandler
    Handler1=TCurrentTrackInfoToFileHandler
    Handler2=TCurrentTrackInfoToFileHandler
    Handler3=TCurrentTrackInfoToFileHandler
    Handler4=TCurrentTrackInfoToFileHandler
    
    [CurrentTrackInfoToAny.Handler0]
    GUID={C5EBC9B3-51B4-49BC-8244-E1D21D4E6C4F}
    Name=Stop template
    Notifications=1
    TemplateSource=0
    Template=%Artist - %Title
    Track=0
    Transliterate=0
    SourceCodePage=65001
    AddEmptyLines=0
    NewAtTop=0
    SaveUsingUTF8=1
    TrimEnd=0
    MaxLines=1
    FileName=C:\Users\ghost\Documents\CurrentTrackInfo_Stop.txt
    
    [CurrentTrackInfoToAny.Handler1]
    GUID={7B7BC0C1-7311-4454-A07D-E78BCEA93281}
    Name=Play template
    Notifications=4
    TemplateSource=0
    Template=%Artist - %Title - %LastPlayTime
    Track=0
    Transliterate=0
    SourceCodePage=65001
    AddEmptyLines=0
    NewAtTop=0
    SaveUsingUTF8=1
    TrimEnd=0
    MaxLines=1
    FileName=C:\Users\ghost\Documents\CurrentTrackInfo_Play.txt
    
    [CurrentTrackInfoToAny.Handler2]
    GUID={0351DAC8-A491-40A3-B58E-AA18E5BD0958}
    Name=Pause template
    Notifications=2
    TemplateSource=0
    Template=%Artist - %Title
    Track=0
    Transliterate=0
    SourceCodePage=65001
    AddEmptyLines=0
    NewAtTop=0
    SaveUsingUTF8=1
    TrimEnd=0
    MaxLines=1
    FileName=C:\Users\ghost\Documents\CurrentTrackInfo_Pause.txt
    
    [CurrentTrackInfoToAny.Handler3]
    GUID={71FD2907-11B2-4071-AF2F-BBFA01681F9E}
    Name=Position template
    Notifications=16
    TemplateSource=0
    Template=%Artist - %Title
    Track=0
    Transliterate=0
    SourceCodePage=65001
    AddEmptyLines=0
    NewAtTop=0
    SaveUsingUTF8=1
    TrimEnd=0
    MaxLines=1
    FileName=C:\Users\ghost\Documents\CurrentTrackInfo_Position.txt
    
    [CurrentTrackInfoToAny.Handler4]
    GUID={DC24D10A-DFAA-4DC2-9168-07A88DBD718E}
    Name=Statistics template
    Notifications=8
    TemplateSource=0
    Template=%Artist - %Title
    Track=0
    Transliterate=0
    SourceCodePage=65001
    AddEmptyLines=0
    NewAtTop=0
    SaveUsingUTF8=1
    TrimEnd=0
    MaxLines=1
    FileName=C:\Users\ghost\Documents\CurrentTrackInfo_Statistics.txt
    ...
    Alles anzeigen
  • Audio Output von AIMP feststellen

    • Bitnugger
    • 11. Oktober 2019 um 20:59

    Du hast das Plugin (für mehrere Events) konfiguriert?

    TrackInfoTo.png

  • Audio Output von AIMP feststellen

    • Bitnugger
    • 11. Oktober 2019 um 15:43

    Mit dem Plugin Current Track Info to Any v1.0 kommst du evtl. an die gewünschten Infos.

  • Probleme mit WinSetState (GUI reagiert nicht mehr)

    • Bitnugger
    • 10. Oktober 2019 um 16:00

    Anand deines Codes ist nicht wirklich nachvollziehbar, wo der Schuh bei dir drückt. Mir fällt dazu nur GuiSwitch ein, dass du vor/nach dem WinSetState ausführen könntest, um das Problem zu lösen.

    GuiSwitch(WinGetHandle("Example-GUI"))

    WinSetState("Example-GUI", "", @SW_SHOW)

  • Taskleiste ausblenden - welches Programm verhindert das

    • Bitnugger
    • 5. Oktober 2019 um 14:05

    Schau mal hier: https://www.autoitscript.com/forum/topic/56…ooking-example/

    ...

    $HSHELL_FLASH

    Notifies when some window is flashing (is followed with $HSHELL_REDRAW). Gives window handle.

  • Diskussion zu: FAQ SciTE Editor

    • Bitnugger
    • 16. September 2019 um 18:23
    Zitat von BugFix

    - in der Installation die scite.exe gegen eine alte Version austauschen. (3.6.6 funktioniert definitiv, evtl. auch noch die Folgeversion, habe ich aber nicht probiert)

    Ja, mit der Version 3.7.5.0 funktioniert es auch.

    Bei mir funktioniert dein verlinktes Bsp. zu ConsoleWrite auch nicht... bzw. nur die Pink farbene Zeile tut es... wenn du es aber so änderst, dann gehen auch die anderen:

    Code
    ; == Example 2 for writing in SciTe output pane
    
    ConsoleWrite('! = Red' & @CRLF) ; ! = red text color
    ConsoleWrite('> = Blue' & @CRLF) ; > = blue text color
    ConsoleWrite('- = Orange' & @CRLF) ; - = orange text color
    ConsoleWrite('+ = Green' & @CRLF) ; + = green text color
    ConsoleWrite('@@(5) : = Red (jump to line 5 when double-clicked)' & @CRLF) ; '(5) :' red text color and double click jumps to (line number)
    ConsoleWrite('Start_with_String_or_Integer_WithOut_Space' & @TAB & @TAB & '6' & ' = Pink (jump to line 6 when double-clicked)' & @CRLF)
    ; pink text color, any sign (without space) and then @TAB & @TAB & 'line number'
    
    ; Example 1
    ConsoleWrite('@@ (' & @ScriptLineNumber & ') : = Red (jump to line ' & @ScriptLineNumber & ' when double-clicked)' & @CRLF)
    
    ; Clear console output pane of SciTE after 5000 ms - funktioniert nicht mehr!
    ;~ Sleep(5000)
    ;~ ControlSend("[CLASS:SciTEWindow]", "", "Scintilla2", "+{F5}") ; war früher "Clean", ist jetzt aber "Test Run"
    ;~ ControlSend("[CLASS:SciTEWindow]", "", "Scintilla2", "+{F7}") ; "Clean" | "Test Compile" --> doppelt belegt, letzteres wird verwendet, ergo "Test Compile"
    Alles anzeigen

    ConsoleWrite2.png

  • Diskussion zu: FAQ SciTE Editor

    • Bitnugger
    • 13. September 2019 um 17:51
    Zitat von water

    Was vermutest Du denn, wie alt ich bin

    Bezug nehmend auf deinen Nick würde ich etwa 13 Milliarden Jahre schätzen... :rofl:

  • RegEx gesucht

    • Bitnugger
    • 8. September 2019 um 22:03

    Ich mache es so:

    Code
    MsgBox(0, '', StringRegExpReplace("Install_Paint.NET.au3", "(.+)\..*$", "\1"))

    Es geht auch so:

    Code
    #include <WinAPIShPath.au3>
    MsgBox(0, '', _WinAPI_PathRemoveExtension('Install_Paint.NET.au3'))
  • Tonfrage

    • Bitnugger
    • 1. September 2019 um 18:30
    Zitat von Alina

    Gibt es da irgendwelche Einstellungen, die nur die Windowstöne deaktiviewrt?

    Alternativ zum Vorschlag von @Musashi kannst du die Systemsounds auch im Lautstärkemixer deaktivieren.

    Systemsounds.png

    Den Lautstärkemixer findest du im Kontextmenü, wenn du in der Taskleiste einen Rechtsklick auf das Lautsprechersymbol machst.

  • Consolen Umlaute Problem

    • Bitnugger
    • 29. August 2019 um 15:01

    Versuche es mal mit _WinAPI_WideCharToMultiByte.

    C: Test.au3
    ;-- TIME_STAMP   2019-08-29 14:56:14   v 0.1
    
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    #include <WinAPIConv.au3>
    
    ConsoleWrite(_WinAPI_WideCharToMultiByte('ÄÜÖäöüß', 1) & @CRLF) ; 1 - The current system OEM code page

  • merkwürdige Zeichen - _ArraySearch

    • Bitnugger
    • 29. August 2019 um 14:36

    code.page=0 ist Default, unter Windows ist das dann ANSI.

    Zitat von Musashi

    Ich verspüre allerdings wenig Begeisterung, hier groß herumzuwerkeln.

    Na ja, so viel Aufwand ist das nun nicht. Ich habe mir dafür ein kleines Script geschrieben, um fremde/ältere Scripte (*.au3, *.lua) zu konvertieren, dass ich mit OHK aufrufe (Ctrl+Win, Ctrl+z).

    Code: ownhotkeys.properties
    #~ Ctrl+Win, Ctrl+Z
    own.mode.cmd.90=OHK.ConvertFileToUTF8()
    own.mode.descript.90=Ctrl+$(own.mode.indicator.descript), Ctrl+Z|Convert the current file to UTF-8 (*.au3 with BOM, *.lua without BOM)
    Code: OHKfuncs.lua
    --[[    OHK.ConvertFileToUTF8()
    ]]
    -------------------------------------------------------------------------
    OHK.ConvertFileToUTF8 = function()
        local UserTools   = props['user.tools.path']
        local FilePath    = props['FilePath']
    --~     local FileDir     = props['FileDir']
    --~     local FileName    = props['FileName']
    --~     local FileExt     = props['FileExt']
    --~     local FileNameExt = props['FileNameExt']
    
    --~     print('UserTools   = '..UserTools)
    --~     print('FilePath    = '..FilePath)
    --~     print('FileDir     = '..FileDir)
    --~     print('FileName    = '..FileName)
    --~     print('FileExt     = '..FileExt)
    --~     print('FileNameExt = '..FileNameExt)
    
        editor:BeginUndoAction()
        OHK.ExecuteAU3(UserTools..'\\_ConvertFileToUTF8.au3', FilePath)
        editor:EndUndoAction()
    end
    -------------------------------------------------------------------------
    Alles anzeigen
    Code: _ConvertFileToUTF8.au3
    ;-- TIME_STAMP   2018-06-23 07:32:01   v 0.1
    
    #Region    ;************ Includes ************
    #Include <File.au3>
    ;~ #Include <WinAPI.au3>
    #EndRegion ;************ Includes ************
    
    Switch $CMDLINE[0]
        Case 0
            Exit 1
        Case 1
            _ToUTF8($CMDLINE[1])
        Case 2
            _ToUTF8($CMDLINE[1], $CMDLINE[2])
        Case Else
            Exit 2
    EndSwitch
    
    Func _ToUTF8($sFilePath, $sSaveAs = '')
        If $sSaveAs = '' Then $sSaveAs = $sFilePath
    
    ;~     MsgBox(0, '_ToUTF8', '$sFilePath = ' & $sFilePath & @CRLF & '$sSaveAs = ' & $sSaveAs)
    ;~     Return
    
        Local $sFile, $hFile, $iSize, $iEncoding, $iWrite, $FO, $sExt
    
        $hFile = FileOpen($sFilePath, $FO_READ) ; $FO_READ (0), $FO_BINARY (16), $FO_UTF8 (128), $FO_UTF8_NOBOM (256), $FO_ANSI (512)
        $iEncoding = FileGetEncoding($hFile)
        $sFile = FileRead($hFile)
        $iSize = @extended
        FileClose($hFile)
        If $iSize = 0 Then
            ConsoleWrite('! Error $hFile = ' & $hFile & ' $iSize = ' & $iSize & ' FileRead('&$sFilePath&')' & @CRLF)
            Return 0
        EndIf
    
        $sExt = StringRegExpReplace($sFilePath, '.+(\..+)', '\1')
    
    ;~     Leere Datei.txt = $FO_UTF8_NOBOM
        Switch $iEncoding
            Case $FO_UTF8_NOBOM
                If $sExt = '.lua' Then
                    Return SetExtended($iSize, $iEncoding) ; Lua mag kein BOM!!!
                    ConsoleWrite(StringFormat('+ %s %s %s\r', $sFilePath, _StrRepeat('.', 92 - StringLen($sFilePath)), 'Codepage ist bereits $FO_UTF8_NOBOM'))
                Else
                    ConsoleWrite(StringFormat('- %s %s %s\r', $sFilePath, _StrRepeat('.', 92 - StringLen($sFilePath)), 'Codepage $FO_UTF8_NOBOM wird zu $FO_UTF8 konvertiert'))
                EndIf
            Case $FO_UTF8
                ConsoleWrite(StringFormat('+ %s %s %s\r', $sFilePath, _StrRepeat('.', 92 - StringLen($sFilePath)), 'Codepage ist bereits $FO_UTF8'))
                Return SetExtended($iSize, $iEncoding)
            Case $FO_ANSI
                If $sExt = '.lua' Then
                    ConsoleWrite(StringFormat('- %s %s %s\r', $sFilePath, _StrRepeat('.', 92 - StringLen($sFilePath)), 'Codepage $FO_ANSI wird zu $FO_UTF8_NOBOM konvertiert'))
                Else
                    ConsoleWrite(StringFormat('- %s %s %s\r', $sFilePath, _StrRepeat('.', 92 - StringLen($sFilePath)), 'Codepage $FO_ANSI wird zu $FO_UTF8 konvertiert'))
                EndIf
            Case Else
                Return 0
        EndSwitch
    
        $hFile = FileOpen($sSaveAs, $FO_OVERWRITE + $FO_CREATEPATH + ($sExt = '.lua' ? $FO_UTF8_NOBOM : $FO_UTF8)) ; $FO_APPEND (1), $FO_OVERWRITE (2), $FO_CREATEPATH (8), $FO_BINARY (16), $FO_UTF8 (128), $FO_UTF8_NOBOM (256), $FO_ANSI (512)
        $iWrite = FileWrite($hFile, $sFile) + FileClose($hFile) ? FileGetSize($sSaveAs) : -1
        If $iWrite < 1 Then
            ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Error $hFile = ' & $hFile & ' $iWrite = ' & $iWrite & ' FileWrite('&$sSaveAs&')' & @CRLF)
            Exit 999
        EndIf
        Send('^r')
        Return SetExtended($iSize, $iEncoding)
    EndFunc
    
    Func _StrRepeat($sStr, $iRepeat)
        Local $sString
        For $i = 1 To $iRepeat Step 1
            $sString &= $sStr
        Next
        Return $sString
    EndFunc
    Alles anzeigen
    Code: SciTEUser.properties
    # Pfad für eigene Tools
    #~ user.tools.path=f:\AutoIt\AutoIt3_Tools
    user.tools.path=f:\\AutoIt\\AutoIt3_Tools
    
    # Pfad für eigene Lua-Scripte
    #~ lua.user.scripts.path=f:\AutoIt\AutoIt3_LuaScripts
    lua.user.scripts.path=f:\\AutoIt\\AutoIt3_LuaScripts
  • merkwürdige Zeichen - _ArraySearch

    • Bitnugger
    • 26. August 2019 um 16:21
    Zitat von Musashi

    In der Sache hast Du aber natürlich recht.

    Soso... bei mir sieht es aber so aus:

    1-4.png

    So geht es aber auch:

    ConsoleWrite(BinaryToString(StringToBinary('Testdatei - für AutoIt.au3', 4), 4) & @CRLF)

  • merkwürdige Zeichen - _ArraySearch

    • Bitnugger
    • 25. August 2019 um 20:38
    Zitat von alpines

    Das Flag am Ende kommt nicht hin, nimm UTF-8 (4) denn Umlaute gibt es im ANSI (1) nicht.

    Mein SciTE ist so eingestellt, dass Dateien als UTF-8 gespeichert und die Ausgaben als UTF-8 angezeigt werden. Deshalb hat mein Test-Script wohl auch mit 1 funktioniert.

    Dass es im ANSI keine Umlaute gibt, wäre mir aber neu... du meinst wohl OEM (850)?!

  • merkwürdige Zeichen - _ArraySearch

    • Bitnugger
    • 25. August 2019 um 16:49

    Guck mal ob dir das weiter hilft:

    ConsoleWrite(BinaryToString(StringToBinary('Testdatei - für AutoIt.au3'), 1) & @CRLF)

    Ausgabe:

    Testdatei - für AutoIt.au3

  • Fremdes Program starten mit Adminrechten, aber ohne UAC-Abfrage

    • Bitnugger
    • 14. August 2019 um 21:09

    Oder du benutzt die RunAs.exe... was die kann bzw. anders als die AutoIt-Funktion macht, erfährst du in der Eingabeaufforderung mit RunAs /?

    So mache ich es z.B. wenn ich die hosts editieren will:

    runas.exe /profile /env /savecred /user:administrator "c:\Program Files (x86)\TC UP\Plugins\Media\Notepad++\notepad++.exe c:\Windows\SYSTEM32\drivers\etc\hosts"

  • DirExists?

    • Bitnugger
    • 11. August 2019 um 08:45
    Zitat von Musashi

    Return FileExists($sDirPath) And StringInStr(FileGetAttrib($sDirPath), 'D')

    Du bist ein Bayer - Hosenträger und Gürtel, weil einem allein kann man ja nicht trauen! 8o

    Return StringInStr(FileGetAttrib($sDirPath), 'D')

    ..reicht doch völlig aus, oder bin ich noch nicht ganz wach?

    Code
    Global $sDirPath = 'f:\Audio\MP3\International\L\Lana Del Rey'
    ConsoleWrite("@@_Debug_line" & @TAB & @TAB & @ScriptLineNumber & "   _DirectoryExists('"&$sDirPath&"') --> " & _DirectoryExists($sDirPath) & @LF & "!@ " & @TAB & "#Error: " & @error & @LF)
    
    Func _DirectoryExists($sDirPath)
        Local $sAttribs = FileGetAttrib($sDirPath)
        Return SetError($sAttribs = '' ? 1 : 0, 0, StringInStr($sAttribs, 'D') = True)
    EndFunc ;==>_DirectoryExists

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™