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

  • Binary von Bildern erstellen, aus Textdatei auslesen und in GUI packen

    • BugFix
    • 14. Februar 2012 um 00:28

    Guckst du: https://autoit.de/index.php?page…99705#post99705

  • SciTE - kontinuierlicher Kommentarmodus für AutoIt (auch für SciTE-RU)

    • BugFix
    • 14. Februar 2012 um 00:05

    Ein Tool für eine komfortablere Kommentierung im Skript.
    - Aktivierung und Deaktivierung per Hotkey, Modus ist sichtbar durch geändertes Cursor-Symbol (Hand)
    - Fortlaufend schreiben und der Kommentar bricht automatisch um und setzt hinter dem Code in der Folgezeile spaltengleich positioniert fort.
    - Bei automatischem Umbruch können für Zeilenende und -Fortsetzung optional Zeichen/-folgen festgelegt werden um optisch sofort zusammenhängende Zeilen zu erkennen
    - Umbruch automatisch an definierter Spaltenposition oder manuell durch Pfeil-ab
    - Es muß nicht fortlaufend jede Zeile beschrieben werden, sondern es können auch Zeilen übersprungen werden
    - Um wirksam zu werden ist ein Neustart von SciTE erforderlich

    Edit 14.02.2012: kleine Ergänzung, s. blaue Markierung

    Edit 15.02.2012: Falls es nicht wie gewollt klappt, werft mal einen Blick hier hin. Dort könnten schon einige Hinweise zur Lösung sein.

    Edit 16.02.2012: Wie ihr hier im Thread seht, gab es bei Pitter Probleme. Deshalb noch Folgendes:
    - Der Eintrag in der "SciTEStartup.lua" MUSS am Ende, also hinter EventClass:BeginEvents() erfolgen.
    - Sollten trotzdem die Ereignisse Pfeiltaste-Ab und Lerzeichen nicht erkannt werden, hilft i.A. einen zusätzlichen, sinnlosen Befehl im Skript zu verbauen, der die Funktion etwas 'bremst'
    Bsp.:

    Spoiler anzeigen
    Code
    function CommentHitKey:OnKey(_keycode)
    	local Keycode = _keycode or nil         -- Sinnfrei, nur zum Abbremsen <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    	if fCommentModeOn then                                       -- fortsetzender Kommentarmodus ist aktiv
    		local fBreak = isLFpos()
    		if _keycode == 32 and fBreak then                        -- Leerzeichen u. Position für Zeilenwechsel erreicht (automatischer Zeilenwechsel)
    			fNext = true                                               -- Marker neue Zeile
    		elseif _keycode == 40 then                                  -- Pfeil_ab (manueller Zeilenwechsel)
    			fNext = true  fIsNewLine = true                            -- Marker neue Zeile und Marker in-neuer-Zeile
    		elseif fNext then                                           -- in neuer Zeile ==> Kommentarzeichen einfügen
    			fNext = false
    			if not fIsNewLine then                                     -- bei automatischem Wechsel (wenn in den properties ein Umbruchsymbol definiert):
    				editor:InsertText(editor.CurrentPos, charBreak1)          -- am Ende Umbruchsymbol aus den properties anhängen
    			end
    			ContinuousComment()
    		end
    	end
    	return nil
    end
    Alles anzeigen

    Edit 17.02.2012
    - Ich habe die Positionsabfrage jetzt verändert, mit der vorigen Methode wurden auch 'halbe Tabs', also Tabs, die z.B. nach 2 Leerzeichen gesetzt wurden, voll mit 4 Leerzeichen ersetzt, was zu Verschiebungen führt.
    Nun erhalte ich direkt die Spaltenposition aus der Zeile. Version: 0.6
    - Und für die Nutzer von SciTE-RU habe ich auch die entsprechende Version erstellt.

    Edit 18.02.2012: [NEUE FUNKTIONEN]
    - Bei Auto-Umbruch wird das letzte Wort einer Zeile, wenn es die Umbruchmarkierung überschreitet, in die Folgezeile übernommen.
    - Manuell kann auch mit ENTER umgebrochen werden. Dann wird hinter der aktuellen Zeile eine Leerzeile eingefügt und genauso positioniert der Kommentar fortgeschrieben. Die Umbruchmarkierungen werden wie beim Auto-Umbruch gesetzt. Dazu ist ein weiterer Eintrag in den properties erforderlich um diese Funktion optional zu de/aktivieren (s. Installationshinweise).

    Und hier ein kleines Bild dazu:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Beschreibung
    Code
    FUNKTION: Kontinuierlicher Kommentar Modus
    ----------------------------------------------------------------------------------------------------------------------------------
    BESCHREIBUNG
    
    
    
    
    	Per Hotkey wird die Funktion aktiviert. Dabei wird an der aktuellen Cursorposition die in den properties
    	('ContinuousComment.Chars.*.au3') festgelegte Zeichenfolge gesetzt (z.B. "; ==").
    
    
    	AUTO UMBRUCH:
    	In den properties 'ContinuousComment.LFpos.*.au3' wird festgelegt an welcher Spaltenposition ein automatischer Wechsel auf die
    	nächste Zeile erfolgen soll (Trigger: Leerzeichen an Position gleich od. größer Spaltenangabe aus den properties). Man kann
    	also einfach fortlaufend seinen Kommentar schreiben und er wird automatisch in der Folgezeile hinter dem Code, an derselben
    	Spaltenposition wie in der vorigen Zeile, fortgesetzt. Ist der Code in der Folgezeile länger, beginnt der Kommentar erst
    	dahinter.
    	Überschreitet der Code die Umbruchposition, so wird das letzte Wort mit in die neue Zeile übernommen
    
    
    	MANUELLER UMBRUCH:
    	Manuell kann jeder Zeit mit "Pfeil ab" auf die Folgezeile gewechselt werden. Soll in der Folgezeile kein Kommentar erscheinen,
    	kann wiederum mit "Pfeil ab" zur nächsten Zeile gewechselt werden (in der momentanen Zeile wird dann kein Kommentarzeichen
    	gesetzt).
    	Ausserdem kann mit <ENTER> ein manueller Umbruch erzeugt werden mit gleichzeitigem Einfügen einer Leerzeile. Dabei wird die
    	Umbruchmarkierung (sofern in den properties festgelegt) genau wie beim manuellen Umbruch erzeugt. Der Kommentar wird wiederum
    	spaltengenau fortgesetzt.
    
    
    	Beendet wird der Kontinuierliche-Kommentar-Modus wiederum mit dem Hotkey, das auch zum Start verwendet wird.
    ----------------------------------------------------------------------------------------------------------------------------------
    INSTALLATION
    
    
    	Das Skript "ContinuousComments.lua" im Ordner "..\SciTE\LUA\" speichern.
    
    
    	Einträge in "SciTEUser.properties":
    		ContinuousComment.LFpos.*.au3=170               <== gewünschte Position für automatischen Zeilenwechsel beim Kommentar schreiben
    		ContinuousComment.Chars.*.au3=;                 <== Zeichenfolge mit der jede Kommentarzeile beginnt (Leerzeichen wird automatisch angefügt)
    		ContinuousComment.BreakCharsLast.*.au3=˜ ˜ ›      <== [optional] Zeichen am Zeilenende bei automatischem Umbruch
    		ContinuousComment.BreakCharsNext.*.au3=›        <== [optional] Zeichen am Anfang der Folgezeile bei automatischem Umbruch
    		ContinuousComment.NewLine.WithEnter.Enable.*.au3'   <== neue Zeile (mit Kommentar an derselben Position) einfügen mit Enter im Kommentar-Modus (=1)
    
    
    		# 36 Comment Continuous
    		command.name.36.*=Kommentarmodus aktivieren
    		command.36.*=CommentModeActivate
    		command.mode.36.*=subsystem:lua,savebefore:no
    		command.shortcut.36.*=Ctrl+Shift+K              <== gewünschter Hotkey
    
    
    	Eintrag in "..\SciTE\LUA\SciTEStartup.lua"
    		LoadLuaFile("ContinuousComments.lua")           <== Am Dateiende einfügen!!
    ----------------------------------------------------------------------------------------------------------------------------------
    Alles anzeigen

    So sieht das Skript dazu aus:

    v 0.7
    Code
    -- TIME_STAMP   2012-02-18 00:16:13   v 0.7
    
    
    CommentHitKey = EventClass:new(Common)
    
    
    local ext = props['FileExt']
    local lfPos = tonumber(props['ContinuousComment.LFpos.*.' .. ext])
    local charComm = props['ContinuousComment.Chars.*.' .. ext]..' '
    local charBreak1 = props['ContinuousComment.BreakCharsLast.*.' .. ext]
    local charBreak2 = props['ContinuousComment.BreakCharsNext.*.' .. ext]
    local fNewLine = false
    if tonumber(props['ContinuousComment.NewLine.WithEnter.Enable.*.' .. ext]) == 1 then fNewLine = true end
    
    
    local fCommentModeOn, fNext, fIsNewLine, fIsEnter = false, false, false, false
    local lastLine, column, col
    
    
    local getSpaces = function()
    	col = editor.Column[editor.CurrentPos]
    	local s = ''
    	if col < column then
    		s = string.rep(' ', column - col)
    	end
    	return s
    end
    
    
    local isLFpos = function()
    	local pos = editor.Column[editor.CurrentPos]
    	if pos >= lfPos then
    		return true
    	else
    		return false
    	end
    end
    
    
    local ContinuousComment = function()
    	local autoBreak, w = '', ''
    	if not fIsNewLine then
    		local pos = editor.Column[editor.CurrentPos]
    		if pos > lfPos then
    			editor:WordLeftExtend()
    			w = editor:GetSelText()
    			editor:ReplaceSel('')
    		end
    		editor:GotoLine(editor:LineFromPosition(editor.CurrentPos) +1)
    		if charBreak2:len() > 0 then autoBreak = charBreak2..' ' end
    	else
    		fIsNewLine = false
    	end
    	local strAdd = ' '
    	editor:LineEnd()
    	strAdd = getSpaces() or strAdd
    	editor:InsertText(editor.CurrentPos, strAdd..charComm..autoBreak..w)
    	editor:LineEnd()
    end
    
    
    function CommentHitKey:OnKey(_keycode)
    	if fCommentModeOn then                                       -- fortsetzender Kommentarmodus ist aktiv
    		local fBreak = isLFpos()
    		if fIsEnter then
    			fIsEnter = false
    			local s, e = getSpaces(), ''
    			if charBreak2:len() > 0 then e = charBreak2..' ' end
    			editor:InsertText(editor.CurrentPos, s..charComm..e)
    			editor:LineEnd()
    		end
    		if _keycode == 13 then
    			fIsEnter = true
    			editor:InsertText(editor.CurrentPos, ' '..charBreak1)
    			editor:LineEnd()
    		elseif _keycode == 32 and fBreak then                    -- Leerzeichen u. Position fð² šeilenwechsel erreicht (automatischer Zeilenwechsel)
    			fNext = true                                               -- Marker neue Zeile
    		elseif _keycode == 40 then                                  -- Pfeil_ab (manueller Zeilenwechsel)
    			fNext = true  fIsNewLine = true                            -- Marker neue Zeile und Marker in-neuer-Zeile
    		elseif fNext then                                           -- in neuer Zeile ==> Kommentarzeichen einfð§¥®
    			fNext = false
    			if not fIsNewLine then                                     -- bei automatischem Wechsel (wenn in den properties ein Umbruchsymbol definiert):
    				editor:InsertText(editor.CurrentPos, charBreak1)          -- am Ende Umbruchsymbol aus den properties anh寧en
    			end
    			ContinuousComment()
    		end
    	end
    	return nil
    end
    
    
    function CommentModeActivate()
    	if not fCommentModeOn then
    		editor:LineEnd()
    		column = editor.Column[editor.CurrentPos]
    		editor.Cursor = 8                           -- Cursor wechseln (Hand)
    		editor:InsertText(editor.CurrentPos, charComm)
    		editor:LineEnd()
    	else
    		editor.Cursor = -1                          -- Cursor zurück auf Standard
    	end
    	fCommentModeOn = not fCommentModeOn
    end
    Alles anzeigen

    Version für SciTE-RU

    v 0.2
    Code
    -- TIME_STAMP   2012-02-18 00:16:28   v 0.2
    
    
    
    
    
    
    --[[ FUNCTION: Continuous Comment Mode
    ----------------------------------------------------------------------------------------------------------------------------------
    DESCRIPTION
    
    
    	The function is activated using a hotkey. If the mode is active, the cursor appears as a hand. At the current cursor position
    	will inserted chars from properties ('ContinuousComment.Chars.*.au3') e.g. "; ==".
    
    
    	AUTO BRAKE:
    	In properties 'ContinuousComment.LFpos.*.au3' is determinate at which position should skip to next line.
    	It's triggered by press key <space> and position is greater than or equal to position from properties. So you can continuous
    	write comments and if the breakpoint is reached - automatically jumps the cursor to next line and inserts command-char at the
    	same position like in line before. If length of code in next line greather than the comment start position before, the comment
    	in this line starts behind the code.
    	Optional, contiguous comment with automatic line breaks are marked by additional break character.
    	If the last word in line overrides the breakposition, this word will moved to next line.
    
    
    	MANUALLY BRAKE:
    	You can manually skip to next line by press key <arrow down>. To appear in the next line no comment can turn "down arrow"
    	to the next line to be changed (in the current row will be no comment character set).
    	In addition, a manual break can generated with simultaneous insertion of a blank line by hit the <ENTER> key. Markers are set,
    	as with a manual break. The comment is continued at the same position like before.
    
    
    	Stops the continuous-comment mode again with the hotkey, which is also used for launch. The cursor is reset.
    ----------------------------------------------------------------------------------------------------------------------------------
    INSTALLATION
    
    
    	Rename the attached file to "ContinuousCommentsRu.lua".
    	Save the script "ContinuousCommentsRu.lua" to folder "..\SciTE-RU\tools\".
    
    
    	entries in "SciTEUser.properties":
    		ContinuousComment.LFpos.*.au3=170                   <== line position for automatically line break
    		ContinuousComment.Chars.*.au3=;                     <== Character(s) that begins each comment line
    		ContinuousComment.BreakCharsLast.*.au3=˜ ˜ ›          <== [optional] Character(s) at line end on rows with automatically line break
    		ContinuousComment.BreakCharsNext.*.au3=›            <== [optional] Character(s) at next line on rows with automatically line break (in front of your text)
    		ContinuousComment.NewLine.WithEnter.Enable.*.au3'   <== insert new line (with comment at same position) by hit ENTER in comment mode (=1)
    
    
    		# 36 Comment Continuous
    		command.name.36.*=Activate Comment Mode
    		command.36.*=CommentModeActivate
    		command.mode.36.*=subsystem:lua,savebefore:no
    		command.shortcut.36.*=Ctrl+Shift+K                  <== desired hotkey
    
    
    	entrie in "..\SciTE-RU\tools\SciTEStartup.lua"
    		dofile (props["SciteDefaultHome"].."\\tools\\ContinuousCommentsRu.lua")   <== at the end of the file !!
    ----------------------------------------------------------------------------------------------------------------------------------
    ]]
    
    
    --[[ FUNKTION: Kontinuierlicher Kommentar Modus
    ----------------------------------------------------------------------------------------------------------------------------------
    BESCHREIBUNG
    
    
    	Per Hotkey wird die Funktion aktiviert. Dabei wird an der aktuellen Cursorposition die in den properties
    	('ContinuousComment.Chars.*.au3') festgelegte Zeichenfolge gesetzt (z.B. "; ==").
    
    
    	AUTO UMBRUCH:
    	In den properties 'ContinuousComment.LFpos.*.au3' wird festgelegt an welcher Spaltenposition ein automatischer Wechsel auf die
    	nächste Zeile erfolgen soll (Trigger: Leerzeichen an Position gleich od. größer Spaltenangabe aus den properties). Man kann
    	also einfach fortlaufend seinen Kommentar schreiben und er wird automatisch in der Folgezeile hinter dem Code, an derselben
    	Spaltenposition wie in der vorigen Zeile, fortgesetzt. Ist der Code in der Folgezeile länger, beginnt der Kommentar erst
    	dahinter.
    	Überschreitet der Code die Umbruchposition, so wird das letzte Wort mit in die neue Zeile übernommen
    
    
    	MANUELLER UMBRUCH:
    	Manuell kann jeder Zeit mit "Pfeil ab" auf die Folgezeile gewechselt werden. Soll in der Folgezeile kein Kommentar erscheinen,
    	kann wiederum mit "Pfeil ab" zur nächsten Zeile gewechselt werden (in der momentanen Zeile wird dann kein Kommentarzeichen
    	gesetzt).
    	Ausserdem kann mit <ENTER> ein manueller Umbruch erzeugt werden mit gleichzeitigem Einfügen einer Leerzeile. Dabei wird die
    	Umbruchmarkierung (sofern in den properties festgelegt) genau wie beim manuellen Umbruch erzeugt. Der Kommentar wird wiederum
    	spaltengenau fortgesetzt.
    
    
    	Beendet wird der Kontinuierliche-Kommentar-Modus wiederum mit dem Hotkey, das auch zum Start verwendet wird.
    ----------------------------------------------------------------------------------------------------------------------------------
    INSTALLATION
    
    
    	Das Skript "ContinuousCommentsRu.lua" im Ordner "..\SciTE-RU\tools\" speichern.
    
    
    	Einträge in "SciTEUser.properties":
    		ContinuousComment.LFpos.*.au3=150                   <== gewünschte Position für automatischen Zeilenwechsel beim Kommentar schreiben
    		ContinuousComment.Chars.*.au3=;                     <== Zeichenfolge mit der jede Kommentarzeile beginnt (Leerzeichen wird automatisch angefügt)
    		ContinuousComment.BreakCharsLast.*.au3=˜ ˜ ›          <== [optional] Zeichen am Zeilenende bei automatischem Umbruch
    		ContinuousComment.BreakCharsNext.*.au3=›            <== [optional] Zeichen am Anfang der Folgezeile bei automatischem Umbruch
    		ContinuousComment.NewLine.WithEnter.Enable.*.au3'   <== neue Zeile (mit Kommentar an derselben Position) einfügen mit Enter im Kommentar-Modus (=1)
    
    
    		# 36 Comment Continuous
    		command.name.36.*=Kommentarmodus aktivieren
    		command.36.*=CommentModeActivate
    		command.mode.36.*=subsystem:lua,savebefore:no
    		command.shortcut.36.*=Ctrl+Shift+K                  <== gewünschter Hotkey
    
    
    	Eintrag in "..\SciTE-RU\tools\SciTEStartup.lua"
    		dofile (props["SciteDefaultHome"].."\\tools\\ContinuousCommentsRu.lua")    <== Am Dateiende anfügen!
    ----------------------------------------------------------------------------------------------------------------------------------
    ]]
    
    
    
    
    
    
    local lfPos = tonumber(props['ContinuousComment.LFpos.*.au3'])
    local charComm = props['ContinuousComment.Chars.*.au3']..' '
    local charBreak1 = props['ContinuousComment.BreakCharsLast.*.au3']
    local charBreak2 = props['ContinuousComment.BreakCharsNext.*.au3']
    local fNewLine = false
    if tonumber(props['ContinuousComment.NewLine.WithEnter.Enable.*.au3']) == 1 then fNewLine = true end
    
    
    local fCommentModeOn, fNext, fIsNewLine, fIsEnter = false, false, false, false
    local lastLine, column, col
    
    
    local getSpaces = function()
    	col = editor.Column[editor.CurrentPos]
    	local s = ''
    	if col < column then
    		s = string.rep(' ', column - col)
    	end
    	return s
    end
    
    
    local isLFpos = function()
    	local pos = editor.Column[editor.CurrentPos]
    	if pos >= lfPos then
    		return true
    	else
    		return false
    	end
    end
    
    
    local ContinuousComment = function()
    	local autoBreak, w = '', ''
    	if not fIsNewLine then
    		local pos = editor.Column[editor.CurrentPos]
    		if pos > lfPos then
    			editor:WordLeftExtend()
    			w = editor:GetSelText()
    			editor:ReplaceSel('')
    		end
    		editor:GotoLine(editor:LineFromPosition(editor.CurrentPos) +1)
    		if charBreak2:len() > 0 then autoBreak = charBreak2..' ' end
    	else
    		fIsNewLine = false
    	end
    	local strAdd = ' '
    	editor:LineEnd()
    	strAdd = getSpaces() or strAdd
    	editor:InsertText(editor.CurrentPos, strAdd..charComm..autoBreak..w)
    	editor:LineEnd()
    end
    
    
    
    
    AddEventHandler("OnKey", function(_keycode)
    	if fCommentModeOn then                                       -- fortsetzender Kommentarmodus ist aktiv
    		local fBreak = isLFpos()
    		if fIsEnter then
    			fIsEnter = false
    			local s, e = getSpaces(), ''
    			if charBreak2:len() > 0 then e = charBreak2..' ' end
    			editor:InsertText(editor.CurrentPos, s..charComm..e)
    			editor:LineEnd()
    		end
    		if _keycode == 13 then
    			fIsEnter = true
    			editor:InsertText(editor.CurrentPos, ' '..charBreak1)
    			editor:LineEnd()
    		elseif _keycode == 32 and fBreak then                    -- Leerzeichen u. Position fð² šeilenwechsel erreicht (automatischer Zeilenwechsel)
    			fNext = true                                               -- Marker neue Zeile
    		elseif _keycode == 40 then                                  -- Pfeil_ab (manueller Zeilenwechsel)
    			fNext = true  fIsNewLine = true                            -- Marker neue Zeile und Marker in-neuer-Zeile
    		elseif fNext then                                           -- in neuer Zeile ==> Kommentarzeichen einfð§¥®
    			fNext = false
    			if not fIsNewLine then                                     -- bei automatischem Wechsel (wenn in den properties ein Umbruchsymbol definiert):
    				editor:InsertText(editor.CurrentPos, charBreak1)          -- am Ende Umbruchsymbol aus den properties anh寧en
    			end
    			ContinuousComment()
    		end
    	end
    	return nil
    end)
    
    
    function CommentModeActivate()
    	if not fCommentModeOn then
    		editor:LineEnd()
    		column = editor.Column[editor.CurrentPos]
    		editor.Cursor = 8                           -- Cursor wechseln (Hand)
    		editor:InsertText(editor.CurrentPos, charComm)
    		editor:LineEnd()
    	else
    		editor.Cursor = -1                          -- Cursor zurück auf Standard
    	end
    	fCommentModeOn = not fCommentModeOn
    end
    Alles anzeigen

    Dateien

    ContinuousComment.jpg 38,37 kB – 0 Downloads ContinuousComments[0.7].lua 9,63 kB – 517 Downloads ContinuousCommentsRu[0.2].lua 9,66 kB – 495 Downloads
  • run befehl funzt nicht

    • BugFix
    • 12. Februar 2012 um 17:28
    Zitat von WiDDoW

    wo ist das? kann ich sehen ob diese Pfadvariablen noch stimmen?


    Kannst du:

    Code
    <Systemsteuerung\System und Sicherheit\System> 
        <Erweiterte Systemeinstellungen> 
            <Umgebungsvariablen> 
                <Systemvariablen> 
                Eintrag Variable: Path
                muss enthalten: ..%SystemRoot%;%SystemRoot%\system32;.. (sollte bei 64Bit ähnlich sein)
  • run befehl funzt nicht

    • BugFix
    • 12. Februar 2012 um 16:10

    Systemanwendungen brauchen keinen Pfad, der ist bei den Pfadvariablen registriert. Es reicht also vollkommen:

    [autoit]

    Run('calc.exe')

    [/autoit]


    Alternativ wäre dies der korrekte Pfad:

    [autoit]

    Run(@SystemDir & '\calc.exe')

    [/autoit]
  • RegEx alle außer...?

    • BugFix
    • 10. Februar 2012 um 19:18

    Und wenn du Antworten auf deine Fragen bekommst, solltest du diese lesen und auch testen.
    Dann hättest du gemerkt, dass mein Pattern die eckigen Klammern nicht zurückgibt. Und nochmal: Eine Pipe im Set - was soll das? Ein Set setzt ein ODER für alle im Set enthaltenen Zeichen, das ist ja dessen Sinn. Deshalb ist es genauso unsinnig zweimal eine Negation "^" zu setzen.
    Setze dich bitte gründlich mit der Hilfe auseinander, das bringt dich am Besten voran.

    Im übrigen stimme ich Andy zu: In AutoIt solltest du RegExp nur dann einsetzen, wenn es dir einen Vorteil gegenüber String-Funktionen verschafft.

  • Das Thema mit den Virenscanner

    • BugFix
    • 10. Februar 2012 um 14:14

    Schalte beim Kompilieren auf jedenfall den UPX-Packer ab. Der wird häufig als Schädling interpretiert.

  • RegEx alle außer...?

    • BugFix
    • 10. Februar 2012 um 14:03

    Was soll die Pipe im Set?
    mit [XYZ] bildest du ein Set, das nach dem enthaltenen Pattern sucht. Mit "[^\[\]]" hast du ein negierendes Set, d.h. du bekommst alles ausser den im Set angegebenen Zeichen. Quantifier kannst du selber anhängen, wenn du nicht jedes Zeichen einzeln haben willst.

  • RegEx alle außer...?

    • BugFix
    • 10. Februar 2012 um 12:05

    Metazeichen - dazu gehören die Klammern - müssen mit einem Backslash maskiert werden: \[

  • Variablen werden nicht ausgegeben

    • BugFix
    • 9. Februar 2012 um 16:13

    Schau mal in die AutoIt-Hilfe, welchen Datentyp

    [autoit]

    _StringBetween

    [/autoit]

    zurückgibt. ;)

  • Array aus einen mehrdimensionalen Array benutzen

    • BugFix
    • 8. Februar 2012 um 21:51

    Wenn du ein Mehrdimensionales Array hast, kannst du auch nur mehrdimensionale Elemente übergeben. Du versuchst ein 1D-Array zu übergeben, dass ja gar nicht existiert.
    Ausserdem stimmt schon die Deklaration nicht. Du deklarierst [2][2] und setzt Elemente für ein [3][2] - Array
    Oder soll das keine Deklaration darstellen sondern die Zuweisung an das Arrayelement [2][2] ?
    Übergeben könntest du zum Bsp. $array[0][0]

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 7. Februar 2012 um 17:57
    Zitat von ineedhelp

    warum benutzt Du dann nicht die GetExtensionName-Methode.


    Boah, da fragst du mich was nach 3 1/2 Jahren... :whistling:

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 6. Februar 2012 um 21:11

    Bau dir am einfachsten direkt in die Funktion deine Ausschlußordner ein:

    [autoit]

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    ; ================================= Hier die auszuschließenden Ordner einbinden ===================================================================
    If $Folder = "Dein_Start_Pfad" And ($Subfolder = "UnterOrdner1_zum_Ausschluß" Or $Subfolder = "UnterOrdner2_zum_Ausschluß" .....) Then ContinueLoop
    ; ==================================================================================================================================================
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]
  • Probleme mit Fileinstall()

    • BugFix
    • 6. Februar 2012 um 13:10

    Ganz simpel:
    Umlaute gehören NIEMALS in Datei-/Ordnernamen. Auch wenn die deutsche Windows-Version solchen Quatsch zuläßt - es beißt sich - wie du siehst - sehr schnell mit anderen Anwendungen.

  • Excel ändert Kommazahlen in ein Datum

    • BugFix
    • 5. Februar 2012 um 22:31

    Boah, alles stückweise. Wie wär es denn, wenn du uns dein Skript zeigst? :whistling:


    Edit:
    Falls da was mit dem Format nicht stimmt, verwende mal Folgendes um das Format der Zelle auf "Number" zu setzen:

    [autoit]

    $oExcel = _ExcelBookOpen($Path, 0)
    ; ....
    $oExcel.Activesheet.Range($Spalte & $Zeile).NumberFormat = "#"
    ;== $Spalte & $Zeile in der Form "A1"

    [/autoit]
  • Excel ändert Kommazahlen in ein Datum

    • BugFix
    • 5. Februar 2012 um 22:26

    Ist das jetzt eine AutoIt-Frage (Zugriff auf Excel mit Skript) oder eine pure Excel-Frage?

  • Andy hat Geburtstag

    • BugFix
    • 4. Februar 2012 um 19:09

    Hau in die Tasten Alter. Auf ein Neues. :thumbup:

  • ISN AutoIt Studio

    • BugFix
    • 4. Februar 2012 um 19:06
    Zitat von YellowWeedSeed

    Also da ja viele bei größeren Projekten in teams arbeiten währe es doch toll wenn man gleich sehen würde was der jeweils andere gerade coded.


    Also ich halte es nicht für sinnvoll so etwas zu integrieren, zumal der Aufwand sicher dem Nutzen entgegensteht. Derartige Tools gibt es doch bereits in sehr guter Qualität (z.B. Gobby). Nach meiner Erfahrung werden diese aber wenig genutzt.

  • Hover Effekt beim Bild Problem

    • BugFix
    • 4. Februar 2012 um 18:53
    Zitat von Julien

    allerdings bekomme ich es nicht ganz hin, dass
    es wieder rückgänig gemacht wird, wenn der Coursor nicht über de Control liegt.


    Da hast du vergessen die Statusvariable zu verwenden, wie in $var's Skript zu sehen.

    Hier mal kurz, ungetestet:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ;~ $CheckboxHover = GUICtrlCreatePic("C:\Users\User\Documents\My\CheckboxHover.jpg", 64, 56, 54, 55)
    $picOn = "C:\Users\User\Documents\My\CheckboxOn.jpg"
    $picOff = "C:\Users\User\Documents\My\CheckboxOff.jpg"
    $fState = False

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

    $Form1 = GUICreate("Form1", 183, 165, 192, 124)
    $Checkbox = GUICtrlCreatePic($picOff, 64, 56, 54, 55)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    $Pos = GuiGetCursorInfo()
    Switch $Pos[4]
    Case $Checkbox
    If Not $fState Then
    GUICtrlSetImage($Checkbox, $picOn)
    $fState = True
    EndIf
    Case Else
    If $fState Then
    GUICtrlSetImage($Checkbox, $picOff)
    $fState = False
    EndIf
    EndSwitch
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Listview Item Handle

    • BugFix
    • 4. Februar 2012 um 16:48

    Wo ist dein Code?
    Warum verwendest du überhaupt die Handle? Sehe dafür keinerlei Notwendigkeit, deshalb wäre es hilfreich deinen Code zu sehen.

  • Hover Effekt beim Bild Problem

    • BugFix
    • 4. Februar 2012 um 10:21

    $var
    Warum prüfst du die Position ab um zu wissen, ob die Maus über dem Control ist?
    Schau mal in die Hilfe zu: "GUIGetCursorInfo"

    Code
    $array[4] = ID des Controls, über dem sich der Mauszeiger gerade befindet (0 wenn nicht über einem Item)


    Es läßt sich also direkt die Control-ID vergleichen. ;)

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™