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

  • Bibliothek im Editor öffnen

    • Bitnugger
    • 28. Februar 2019 um 22:18
    Zitat von BugFix

    Durch das rekursive Laden sollen wohl die Alien-Funktionen im eigenen Modul verfügbar sein (könnte ich mir vorstellen, ist aber nur geraten).

    Ja, das klingt logisch... denn es wird ja core.* verwendet... und ein Schreibfehler kann man nahezu ausschließen, denn das require schlägt fehl, wenn ich "alien" oder "core" weglasse/ändere... es geht nur mit "alien.core".

    Wieder was gelernt...

    5.3 Module

  • Bibliothek im Editor öffnen

    • Bitnugger
    • 28. Februar 2019 um 21:29
    Zitat von BugFix

    Laut Regeln für die Verwendung von Require geht das nicht - und tut es auch nicht! Was du geladen hast, ist nicht die core.dll, sondern alien.

    Die core.dll kann in SciTE nicht geladen werden.

    Ich habe nichts geladen... das local core = require "alien.core" steht so in der alien.lua drin, die ich mir aus deinem Thread besorgt habe und wie es der Zufall will, habe ich dieses require halt mal mit Alt+I testen wollen.

    Wenn ich dich also recht verstehe, ist das ein Fehler in der alien.lua...

  • Bibliothek im Editor öffnen

    • Bitnugger
    • 28. Februar 2019 um 20:34
    Zitat von BugFix

    Dein Aufruf: require "alien.core" war also schon falsch, weil es diese Bibliothek nicht gibt.

    Der stammt nicht von mir, sondern steht in der alien.lua drin und weil der Aufruf funktioniert, kann er nicht falsch sein, oder?

    @_REQUIRE_IS_DLL_FILE__CAN'T_OPEN__LINE 3 ist aber wohl die korrekte Antwort, denn mit require "alien.core" wird die core.dll und nicht core.lua aus dem Verzeichnis ..\alien\ geladen.

    require_alien.core.png

  • Bibliothek im Editor öffnen

    • Bitnugger
    • 28. Februar 2019 um 19:41

    Immer noch nicht ganz...

    tPathes[1] = f:\\AutoIt\\AutoIt3_LuaScripts\alien.core.lua

    tPathes[2] = f:\\AutoIt\\AutoIt3_LuaScripts\alien.core\alien.core.lua

    tPathes[3] = .\alien.core.lua

    tPathes[4] = C:\Program Files (x86)\AutoIt3\SciTE\lua\alien.core.lua

    tPathes[5] = C:\Program Files (x86)\AutoIt3\SciTE\alien.core.lua

    @_REQUIRE_IS_DLL_FILE__CAN'T_OPEN__LINE 3

    Richtig wäre:

    tPathes[1] = f:\\AutoIt\\AutoIt3_LuaScripts\alien\core.lua

  • Bibliothek im Editor öffnen

    • Bitnugger
    • 28. Februar 2019 um 18:32

    Das funktioniert leider nicht...

    local core = require "alien.core"

    @_NONE_REQUIRE__LINE 3

  • Kommandozeilenaufruf einer Webseite mit Parameter für (variablen) Link auf dieser Seite?

    • Bitnugger
    • 28. Februar 2019 um 11:10

    Habe es nun auch hinbekommen... gute Idee!

    command.help.$(file.patterns.lua)=dostring \  

    local firefox = "C:/Program Files/Mozilla Firefox/firefox.exe" \  

    local manual = "file:///f:/Meine Webseiten/Lua-Dokumentation/www.lua.org/manual/5.1/manual.html" \  

    local sel = props["CurrentSelection"] \  

    if sel ~= "" then manual = manual.."#pdf-"..sel end \  

    shell.exec('"'..firefox..'" "'..manual..'"')  

    command.help.subsystem.$(file.patterns.lua)=3  

  • Bibliotheken für SciTE-Lua: Alien, VCL, GUI u. a.

    • Bitnugger
    • 27. Februar 2019 um 21:49

    HiResTimer - kann es sein, dass du hier ein require vergessen hast...

    Code: HiResTimer_Example.lua
    ----------------------------------------------------------------------------------------------------
    local oTimer = {
    
    hrt = require("HiResTimer"),       -- requires "Alien"
    require("os"),                     -- <-- den brauchen wir für "os.clock"!
    time = nil,
    ...

    oder...

    Code: HiResTimer.lua
    do
        --
        -- take the alien module
        --
        require"alien"
        require("os")                  -- <-- den brauchen wir für "os.clock"!
       ...
  • Bibliotheken für SciTE-Lua: Alien, VCL, GUI u. a.

    • Bitnugger
    • 27. Februar 2019 um 09:38

    Sehr gut erklärt!

    shell... da hast du zwar den richtigen Link, aber die Dateien im Archiv sind nicht mehr aktuell. Wieso hast du hierfür kein eigenes Verzeichnis im Archiv angelegt?

    Code
    @BugFix
    ..\Lua-Bibliotheken\shellDLL\shell.dll                    35.328    02.02.2011 09:06    -a--
    ..\Lua-Bibliotheken\shellDLL\shell.html                   19.483    23.02.2011 10:41    -a--
    
    @Bitnugger
    ..\AutoIt3_LuaScripts\shell\Shell-Dateien\SciTEIco.png    10.091    27.02.2019 09:25    -a--
    ..\AutoIt3_LuaScripts\shell\Shell-Dateien\style.css        3.324    27.02.2019 09:25    -a--
    ..\AutoIt3_LuaScripts\shell\shell.dll                    133.120    27.02.2019 09:07    -a--
    ..\AutoIt3_LuaScripts\shell\Shell.html                    26.316    27.02.2019 09:25    -a--

    Dateien

    shell.zip 72,82 kB – 413 Downloads
  • VLC in Gui

    • Bitnugger
    • 26. Februar 2019 um 14:44
    Zitat von Musashi

    Damit auch andere irgendetwas davon haben

    Sehr schön - danke!

    UDF - VLC MEDIA PLAYER - OBJEKT funktioniert bei mir leider nicht... aber die VLC.au3.

    Beide hantieren übrigens mit Objekten... wobei erstere Version evtl. eine veraltete Schnittstelle verwendet, die nicht mehr existiert.

    Den Fehler bekomme ich: mmdevice audio output error: cannot initialize COM (error 0x80010106)

  • Auf FTP Server von einem File modification Time und Date auslesen

    • Bitnugger
    • 24. Februar 2019 um 20:29

    Hier könnte der Hase im Pfeffer liegen:

    FtpFindFirstFileW / InternetFindNextFileW

    Because the FTP protocol provides no standard means of enumerating, some of the common information about files, such as file creation date and time, is not always available or correct. When this happens, FtpFindFirstFile and InternetFindNextFile fill in unavailable information with a best guess based on available information. For example, creation and last access dates are often the same as the file's modification date.

    Da das FTP-Protokoll keine Standardmethoden für die Aufzählung bietet, sind einige der üblichen Informationen zu Dateien, z. B. Datum und Uhrzeit der Dateierstellung, nicht immer verfügbar oder korrekt. In diesem Fall geben FtpFindFirstFile und InternetFindNextFile nicht verfügbare Informationen mit einer besten Schätzung basierend auf den verfügbaren Informationen ein. Das Datum der Erstellung und des letzten Zugriffs stimmt beispielsweise häufig mit dem Änderungsdatum der Datei überein.

  • Auf FTP Server von einem File modification Time und Date auslesen

    • Bitnugger
    • 24. Februar 2019 um 02:47
    Zitat von buck

    Ich habe es mit

    _FTP_ListToArrayEx probiert bekomme aber immer nur im array [n][3] eine 00:00:00 Zeit zurück.

    Wenn du schon dein Script nicht zur Verfügung stellst, damit man dir anständig helfen kann, dann solltest du uns aber zumindest die Zeile mit dem Funktionsaufruf von _FTP_ListToArrayEx zeigen.

    Möglich ist, du hast _FTP_ListToArrayEx mit falschen Parametern gestartet, oder dein FTP-Server ist evtl. falsch konfiguriert.

    Hier ein funktionierendes Beispiel mit dem FTP-Server von AVM... teste das Beispiel mal mit deiner Server-Adresse.

    C
    #include <Array.au3>
    #include <FTPEx.au3>
    #include <MsgBoxConstants.au3>
    
    Local $sServer = 'ftp.avm.de', $sUsername = '', $sPass = ''
    
    Local $hOpen = _FTP_Open('MyFTP Control', 0)
    If Not @error Then
        ; passive allows most protected FTPs to answer
        Local $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass)
        If Not @error Then
            Local $aFile = _FTP_ListToArrayEx($hConn, 0)
            If Not @error Then
                _ArrayDisplay($aFile)
            Else
                MsgBox($MB_SYSTEMMODAL, "Error", '_FTP_ListToArrayEx($Conn, 0)' & @CRLF & _
                        '@error = ' & @error & ' @extended = ' & @extended)
            EndIf
            Local $iFtpc = _FTP_Close($hConn)
        Else
            MsgBox($MB_SYSTEMMODAL, "Error", '_FTP_Connect($Open, ' & $sServer & ', ' & $sUsername & ', ' & $sPass & ')' & @CRLF & _
                    '@error = ' & @error & ' @extended = ' & @extended)
        EndIf
    
        Local $iFtpo = _FTP_Close($hOpen)
    Else
        MsgBox($MB_SYSTEMMODAL, "Error", "_FTP_Open('MyFTP Control')" & @CRLF & _
                '@error = ' & @error & ' @extended = ' & @extended)
    EndIf
    Alles anzeigen
  • net user in MSG-Box ausgeben

    • Bitnugger
    • 22. Februar 2019 um 17:13
    Zitat von DerSchatten

    Wenn das ein Teil der cms.exe ist warum bekomme ich dann eine Fehlermeldung wenn ich das im CMD eingebe?

    Weil du den Parameter /DOMAIN nicht richtig verwendest!

    So ist es richtig:

    Code
    NET USER DerSchatten /DOMAIN MeineDomain.com | find /I "Letztes Setzen des Kennworts"
    Zitat von DerSchatten

    Was mich noch interessieren würde, warum stellt Autoit Umlaute die in einem CMD korrekt ausgegeben werden falsch dar?

    Standard-Codepage für die CMD ist OEM 850 und SciTE verwendet für die Output pane die Windows-Default Codepage Windows-1252, aka CP 1252 sowie Westeuropäisch (Western European) oder ANSI.

    Weil hier mit zwei verschieden Codepages hantiert wird, müssen die Zeichen für die Ausgabe entsprechen konvertiert werden, wie es @Musashi bereits gezeigt hat.

    https://de.wikipedia.org/wiki/Codepage_850

    https://de.wikipedia.org/wiki/Windows-1252

  • SciTE-Interface, Problem bei mehreren SciTE Instanzen

    • Bitnugger
    • 22. Februar 2019 um 17:01
    Zitat von BugFix

    Oh man, den Wald vor lauter Bäumen nicht gesehen.

    Die Tab-UDF tut's doch.

    Hehe... sehr gut... da bin aber auch schon drauf gekommen. ;)

    Code
    Func _SetCurrentTabNumber($iTabNumber) ; $iTabNumber (0 basierter Index)
        Local $hTab = ControlGetHandle(WinGetHandle('[ACTIVE]'), '', '[CLASS:SciTeTabCtrl; INSTANCE:1]')
        If IsHWnd($hTab) Then
            Local $iLastItem = _SendMessage($hTab, $TCM_GETITEMCOUNT) -1
            _SendMessage($hTab, $TCM_SETCURFOCUS, $iTabNumber > $iLastItem ? $iLastItem : $iTabNumber)
        EndIf
    EndFunc  ;==>_GetCurrentTabNumber
  • Dateiinformation (sehr schnell) von SMB-Share lesen

    • Bitnugger
    • 21. Februar 2019 um 23:07
    Zitat von Ovik

    Der Server ist ein Synology NAS

    Ok, kein Windows... aber einen speziellen Prozess kannst du ja trotzdem dafür starten... das bringt sicher den meisten Zeitgewinn!

    Zitat von misterspeed

    dir *.txt /A-D /B /OD /TW

    Das (/T) wird mit seiner Synology NAS nicht funktionieren, weil er dort mit Sicherheit kein NTFS hat.

    Eine Alternative wäre, ein Bash-Script auf dem Synology NAS via Crontab auszuführen, dass die gewünschten Ergebnisse in eine Datei speichert und die Clients diese dann auswerten. Ich kenne mich ein wenig mit Linux aus (15+ Jahre Debian) und könnte dir dabei helfen.

    Zitat von Musashi

    Falls es mit CMD DIR funktioniert, dann sieht der Code z.B. so aus :

    Hier eine verkürzte Version von @Musashi

    Code
    Global $hTimer = TimerInit()
    
    ConsoleWrite("! V4 Datei = " & _fetchParaFile_Support4(@ScriptDir & "\Files\") & @CRLF)
    ConsoleWrite("> V4 Zeitdauer = " & TimerDiff($hTimer) & @CR)
    
    ; Variante mit DIR :
    Func _fetchParaFile_Support4($sSourceDirectory)
        Local $PID, $sStdOut
        ; /T funktioniert nicht, wenn $sSourceDirectory nicht auf eine NTFS-Partition ist!
        $PID = Run(@ComSpec & ' /c DIR "' & $sSourceDirectory & '"\*.txt /A-D /B /OD /TW', "", @SW_HIDE, 2)
        While Not @error And $sStdOut = '' ; wir brauchen nur das erste (nach Alter sortierte) Verzeichnis!
            $sStdOut = StdoutRead($PID)
        WEnd
        Return $sStdOut
    EndFunc   ;==>_fetchParaFile_Support4
    Alles anzeigen
  • Dateiinformation (sehr schnell) von SMB-Share lesen

    • Bitnugger
    • 21. Februar 2019 um 18:54
    Zitat von Ovik

    Das ist alles ziemlich zeitkritisch, da eine grosse Anzahl von Clients (>100) gleichzeitig auf den Server auf das gleiche Verzeichnis zugreift.

    Anstatt alle Clients auf das Verzeichnis zugreifen zu lassen, würde ich einen speziellen Prozess dafür starten, der diese Arbeit erledigt und die gewünschten Informationen dann auf Anfrage via UDP/TCP an die Clients sendet.

    Wenn auf dem Server Windows installiert ist und du dort den speziellen Prozess starten kannst/darfst, könntest du das Verzeichnis mit _WinAPI_ShellChangeNotify überwachen, was den Vorteil hätte, dass du benachrichtigt wirst, wenn sich darin etwas verändert hat.

  • Wie macht ihr das Lochblech für euer PC-Gehäuse?

    • Bitnugger
    • 21. Februar 2019 um 13:18
    Zitat von peer92

    Würde bei dem Kauf von einem Lochblech darauf achten, dass es aus Edelstahl ist!

    Edelstahl ist sehr hart und lässt sich nur schwer verarbeiten... ich würde Aluminium nehmen.

  • Quoted-Printable Kodierung zu UTF-8 konvertieren (St=C3=B6rung - Störung)

    • Bitnugger
    • 20. Februar 2019 um 19:23
    Zitat von Musashi

    Das dürfte eher an Einstellungen in meinen scite.config's liegen und ist mir, offen gesagt, auch nicht so wichtig.

    Ja.

    Code: SciTEGlobal.properties
    # Editor pane, 0 = System default (ANSI)
    code.page=0
    # Output pane, 0 = System default (ANSI)
    output.code.page=0

    Bei mir habe ich beide Einträge in die SciTEUser.properties kopiert und auf 65001 (UTF-8) geändert.

  • Quoted-Printable Kodierung zu UTF-8 konvertieren (St=C3=B6rung - Störung)

    • Bitnugger
    • 20. Februar 2019 um 16:52
    Zitat von Musashi

    Die Zeichenkette stammt wahrscheinlich aus einer eMail - Stichwort Quoted-Printable-Kodierung .

    Aaah... ja, sehr gut... und wieder etwas klüger... mal gut, dass ich danach gefragt habe, woher die Zeichennkette stammt. ;)

    Zitat von Musashi

    Bei mir werden die Sonderzeichen in der ConsoleWrite-Ausgabe allerdings trotzdem maskiert - bei MsgBox geht es.

    ConsoleWrite: "Characters are converted to ANSI before being written."

    Code
    ConsoleWrite("> Decoded  : " & _WinAPI_WideCharToMultiByte($sDestString, @Compiled ? 1 : 65001) & @CRLF)

    Beispiel.png

    Dateien

    Beispiel.au3 1,13 kB – 316 Downloads
  • Quoted-Printable Kodierung zu UTF-8 konvertieren (St=C3=B6rung - Störung)

    • Bitnugger
    • 19. Februar 2019 um 22:01
    Zitat von AutoMit

    in einer Variablen habe ich die Zeichenkette "St=C3=B6rung".

    Wo kommt die Zeichenkette her? Sieht die Zeichenkette auch so verstümmelt aus, wenn du sie mit einer MsBox anzeigen lässt, oder nur mit ConsoleWrite?

    Ich kenne folgende Funktionen zur Konvertierung von Zeichenketten in eine andere Codepage:

    _WinAPI_MultiByteToWideChar, _WinAPI_MultiByteToWideCharEx, _WinAPI_WideCharToMultiByte, _WinAPI_CharToOem, _WinAPI_OemToChar, StringToBinary/BinaryToString

  • Diskussion zum Thema : "AutoIt Interne Funktionen : Erwartetes Ergebnis -> Tatsächliches Ergebnis"

    • Bitnugger
    • 19. Februar 2019 um 19:18
    Zitat von Musashi

    Der Kern meiner Frage bleibt aber : "Gehören solche kleinen Fallen in den Sammelthread ?"

    Ich denke, wenn du sie unter einem Punkt zusammenfasst, sind sie dort gut aufgehoben.

    Das Problem des User war aber auch, dass er seine Handles in einem Dictionary speichert, wodurch sie unbrauchbar wurden, weil sie im Dictionary als dezimale Zahlen gespeichert werden und bei späterer Verwendung dann nicht mehr als Handle erkannt werden - das gehört aber defintiv da rein. ;)

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™