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

  • _ExcelBookOpen (Return Values, falls das Passwort nicht stimmt)

    • BugFix
    • 27. März 2012 um 19:31
    Zitat von water

    Ab 3.3.9.2 schon.


    Mag sein :D - aber ich hab den Betas abgeschworen, da sie i.A. doch recht verbugt sind. Da nutze ich lieber die Funktionen, von denen ich weiß dass es klappt. ;)

  • _ExcelBookOpen (Return Values, falls das Passwort nicht stimmt)

    • BugFix
    • 27. März 2012 um 18:01
    Zitat von GlammaKid

    If .ActiveWorkbook.Sheets($i).Visible = $xlSheetVisible Then


    Die Codezeile kann nie funktionieren: If .ActiveWorkbook.Sheets($i).Visible  ;)
    Und du kannst Objekt-Fehler nicht mit "If @error..." abfangen. Diese Aufgabe übernimmt ja der Error-Handler.
    Es ist doch völlig wurscht, welchen Fehlercode du bei falschem Passwort generierst. Schreib doch die Fehlerfunktion einfach so:

    [autoit]


    Func MyErrFunc()
    ConsoleWrite('Passwortfehler bei Datei: ' & $sFilePath1 & @CRLF)
    EndFunc

    [/autoit]

    Die Variable $g_eventerror kannst du dir hier schenken. Im Fehlerfall wird die definierte Funktion (MyErrFunc) aufgerufen und gibt dir die gewünschte Info.

  • _ExcelBookOpen (Return Values, falls das Passwort nicht stimmt)

    • BugFix
    • 25. März 2012 um 22:02

    Der com-Error Handler, wie du ihn in der Hilfe findest, ist schon das richtige Instrument.
    Welche Werte die Fehler haben ist eigentlich zweitrangig. Wichtig ist, dass sie erkannt werden und du reagieren kannst ohne dass dein Programm abstürzt.
    Und wenn ich dich recht verstanden habe, treten Fehler doch nur auf, wenn du mit falschem Passwort öffnen willst.

  • IfWinExist

    • BugFix
    • 25. März 2012 um 15:13

    Einen Befehl "IfWinExist" gibt es nicht. Falls du "If WinExists(..)" meinst, achte auf die Schreibweise und in welcher Form die Parameter übergeben werden. Erklärt die Hilfe ausgiebig.

  • SciTE - alte Farben oder neue Farben - Abstimmung

    • BugFix
    • 24. März 2012 um 22:57

    Wie kommt ihr zu einer Änderung der Syntaxdarstellung? Wahrscheinlich die alte SciTE-Version erst deinstalliert, dummer Fehler. :D
    Immer schön drüberinstallieren, dann bleiben auch eure Einstellungen erhalten.

    Die geänderte Darstellung in der Hilfe stört mich nicht. Wär ja schlimm, wenn man Code nur versteht, wenn er in ewig gleicher Syntaxdarstellung zu lesen ist. :whistling:

  • Neuer Besucherrekord?

    • BugFix
    • 24. März 2012 um 22:50

    Ich möchte mal nicht unerwähnt lassen, dass wir ein Forum zum Austausch von Gedanken, Ideen etc. in Zusammenhang mit der Skriptsprache AutoIt sind!
    Wir haben nicht unbegründet die schwachsinnigen Postingzahl-Anzeigen in den Postings abgeschafft. Und da sollen wir uns freiwillig wie degenerierte Affen zu einer festen Zeit einfinden und jubilieren?
    Nein Danke! Ich habe noch mehr als eine Hirnzelle und die sind zudem noch funktionsfähig.

    Fazit: 100% Schwachsinn.

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 24. März 2012 um 22:38
    Zitat von BigRox

    Kann man dieses Tool auch so erweitern, dass auch diese paarigen Zeichen " < > " verarbeitet werden ?


    Das ist machbar. Aber das braucht man doch i.A. bei html als Tag-Begrenzer - dann sollte doch als schließendes Element "/>" verwendet werden, oder?

    Edit:
    Hier mal die Lösung, ersetze einfach diese Parts in deinem Skript. D.h. aber auch, dass du nicht mehr einfach "<" schreiben kannst - du erhältst automatisch das Gegenstück dazu.

    Code
    -- german keyboard
    tCode['GE'] = {}
    tCode['GE']['SHIFT'] = { [50] = '"', [191] = "'", [56] = '(', [57] = ')', [226] = '>' }
    tCode['GE']['CTRL_ALT'] = { [55] = '{', [56] = '[', [57] = ']', [48] = '}' } 
    tCode['GE']['RAW'] = { [226] = '<' }
    
    
    -- paired chars
    local tPairs = {}
    tPairs['Left']  = { ['('] = ')', ['{'] = '}', ['['] = ']', ['"'] = '"', ["'"] = "'", ["<"] = ">" } 
    tPairs['Right'] = { [')'] = '(', ['}'] = '{', [']'] = '[', ['"'] = '"', ["'"] = "'", [">"] = "<" }
    Alles anzeigen
  • Controls IN Controls, Abhängigkeit zueinander

    • BugFix
    • 24. März 2012 um 15:32

    Einfach mal Google benutzen?
    GUIScroll-UDF - scrollbare GUIs
    [ gelöst ] Gruppe oder Bereich in GUI scrollen

  • "Listview-UDF" oder wie man User zur Verzweiflung bringt

    • BugFix
    • 23. März 2012 um 21:30

    Sehr seltsam, vielleicht irgendein Problem mit meinem Win7? (OS:WIN_7 Pro/Service Pack 1 CPU:X64 OS:X64)
    Ich werde mal in der VM testen.

  • "Listview-UDF" oder wie man User zur Verzweiflung bringt

    • BugFix
    • 23. März 2012 um 20:47

    Ich erstelle generell alle Listview so:

    [autoit]

    $ID_LV = GuiCtrlCreateListview(..)
    ; Handle holen für UDF
    $hLV = GuiCtrlGetHandle($ID_LV)

    [/autoit]


    Und jetzt ist erstmalig dieses Phänomen aufgetreten, meine Listview wurden nicht geleert, weil meine ItemCount-Abfrage mit dem Handle nicht ausgeführt wurde. Doch bis ich das herausgefunden hatte war eine Stunde "Fehler"suche notwendig. Denn wer rechnet schon damit, dass ein bisher immer auf diesem Weg funktionierender Ablauf plötzlich versagt.

  • "Listview-UDF" oder wie man User zur Verzweiflung bringt

    • BugFix
    • 23. März 2012 um 14:44

    Ich habe noch nicht alle Funktionen durchgetestet, hier ein paar, die die ich gerade beim Wickel habe und die mich zur Fehlersuche gezwungen haben:

    _GUICtrlListView_DeleteAllItems(NUR HANDLE)
    _GUICtrlListView_GetColumnCount(NUR ID)
    _GUICtrlListView_GetItemText(NUR ID)

    Bei den anderen habe ich noch nicht auf Ausschließlichkeit geprüft (habe ich auch nicht unbedingt Lust zu).
    Ich werde lieber zurückkehren direkt zu den _SendMessage - Funktionen (eigentlich sollte die Listview-UDF ja eine komfortable Behandlung dieser Funktion darstellen).

    Im EN-Forum nachfragen? - Da hast du aber mehr Resonanz, wenn du einen Stein ins Wasser wirfst. :whistling:

  • "Listview-UDF" oder wie man User zur Verzweiflung bringt

    • BugFix
    • 23. März 2012 um 14:19

    Ich bin gerade so richtig stinkig und damit es euch nicht auch so ergeht, will ich euch meinen Ärger nicht vorenthalten.

    Ich schreibe seit geraumer Zeit an einem recht umfangreichen Skript (bereits mehrere tausend Zeilen Code) und dort sind auch einige Listview enthalten.
    Bisher hatte ich mit der letzten AutoIt-Version gearbeitet, nun verwende ich die 3.3.8.0 und hier hat sich etwas Gravierendes getan, was mit keinem Wort in den Changes erwähnt wird:
    Die meisten UDF-Funktionen arbeiten ausschließlich mit der ID! Ein übergebenes Handle wird ignoriert.
    Das ist ja eine Perversion in sich, da die UDF in ihrer Funktion .._Create() ein Handle zurückgibt, dass nun für die weiteren Funktion fast nutzlos ist. Die notwendige ID erhält man aber nicht und muß sie sich per WinAPI-Funktion besorgen.

    Ich habe bald eine Stunde damit verbracht, diesen blöden Bug zu finden. Zumal ja nicht alle Funktionen betroffen sind. Einige verwenden ausschließlich das Handle. Völlig konfus diese UDF.


    Da doch öfter Fragen nach sinnvollen Aufgaben gestellt werden, was man denn skripten kann. Das wäre eine sehr nützliche Aufgabe, die Listview-UDF entbuggen und in eine AutoIt-konforme Gestalt gießen.
    Es ist mir ehrlich schleierhaft, wie dieses Gemurks in die offizielle AutoIt-Version übernommen werden konnte. :wacko:

  • Unterschiedlicher Button Style

    • BugFix
    • 21. März 2012 um 12:38

    Mir scheint, dass du etwas viel Aufwand betreibst.
    Ich wende das i.A. so an:

    [autoit]

    $picBtnActive = "Pfad_aktive_Btn.bmp"
    $picBtnDeactive = "Pfad_deaktive_Btn.bmp"
    ...
    ...
    $Btn_1 = GUICtrlCreateButton('', 10, 10, 25, 25, $BS_BITMAP)
    GUICtrlSetImage(-1, $picBtnActive)
    ...
    ...

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

    Func _Switch($_ID) ; Status ändern und gleichzeitig Bild wechseln
    If BitAND(GUICtrlGetState($_ID), $GUI_DISABLE) Then
    GUICtrlSetState($_ID, $GUI_ENABLE)
    GUICtrlSetImage($_ID, $picBtnActive)
    Else
    GUICtrlSetState($_ID, $GUI_DISABLE)
    GUICtrlSetImage($_ID, $picBtnDeActive)
    EndIf
    EndFunc

    [/autoit]
  • StringRegExp Funktionen

    • BugFix
    • 21. März 2012 um 11:34

    Beim Erstellen von Pattern kommt es auf genaue Angaben möglicher Inhalte an. Ich vermute, dass in dem ungewollten roten Bereich auch Nicht-Text-Zeichen enthalten sind (Tag-Abgrenzungen), die dann das Ergebnis verfälschen. Zumindest auf das von dir eingestellte Muster trifft das Pattern 100%-ig. ;)

  • StringRegExp Funktionen

    • BugFix
    • 21. März 2012 um 11:18
    Zitat von Slider99

    schade, ich war wohl zu ungenau - sorry


    Ich versteh dich nicht: Genau das kommt als Ergebnis raus, vielleicht hast du das falsche Flag gesetzt?

    [autoit]

    #include <Array.au3>
    $s = '<h1><a href="httpx://aa-aaaaa.aa/aaaaee-aaaaa-aaaa-aaa-aaa-aaa/">bbb.bbb.bbb.bbb.bbb-bbb</a></h1>'
    $a = StringRegExp($s, '(?:">)(.+)(?></a)', 3)
    _ArrayDisplay($a)

    [/autoit]
  • StringRegExp Funktionen

    • BugFix
    • 21. März 2012 um 10:26

    Bitte:
    '(?:">)(.+)(?></a)'

  • StringRegExp Funktionen

    • BugFix
    • 21. März 2012 um 10:12

    Deine Frage ist viel zu ungenau. Daraus läßt sich kein verläßliches Pattern erstellen.
    Steht dort wirklich das Wort "ignorieren" oder ein beliebiger Inhalt?
    Ist der Anfang (wort) und das Ende (endesatz) ein Wort (alphabetisch) oder ist es alphanumerisch oder tatsächlich "endesatz" ?

    Wenn man nicht weiß, welche Zeichen in den einzelnen "Wörtern" enthalten sein können, ist es unmöglich ein treffsicheres Pattern zu gestalten.

  • Unterschiedlicher Button Style

    • BugFix
    • 21. März 2012 um 10:05
    Zitat von shrike

    Funktioniert, ist aber, wie schon erwähnt, aus meiner Sicht erher unschön.


    Was ist daran "unschön"? Es ist funktionell, einfach zu handhaben und erfüllt seinen Zweck zur Zufriedenheit. Und wenn du es zur "schönen" Lesbarkeit im Skript in eine Funktion auslagerst (State setzen und Bildzuweisung) ist doch alles im grünen Bereich.
    Und zusätzlich ist diese Lösung auch noch diejenige, die die wenigsten Ressourcen beansprucht - finde ich "schön". ;)

  • Array bearbeiten

    • BugFix
    • 21. März 2012 um 09:57

    Ich vermute mal (Skript hast du ja nicht gezeigt), dass du den Text mit _FileReadToArray() einliest.
    Dann arbeitest du das ja zeilenweise ab. Einfach in der Schleife abfragen:

    [autoit]

    If StringLeft($array[$i], 1) = "@" Then ContinueLoop

    [/autoit]
  • SciTE - kontinuierlicher Kommentarmodus für AutoIt (auch für SciTE-RU)

    • BugFix
    • 18. März 2012 um 18:48

    1. Bitte setze Code in Code-Tags (wozu haben wir die im Editor?). Code als Plain-Text läßt sich beim besten Willen nicht lesen.

    2. Deine SciTEStartup.lua sollte etwa Folgendes enthalten (die zwingend erforderlichen Einträge habe ich mit "X" markiert:

    Spoiler anzeigen
    Code
    -- A table listing all loaded files.
    X LoadLuaFileList = { }
    --------------------------------------------------------------------------------
    -- LoadLuaFile(file, directory)
    --
    -- Helper function for easily loading Lua files.
    --
    -- Parameters:
    --	file - The name of a Lua file to load.
    --	directory - If specified, file is looked for in that directory.  By default,
    -- 		this directory is $(SciTEDefaultHome)\Lua.
    --------------------------------------------------------------------------------
    X function LoadLuaFile(file, directory)
    	if directory == nil then
    		directory = props["SciteDefaultHome"] .. "\\Lua\\"
    	end
    	table.insert(LoadLuaFileList, directory .. file)
    	dofile(directory .. file)
    end	-- LoadLuaFile()
    
    
    -- Load all the Lua files.
    X LoadLuaFile("Class.lua")	-- Always load first.
    X LoadLuaFile("Common.lua")	-- Always load second.
    LoadLuaFile("AutoItPixmap.lua")
    LoadLuaFile("AutoHScroll.lua")
    LoadLuaFile("AutoItAutoComplete.lua")
    LoadLuaFile("LoadSession.lua")
    LoadLuaFile("AutoItIndentFix.lua")
    LoadLuaFile("EdgeMode.lua")
    LoadLuaFile("SmartAutoCompleteHide.lua")
    LoadLuaFile("Tools.lua")
    X LoadLuaFile("AutoItTools.lua")
    LoadLuaFile("AutoItGotoDefinition.lua")
    
    
    -- Start up the events (Calls OnStartup()).
    X EventClass:BeginEvents()
    
    
    LoadLuaFile("CommentsDelHide.lua")
    LoadLuaFile("EdgingSelection.lua")
    LoadLuaFile("EditOperations.lua")
    LoadLuaFile("AutoStampSaveVersion.lua")
    LoadLuaFile("LUA_TEST.lua")
    LoadLuaFile("MyDebug.lua")
    LoadLuaFile("AU3FuncsShow.lua")
    LoadLuaFile("HiResTimer.lua")
    LoadLuaFile("ManageIncludes.lua")
    LoadLuaFile("CamelJump.lua")
    LoadLuaFile("script_sql.lua")
    X LoadLuaFile("ContinuousComments.lua")
    LoadLuaFile("VarGetTipp.lua")
    Alles anzeigen

    Verwende mal die OnKey-Funktion mit Konsolenausgabe:

    Spoiler anzeigen
    Code
    function CommentHitKey:OnKey(_keycode, _shift)
    	if fCommentModeOn then                                       -- fortsetzender Kommentarmodus ist aktiv
    		local fBreak = isLFpos()
    print('Umbruchposition erreicht:', fBreak)                         -- Gibt an ob Umbruchposition erreicht true/false
    		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
    print('<ENTER>')                                                            -- Enter betätigt
    			fIsEnter = true
    			editor:InsertText(editor.CurrentPos, ' '..charBreak1)
    			editor:LineEnd()
    		elseif _keycode == 32 and fBreak then                    -- Leerzeichen u. Position für Zeilenwechsel erreicht (automatischer Zeilenwechsel)
    print('Umbruchposition und Space ==> jetzt muß Umbruch erfolgen')
    			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
    print('<Pfeil Ab> gedrückt')
    		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
    print('Jetzt wird Kommentarmarkierung in Folgezeile/od. nach Pfeil-ab in aktueller Zeile geschrieben')
    			ContinuousComment()
    		end
    	end
    	return nil
    end
    Alles anzeigen

    Dann sollte man den Fehler besser lokalisieren können.

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™