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

  • Simpler Blöder Fehler

    • BugFix
    • 29. November 2009 um 16:25
    Zitat von Reaker

    aber bei sachen wie cmd, explorer, calc, control und so funktioniert das nicht....

    Wie kommst du denn dadrauf? ?(

    [autoit]

    If FileExists(@SystemDir & '\cmd.exe') Then ConsoleWrite('OK' & @CRLF)

    [/autoit]
  • mit den schleifen krieg ichs nicht hin. bäuchte GOTO

    • BugFix
    • 29. November 2009 um 16:18
    Zitat von mathiluke

    nach deiner beschreibung sollte er beim continueloop eigentlich bei While1 (programzeile1) erneut starten.


    Und genau das passiert auch. Debugge einfach mal mit ConsoleWrite.
    Hier siehst du, dass es genau so funktioniert:

    Spoiler anzeigen
    [autoit]

    $i = 0
    $max = 10
    While 1
    $i += 1
    If $i = $max Then ExitLoop
    $z = Random(1,5,1)
    ConsoleWrite('Random 1 = ' & $z & @CRLF)
    Switch $z
    Case 1, 2
    ConsoleWrite($z & ' - ContinueLoop aus 1.Abfrage' & @CRLF)
    ContinueLoop
    Case 3, 4, 5
    ConsoleWrite('weiter' & @CRLF)
    EndSwitch
    $z = Random(1,5,1)
    ConsoleWrite('Random 2 = ' & $z & @CRLF)
    Switch $z
    Case 1, 2
    ConsoleWrite($z & ' - ContinueLoop aus 2.Abfrage' & @CRLF)
    ContinueLoop
    Case 3, 4, 5
    ConsoleWrite('weiter' & @CRLF)
    EndSwitch
    WEnd

    [/autoit]
  • AutoIt Fehler ! -> Cannot redeclare a Constant!

    • BugFix
    • 29. November 2009 um 16:03

    Ich kann dir keine klare Antwort darauf geben, habe nur selber gerade bemerkt, dass die GUIRichEdit.au3 der Beta Probleme macht. Vielleicht sind diese Probleme ja nicht an die UDF gebunden, sondern diese Version der Beta ist einfach nur total buggy? 8|
    Zumindest solltest du dich nicht wundern, wenn Probleme in der Beta auftreten - deshalb ist es ja die Beta.

  • Scrollbalken in einer RichEdit verstecken

    • BugFix
    • 29. November 2009 um 13:36
    Zitat von Raupi

    Ich denke die UDF ist veraltet. In der Beta von Autoit ist die GUIRichEdit.au3 enthalten


    Die UDF aus der Beta kann man leider nicht nutzen. Nach Beenden eines Skriptes existiert der Prozeß autoit3.exe weiterhin mit CPU-Last von 98%!
    Hab jetzt noch nicht weiter getestet, ob das nur diese UDF betrifft oder die Beta insgesamt so buggy ist. (Ich weiß schon, warum ich bei der Stable bleibe ;) )

  • Scrollbalken in einer RichEdit verstecken

    • BugFix
    • 29. November 2009 um 12:25

    Du mußt die Scrollmessage verwenden und dann selbst die sichtbaren Zeilen im Edit bewegen.
    Ich hab hier im Bsp. den Scrollleisten-Style rausgenommen. Durch das Abfragen von WM_MOUSEWHEEL kann man aber das Scrollereignis auswerten.
    Problem: Ich finde in der GUIRichEdit.au3 keine Möglichkeiten die erste sichtbare Zeile zu setzen. Diese Funktion ist nötig um dein eigenes Scrollen ohne Scrolleiste auszuführen.

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiRichEdit.au3>

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

    Global Const $WM_MOUSEWHEEL = 0x20A

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

    $text = _
    'Purpose' & @LF & _
    'Microsoft Windows Firewall and Windows Firewall with Advanced Security protect computers on which they are running from unsolicited network traffic. The Windows Firewall and Windows Firewall with Advanced Security APIs make it possible to programmatically manage the features of Windows Firewall (formerly known as Internet Connection Firewall) by allowing applications to create, enable, and disable firewall exceptions. The Windows Firewall with Advanced Security is available only on Windows Vista.' & @LF & _
    'Where Applicable' & @LF & _
    'The Windows Firewall API is intended for situations in which a software application or setup program must operate with adjustments to the configuration of the networking environment in which it runs. For example, a service that needs to receive unsolicited traffic can use this API to create exceptions that allow the unsolicited traffic.' & @LF & _
    'Developer Audience' & @LF & _
    'The Windows Firewall API is designed for use by programmers using C/C++, Microsoft Visual Basic development system, Visual Basic Scripting Edition, and JScript development software. Programmers should be familiar with networking concepts such as stateful packet filtering, TCP/IP protocol concepts, and network address translation (NAT).' & @LF & _
    'Run-Time Requirements' & @LF & _
    'The Windows Firewall API is supported on Windows XP with Service Pack 2 (SP2). For more specific information about which operating systems support a particular programming element, refer to the Requirements sections in the documentation.' & @LF & _
    'The Windows Firewall with Advanced Security API is available only on Windows Vista.'

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

    $Form1 = GUICreate("Form2", 414, 502, 303, 219)
    GUISetBkColor (0x0000FF)
    $Edit = _GUICtrlRichEdit_Create($Form1, 6, 9, 403, 361,BitOR($ES_WANTRETURN, $ES_MULTILINE, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_SetOLECallback($Edit)
    $Edit2 = GUICtrlCreateEdit("", 6, 375, 403, 91,$WS_VSCROLL+$ES_SUNKEN)
    GUICtrlSetData(-1, $text)
    $Button1 = GUICtrlCreateButton("Senden", 336, 471, 75, 25, 0)
    Dim $Form1_AccelTable[1][2] = [["{ENTER}", $Button1]]
    GUISetAccelerators($Form1_AccelTable)
    GUISetState(@SW_SHOW)

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

    GUIRegisterMsg($WM_MOUSEWHEEL, '_MY_WM_MOUSE_WHEEL')

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _Senden()
    EndSwitch
    WEnd
    Func _Senden()
    Local $Read = GUICtrlRead ($Edit2)
    GUICtrlSetData ($Edit2,"")
    _GUICtrlRichEdit_AppendText($Edit,$Read & @CR)
    EndFunc

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

    Func _MY_WM_MOUSE_WHEEL($hWnd, $Msg, $wParam, $lParam)
    Local $Delta = BitShift($wParam, 16), $posM[2], $overCtrl = 0, $Opt
    Local $posC = ControlGetPos($Form1, '', $Edit)
    Local $old = Opt('MouseCoordMode', 2)
    Local $posM = MouseGetPos()
    Opt('MouseCoordMode', $old)
    If ($posM[0] >= $posC[0] And $posM[0] <= $posC[0]+$posC[2]) And _
    ($posM[1] >= $posC[1] And $posM[1] <= $posC[1]+$posC[3]) Then
    $overCtrl = 1
    EndIf
    If Not $overCtrl Then Return $GUI_RUNDEFMSG
    Local $rows = Abs($Delta) /120
    Local $1stVisibleLine = _SendMessage($Edit, $EM_GETFIRSTVISIBLELINE)
    ConsoleWrite('$1stVisibleLine = ' & $1stVisibleLine & @crlf)
    If $Delta < 0 Then ; abwärts scrollen, Zeilen aufsteigend
    ConsoleWrite('Runter Zeilen: ' & $rows & @CRLF)
    ; 1stVisible +Rows
    Else ; hoch scrollen, Zeilen fallend
    ConsoleWrite('Hoch Zeilen: ' & $rows & @CRLF)
    ; 1stVisible -Rows
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Doppelgeburtstag

    • BugFix
    • 28. November 2009 um 14:58

    @doc: Danke dir und auch alles Gute für dich.
    Ähh..., darf ich auch mit deiner Frau Essen gehen? :D

  • Doppelgeburtstag

    • BugFix
    • 28. November 2009 um 14:37

    Schonmal ein großes Dankeschön an alle Gratulanten.
    Mit soviel Rückhalt kann ich getrost den kommenden 48 Jahren entgegensehen. :D

  • _API_SetFunc

    • BugFix
    • 28. November 2009 um 14:32

    Die Idee ist ja nicht verkehrt. Ich mache das ähnlich, allerdings schreibe ich zusätzlich einen Eintrag in die Auto-Vervollständigung.
    Setze den Hinweis mit dem Pfad um - dann paßt es ;)

  • _API_SetFunc

    • BugFix
    • 28. November 2009 um 13:46

    Deine Funktion wird wohl nur bei dir laufen.
    Den Pfad mußt du schon aus dem Installationseintrag der Registry abfragen, damit es allgemeingültig ist.

    [autoit]

    $ScitePath = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\SciTE.exe","")

    [/autoit]

    Weiterhin hast du die falsche Datei gewählt, da die "..\au3.api" bei jedem SciTE-Update überschrieben wird. Eigene Einträge gehören in die "..\au3.user.calltips.api".

  • Scrollbalken in einer RichEdit verstecken

    • BugFix
    • 28. November 2009 um 11:48

    Du solltest bei Verwendung von nicht in AutoIt eingebundenen UDF's einen Link dazu angeben.
    Ich habe auch eine "GuiRichEdit.au3", die enthält aber andere Funktionen. ;)

  • OnEvent reagiert bei Pic nicht...

    • BugFix
    • 27. November 2009 um 20:02

    Ich hab nix getestet - aber deine Funktion _onEvent arbeitet rekursiv. Kann mir nicht richtig vorstellen, wie das funktionieren soll. :rolleyes:
    Vielleicht liegt da das Problem? (oder ich hab nur grad 'nen Knoten im Hirn :P )

    Edit: Hast recht, nix Rekursion. ;) Da lag ich voll daneben. Also entweder Fernsehen oder Fragen beantworten ;)

  • Farbe in Registerleiste ändern

    • BugFix
    • 27. November 2009 um 19:43

    So z.B.

    Spoiler anzeigen
    [autoit]

    #include <TabConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>

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

    Global Const $ODT_TAB = 101
    Global Const $ODS_SELECTED = 0x0001
    Global Const $ODA_DRAWENTIRE = 0x1
    Global Const $ODS_FOCUS = 0x0010

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

    Global $aColTabItem[3][2] = [['Item1',0x11AADD],["Item2",0xEEBB99],["Item3",0x4763FF]] ; [[TabItem-Bezeichnung,TabItem-Color]]

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

    $hGUI = GUICreate("Draw Tab", 300, 200)
    $hTab = GUICtrlCreateTab(10, 10, 280, 180, $TCS_OWNERDRAWFIXED)
    $TabItem_1 = GUICtrlCreateTabItem("Item1")
    $TabItem_2 = GUICtrlCreateTabItem("Item2")
    $TabItem_2 = GUICtrlCreateTabItem("Item3")
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM")

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

    _GUICtrlTab_SetCurSel($hTab, 2)
    _GUICtrlTab_SetCurSel($hTab, 1)
    _GUICtrlTab_SetCurSel($hTab, 0)
    _GUICtrlTab_SetCurFocus($hTab, 1)

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam)
    Local $DRAWITEMSTRUCT = DllStructCreate("uint cType;uint cID;uint itmID;uint itmAction;uint itmState;" & _
    "hwnd hItm;hwnd hDC;dword itmRect[4];dword itmData", $lParam)
    If DllStructGetData($DRAWITEMSTRUCT, "cType") <> $ODT_TAB Then Return $GUI_RUNDEFMSG
    If DllStructGetData($DRAWITEMSTRUCT, "itmAction") <> $ODA_DRAWENTIRE Then Return $GUI_RUNDEFMSG
    Local $itmID = DllStructGetData($DRAWITEMSTRUCT, "itmID")
    Local $hDC = DllStructGetData($DRAWITEMSTRUCT, "hDC")
    Local $hItm = DllStructGetData($DRAWITEMSTRUCT, "hItm")

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

    Local $itmText = $aColTabItem[$itmID][0], $iBrushColor = $aColTabItem[$itmID][1]

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

    DLLCall("gdi32.dll","int","SetBkMode", "hwnd", $hDC, "int", 1)

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

    Local $iBrush = DLLCall("gdi32.dll","hwnd","CreateSolidBrush", "int", $iBrushColor)
    $iBrush = $iBrush[0]

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

    DLLCall("user32.dll","int","FillRect", "hwnd", $hDC, "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "hwnd", $iBrush)
    Local $tBuffer = DllStructCreate("char[256]")
    DllStructSetData($tBuffer, 1, $itmText)
    $itmText = DllStructGetData($tBuffer, 1)

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

    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 1) + 10, 1)
    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 2) + 5, 2)

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

    DllCall("user32.dll", "int", "DrawText", "hwnd", $hDC, "str", $itmText, "int", StringLen($itmText), _
    "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "int", $DT_LEFT)

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

    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • mit den schleifen krieg ichs nicht hin. bäuchte GOTO

    • BugFix
    • 27. November 2009 um 19:31

    In einer While/Do/For-Schleife kannst du jederzeit mit "ContinueLoop" an den Schleifenanfang springen. ;)

  • Problem beim Sortieren von Daten.

    • BugFix
    • 24. November 2009 um 23:09

    Hier mal ein Bsp. - Sortierung durch Klick auf den Spaltenkopf.

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    $gui = GUICreate('test')
    $lv = GUICtrlCreateListView('NR|Datum', 15,15,200,140)
    $hlv = GUICtrlGetHandle(-1)
    For $i = 1 to 15
    GUICtrlCreateListViewItem($i & '|' & Random(2000,2009,1) & '-' & StringFormat('%02d', Random(1,12,1)) & '-' & _
    StringFormat('%02d', Random(1,28,1)), $lv)
    Next
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($hlv)]

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
    $hWndListView = $hlv
    If Not IsHWnd($hWndListView) Then $hWndListView = GUICtrlGetHandle($hWndListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    If ($hWndFrom = $hWndListView) And ($iCode = $LVN_COLUMNCLICK) Then
    $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    _GUICtrlListView_SimpleSort($hWndListView, $B_DESCENDING, DllStructGetData($tInfo, "SubItem"))
    EndIf
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • Microsoft Office 2007 - Automatisierung

    • BugFix
    • 24. November 2009 um 22:24
    Zitat von PokerFace

    Ich muss relativ oft mein System neu aufsetzten.


    Wie wärs denn da mal mit einem Image? Kannst du inkrementell erweitern und eine kpl. Neuinstallation dauert max. 10 Minuten. ;) Und du brauchst auch nicht jedes mal Windows neu aktivieren.
    Ich kann Acronis TrueImage wärmstens empfehlen, das läßt keine Wünsche offen.

  • Problem beim Sortieren von Daten.

    • BugFix
    • 24. November 2009 um 22:12

    Ein Datum (im Listview) ist perse nur ein String. Demzufolge ist das Format TT.MM.JJJJ nicht sortierbar. Deshalb greifen auch viele Anwendungen auf sortierbare Formate wie: JJJJ-MM-TT oder JJJJMMTT zurück.
    Entweder du machst es ebenso oder du wandelst vor dem Sortieren und danach jeweils um.

  • Kleine Toolsammlung

    • BugFix
    • 22. November 2009 um 19:58

    Wir hatten es schon mehrfach erwähnt, dieses ist ein Skript-Forum. Sinn und Zweck: Wir teilen hier unsere Werke und zeigen somit Lösungswege auf.
    Insofern wäre es schon sinnvoll, wenn du hier keinen Link zu deiner Seite, sondern deine Skripte selbst einstellst.

  • RichEdit - Link öffnen und in Tab einbauen

    • BugFix
    • 22. November 2009 um 19:39
    Zitat von Conan10

    Kann denn keiner zu Frage 1 antworten?


    Das Problem dabei:
    - StandardControls geben beim Erstellen eine ID zurück. Mit dieser ID kann man per GuiCtrlSetState($ID, $GUI_HIDE) das Control ausblenden.
    - Das RichEdit Control gibt ein Handle zurück. Mit dem Handle funktioniert dieses aber nicht.

    Mir fällt im Moment dazu keine Lösung ein.

  • Aus endlos Schleife Gui beenden

    • BugFix
    • 22. November 2009 um 18:38

    In Zeile 72: $msg = GUIGetMsg()
    Wozu? Das wird a) nicht gebraucht und b) stört es dein Skript da du im OnEvent-Modus arbeitest. Eines geht nur.

  • Dateiübertragung übers Internet

    • BugFix
    • 22. November 2009 um 13:10
    Zitat von Cryfall

    Danke!
    Ich hatte mich zusehr in der UDF BugFix festgefahren und du hast mir nen kleinen Denkanstoß gegeben :)
    Werde damit jetzt mal ein bissel rumprobieren...


    Von der UDF ist für dich nur wichtig das Einlesen und anschließende "Zerhackstückeln" in gleich große Pakete. In meinem Bsp. ist die Größe der Pakete gebunden an die max. Zeichenlänge je Codezeile. Du mußt die Paketgröße wählen, die du auch auf der Empfängerseite in TCPRecv festlegst.

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™