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

Beiträge von BugFix

  • DROP TABLE löscht nicht die gespeicherten Daten

    • BugFix
    • 5. Mai 2013 um 22:46

    DROP TABLE löscht die Tabelle - mit Inhalt!
    Woraus schließt du, dass das nicht der Fall ist? Wo sollen sich denn dann die Daten befinden - im Nirgendwo?

    DELETE dient nur zum Löschen einzelner/aller DS einer Tabelle. Die Tabelle bleibt erhalten.

  • Script mit Countdown als Wartefenster

    • BugFix
    • 5. Mai 2013 um 21:29

    Shadowigor hat schon die richtige Lösung angeboten.
    Alles andere geht am Ziel vorbei und ist nicht zu empfehlen.

  • PSU - PrivateServingUnit

    • BugFix
    • 5. Mai 2013 um 21:25

    Es ist unhöflich den Startpost zu löschen - niemand kann dann nachvollziehen, worum es ging.

    Habe ihn wiederhergestellt und close.

  • PSU - PrivateServingUnit

    • BugFix
    • 5. Mai 2013 um 21:17

    Und wozu sollen da mehrere Leute dran arbeiten? Das Thema ist weder kompliziert noch vielschichtig. Alles Basics.
    1 (max. 2) Stunde Programmieraufwand für 1 Person und der Drops ist gelutscht.

  • Problem mit der neuen SciTE-Version

    • BugFix
    • 5. Mai 2013 um 17:14

    Ich habe bei mir noch die Installationsdatei für SciTE4AutoIt v3.2.0 gefunden und mal angehängt.

    Edit:
    Bei Heise gibt es einen Download aus der dortigen Bibliothek, der vom Datum her ebenfalls die 3.2.0 sein sollte: http://www.heise.de/download/scite4autoit3-1155624.html

  • SciTEVersion vom 05.04.2013 verwendbar?

    • BugFix
    • 5. Mai 2013 um 17:05

    Im Moment gibt es bei Nutzung der Stable noch keine Notwendigkeit die 3.3.0 zu verwenden. Was ich bisher mitgelesen habe, ist die Version etwas buggy.
    Die Unterschiede zu 3.2.0 beschränken sich im Wesentlichen auf die zu erwartenden Syntaxänderungen für eine in ferner Zukunft liegende neue Version der Stable.
    Wenn du aber die Beta nutzt ist es durchaus angenehm, wenn die Syntax auch im Editor berücksichtigt wird.

  • SciTE - Funktionsname hinter EndFunc einfügen

    • BugFix
    • 5. Mai 2013 um 09:20

    Ihr kennt das von Tidy her: Hinter EndFunc wird eingefügt " ;==>FUNKTIONSNAME".
    Ich nutze Tidy gar nicht mehr - Einrückungen mache ich sowieso beim Schreiben und zudem auch richtig bei Select und Switch (das wird in Tidy immer versemmelt).
    Das Anhängen der Funktionsnamen finde ich aber recht praktisch und habe dafür jetzt ein Lua-Skript erstellt.

    FuncNameAtEnd.lua
    Code
    -- TIME_STAMP   2013-05-04 14:32:52   v 0.1
    
    
    ----------------------------------------------------------------------------------------------------------------------------------
    -- Beschreibung..: Ermittlung der im Skript deklarierten Funktionen
    -- ..............: In der EndFunc-Zeile wird "  ;==>FUNKTIONSNAME" angehängt
    -- ..............: Nicht wirksam in auskommentierten Zeilen
    ----------------------------------------------------------------------------------------------------------------------------------
    local IsComment = function(_pos) local tComment = {1,2} if tComment[editor.StyleAt[_pos]] == nil then return false else return true end end
    local InSense   = function(_s) _s = _s:gsub("%a", function(_c) return string.format("[%s%s]", _c:upper(),_c:lower()) end) return _s end
    
    
    local pattFunc = '()('..InSense('func')..'%s+([%w_]+)%s-%b().-'..InSense('endfunc')..')'
    local t, s, firstVisible, a, f, fname, iLines, pos, e = {}, editor:GetText(), editor.FirstVisibleLine
    
    
    for a, f, fname in s:gmatch(pattFunc) do
    	_, iLines = f:gsub('\n', '\n')
    	table.insert(t, {editor:LineFromPosition(a) + iLines, fname})
    end
    editor:BeginUndoAction()
    for i = 1, #t, 1 do
    	editor:GotoLine(t[i][1])
    	pos = editor:PositionFromLine(t[i][1])
    	if not IsComment(pos) then
    		_, e = editor:GetCurLine():find(InSense('endfunc'))
    		editor:SetSel(pos + e, pos + e)
    		editor:DelLineRight()
    		editor:InsertText(pos + e, '  ;==>'..t[i][2])
    	end
    end
    editor:EndUndoAction()
    editor.FirstVisibleLine = firstVisible
    scite.MenuCommand(IDM_SAVE)
    Alles anzeigen


    Zum Einbinden in das Menü folgenden Eintrag in SciTEUser.properties erstellen (Command-Nr an vorhandene freie anpassen):

    Code
    # 30 Add FuncName
    command.name.30.$(au3)= Add FuncName to EndFunc
    command.30.*.au3=dofile $(Lua.User.Scripts.Path)\FuncNameAtEnd.lua
    command.mode.30.*=subsystem:lua,savebefore:yes
    command.shortcut.30.*.au3=Ctrl+Shift+V


    Den Pfad hinter dofile an euren Speicherort der Datei anpassen.
    Eigene Lua-Skripte sollte man keinesfalls im Standard Lua-Ordner von SciTE ablegen. Falls ihr SciTE für eine neue Version mal deinstalliert wäre das alles futsch.
    Ich habe dafür einen eigenen Ordner angelegt und diesen als Property in den Benutzereinstellungen hinterlegt:
    Lua.User.Scripts.Path=C:\Code_AutoIt\LUA
    Diese Property kann dann als Variable angesprochen werden: $(Lua.User.Scripts.Path)
    Wichtig: Es darf niemals ein abschließender Backslash verwendet werden, SciTE verwendet diesen in .properties analog zum _ in au3-Skripten.

    Dateien

    FuncNameAtEnd.lua 1,55 kB – 397 Downloads
  • _GDIPlus_Startup /_ShutDown innerhalb von UDF

    • BugFix
    • 4. Mai 2013 um 09:30
    Zitat von funkey

    es wird doch nur noch ein zusätzlicher Zähler hochgezählt


    Aha, war mir nicht bekannt. :whistling:

    Diesen Aspekt sollte man dann eigentlich auch in der Funktionsreferenz aufführen.

  • _GDIPlus_Startup /_ShutDown innerhalb von UDF

    • BugFix
    • 4. Mai 2013 um 08:55

    Wenn ihr eine UDF erstellt, die Funktionen der GDIPlus.au3 verwendet, müßt ihr ja bei der Anwendung beachten, ob nicht bereits das aufrufende Skript GDIPlus gestartet hat.
    Ich verwende dazu die nachfolgende Lösung, vielleicht auch für euch interessant:

    Edit:
    Wie sich gezeigt hat, ist diese Überprüfung nicht erforderlich, da GDIP intern die Anzahl _Startup/_ShutDown zählt und verrechnet.
    Aber nun wißt ihr, wie man es machen kann, wenn es nötig wäre. :D

    [autoit]

    Func _Irgendeine_UDF()
    ;....
    _GDIPlus_CheckRun() ; <== statt _GDIPlus_Startup()
    ; beliebige GDIPlus-Funktionen
    _GDIPlus_CheckRun(0) ; <== statt _GDIPlus_ShutDown()
    ;....
    EndFunc

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

    ;===============================================================================
    ; Function Name....: _GDIPlus_CheckRun
    ; Description......: Führt _GDIPlus_Startup/ _ShutDown nur aus, wenn GDIP nicht aktiv
    ; Parameter(s).....: $_iStart 1 (Standard) für _Startup, 0 für _ShutDown
    ; Requirement(s)...: #include <GDIPlus.au3>
    ; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
    ;===============================================================================
    Func _GDIPlus_CheckRun($_iStart=1)
    Local Static $fOpenLocal = False ; nur wenn GDI+ nicht aktiv wird es lokal geöffnet
    If $_iStart = 1 Then
    If $ghGDIPDll = 0 Then ; Globales GDIPlus.Dll - Handle aus der GDIPlus.au3
    $fOpenLocal = True
    _GDIPlus_Startup()
    EndIf
    Else
    If $fOpenLocal Then
    $fOpenLocal = False
    _GDIPlus_ShutDown()
    EndIf
    EndIf
    EndFunc ;==>_GDIPlus_CheckRun

    [/autoit]
  • GUIGetMsg für "fremde" GUI

    • BugFix
    • 3. Mai 2013 um 21:22

    OnEventMode oder Adlib-Funktion sind sicher einfacher zu händelnde Alternativen.

  • GUIGetMsg für "fremde" GUI

    • BugFix
    • 3. Mai 2013 um 18:21

    Ein anderes Autoit Skript? Dann kannst du doch in diesem alles notwendige ausführen?
    Ansonsten schau dir mal die Skripte zu Datenkommunikation zwischen Skripten an.

  • Problem mit der neuen SciTE-Version

    • BugFix
    • 3. Mai 2013 um 17:44

    Spiel dir einfach 3.2.0 wieder auf und du hast Ruhe.
    3.3.0 ist eh nur eine Beta-Version in Vorbereitung auf künftige Syntaxänderungen. Da ist nichts bei, was für den aktuellen Stand der Stable erforderlich ist.

  • QR-Code Creator

    • BugFix
    • 3. Mai 2013 um 14:45
    Zitat von Volumeman

    derzeit werden Sie ja in 58x58 Pixel ausgegeben...


    Das ist nicht korrekt. In der Dll ist ein Qualitätslevel hinterlegt. In Abhängigkeit von der zu kodierenden Zeichenzahl in Kombination mit dem Qualitätslevel ergeben sich unterschiedliche Zeichnungsgrößen. Deshalb paßt sich im Bsp. die GUI auch automatisch an die jeweilige Codegröße an.
    Vergleiche einfach mal den Unterschied in der Größe bei 20 und 2000 zu codierenden Zeichen.;)

  • Combo in Echtzeit für Statusbar auslesen .... ohne Flackern

    • BugFix
    • 2. Mai 2013 um 17:32

    Mit einem Blick in die Hilfe (_GUICtrlComboBox_Create) ist das alles kein Problem ;)

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>

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

    GUICreate('TEST')
    $combo = GUICtrlCreateCombo('', 10, 10, 150, 22, BitOR($WS_VSCROLL,$CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, 'Item1|Item2|Item3|Item4', 'Item1')
    GUICtrlCreateLabel('Aktuelle Auswahl:', 10, 80, 120)
    $inSelection = GUICtrlCreateInput('Item1', 130, 77, 100, 20)
    GUISetState()

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

    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iCode
    $hWndFrom = $ilParam
    $iCode = BitShift($iwParam, 16) ; Hi Word
    If $hWndFrom = GUICtrlGetHandle($combo) And $iCode = $CBN_SELCHANGE Then GUICtrlSetData($inSelection, GUICtrlRead($combo))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Combo in Echtzeit für Statusbar auslesen .... ohne Flackern

    • BugFix
    • 2. Mai 2013 um 14:48

    Speichere den letzten Wert der Statusbar, vergleiche in der Schleife ob die Auswahl in der Combo ungleich des letzten Wertes ist -- und NUR DANN setzt du den Wert neu und aktualisierst die Vergleichsvariable.
    Alternativ kannst du auch das Event der Auswahl in der Combo über GUIRegisterMsg auswerten und nur in diesem Fall den Vergleich anstellen und ggf. neu setzen. (WM_COMMAND, Event: $CBN_SELCHANGE)

  • Drucker

    • BugFix
    • 2. Mai 2013 um 14:34
    Zitat von Clericer

    Auf die Art werden RTF Dokumente wie txt Dateien behandelt


    Du solltest schon den LPT-Port konfigurieren. Setze den Modus auf RAW - dann solltest du keine Probleme haben.

  • Drucker

    • BugFix
    • 2. Mai 2013 um 13:13
    Zitat von Clericer

    Danke für die Antwort aber das funktioniert nur mit lokal angeschlossenen Geräten


    Nein, das geht auch mit Netzwerkdruckern - einfach auf LPTn umleiten

    Code
    NET  USE  LPTn  \\PCName\Druckername
  • Funktion optionaler Parameter

    • BugFix
    • 2. Mai 2013 um 13:07

    Aber auch diese Variante ist vom Grundsatz falsch:
    Wenn du einen String als Parameter erwartest, dann solltest du bei optionaler Vorbelegung des Parameters diesen logischerweise auch mit einem String belegen. Und dann gibt es auch keine Probleme mit Typumwandlung.

  • 8 Bit zu 3 Bit | Bitaufteilung

    • BugFix
    • 30. April 2013 um 18:57

    Da 8 auf 3 sowieso nicht geht brauchst du immer n*3 8er Pakete, sonst geht es ja nicht auf. Insofern halte ich das eh für wenig sinnhaft, da diese Bedingung deinen Ausgangsdaten vorgegeben werden muß. :huh:
    Aber um es in 3er Blöcke zu setzen:
    einfach alle 8er als String zusammenklöppeln und anschließend mit StringTrimLeft(STRING-8, 3) in 3er Blöcke zerlegen oder einfacher mit Regex "([10]{3})" zerlegen.

  • Ini: Alle Sectionen nach Wert durchsuchen

    • BugFix
    • 30. April 2013 um 18:32

    Wenn man das Pattern etwas ändert, erhältst du auch gleich alle anderen Daten der INI-Sektion in einem Aufwasch:

    Spoiler anzeigen
    [autoit]

    $SerNum = "YLS01123548"
    $SearchPattern = "\[(\w+)\]\r\nuser=(\w+)\r\nip=([\d\.]+)\r\n\w+=" & $SerNum

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

    ;~ $sRead = FileRead('Deine.INI')

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

    $sRead = _
    "[Computername_A]" & @CRLF & _
    "user=xyz" & @CRLF & _
    "ip=10.1.0.2" & @CRLF & _
    "ser_moni=YLS01123548" & @CRLF & _
    @CRLF & _
    "[Computername_B]" & @CRLF & _
    "user=abc" & @CRLF & _
    "ip=10.1.0.3" & @CRLF & _
    "ser_moni=YLS01123666" & @CRLF

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

    $aRet = StringRegExp($sRead, $SearchPattern, 3)
    ConsoleWrite('+> Monitor mit der SerNr: ' & $SerNum & @LF)
    ConsoleWrite('>> PC-Name ' & $aRet[0] & @LF)
    ConsoleWrite('>> User-Name ' & $aRet[1] & @LF)
    ConsoleWrite('>> IP-Adresse ' & $aRet[2] & @LF)

    [/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™