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

  • IP Adresse in GUI mit mehrern Reitern (Tabs)

    • BugFix
    • 24. Juni 2009 um 14:14

    Hintergrund:
    Die IP-Controls erhalten keine ID sondern ein Handle. Dadurch sind sie nicht in der Hierarchie der Controlerstellung gebunden sondern rein auf das Fenster fixiert. D.h. sie befinden sich nur auf dem Tab, weil das Tab auf dem Fenster ist. Blendest du das Tab aus, sind sie weiter dort. ;)

  • IP Adresse in GUI mit mehrern Reitern (Tabs)

    • BugFix
    • 24. Juni 2009 um 14:04

    Ist ganz simpel: Die Controls nur anzeigen lassen, wenn das Tab aktiv ist:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GuiIPAddress.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1");, 378, 354, 377, 548)
    $Tabs = GUICtrlCreateTab(0, 0, 377, 25)

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

    ;Tab 1 Allgemein
    $Allgemein = GUICtrlCreateTabItem("Allgemein")
    $Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 185, 25)

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

    ;Tab 2 Einstellunegn
    $Einstellungen = GUICtrlCreateTabItem("Einstellungen")
    $IP = GUICtrlCreateLabel("IP-Adresse", 48, 200, 55, 17)
    $IPAddress1 = _GUICtrlIpAddress_Create($Form1, 104, 200, 129, 17)
    _GUICtrlIpAddress_Set($IPAddress1, "192.168.223.100")
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_HIDE)
    $IPAddress2 = _GUICtrlIpAddress_Create($Form1, 104, 232, 129, 17)
    _GUICtrlIpAddress_Set($IPAddress2, "192.168.223.255")
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_HIDE)
    $Input1 = GUICtrlCreateInput("Input1", 48, 128, 185, 21)
    $Input2 = GUICtrlCreateInput("Input2", 48, 160, 185, 21)
    $Broadcast = GUICtrlCreateLabel("Broadcast", 48, 232, 52, 17)
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Tabs
    $current = GUICtrlRead($Tabs)
    Switch $current
    Case 0
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_HIDE)
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_HIDE)
    Case 1
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_SHOW)
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_SHOW)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • Wort suchen Iron

    • BugFix
    • 24. Juni 2009 um 13:44

    Die werden ja nich ständig ihre Position tauschen, also brauchst du doch nur den Suchbereich genauer festlegen.

  • ListView sortieren

    • BugFix
    • 24. Juni 2009 um 13:30
    Zitat von Commander21

    Warum wird die Funktion _GUICtrlListView_SortItems eigl. nirgends in der hilfe angezeigt?


    Also in meiner Hilfe (AutoIt 3.3.0.0) steht es drin. :D

    Edit:

    Hier mal die Lösung:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Include <GuiListView.au3>
    Global $SelDia
    Global $bDesc = True ; <== Sortparameter ist ByRef, muß vorab deklariert werden

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

    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Löschomat", 777, 447, 195, 126)
    GUISetFont(8, 800, 0, "MS Sans Serif")
    GUISetBkColor(0x878787)
    $ListView1 = GUICtrlCreateListView("Dateiname|Größ (KB)|Endung|Pfad", 0, 0, 605, 445)
    GUICtrlSendMsg(-1, 0x101E, 0, 200)
    GUICtrlSendMsg(-1, 0x101E, 1, 80)
    GUICtrlSendMsg(-1, 0x101E, 2, 70)
    GUICtrlSendMsg(-1, 0x101E, 3, 250)
    GUICtrlCreateGroup("Handlungen", 612, 4, 157, 189)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Auswahl löschen", 620, 32, 143, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox("Löschanfrage ein/aus", 620, 168, 145, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Aktuallisieren", 620, 112, 143, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Ordner aufrufen", 620, 140, 143, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button3
    _DirSelect ($ListView1, 0)
    Case $Button1
    $Read1 = GUICtrlRead ($Checkbox1)
    If $Read1 = $GUI_CHECKED Then
    $Ch = 1
    Else
    $Ch = 0
    EndIf
    _Delete ($ListView1, $Ch)
    Case $Button2
    _DirSelect ($ListView1, 1)
    EndSwitch
    WEnd

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

    Func _DirSelect ($Handle, $Update)
    $hLV = GUICtrlGetHandle($Handle)
    If $Update = 0 Then
    $SelDia = FileSelectFolder ("Bitte wählen Sie einen Ordner aus.", "", 4)
    EndIf
    If Not @Error Then
    _GUICtrlListView_DeleteAllItems($hLV)
    $Search = FileFindFirstFile ($SelDia & "\*.*")
    $FileCount = DirGetSize ($SelDia, 1)
    For $i = 1 To $FileCount[1] Step 1
    $NextFile = FileFindNextFile ($Search)
    $Split = StringRight ($NextFile, 3)
    GUICtrlCreateListViewItem ($NextFile & "|" & Round (FileGetSize ($SelDia & "\" & $NextFile) /1024, 4) & "|" & $Split & "|" & $SelDia, $Handle)
    Next
    _GUICtrlListView_SimpleSort ($hLV, $bDesc, 3)
    EndIf
    EndFunc ;==> _DirSelect

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

    Func _Delete ($Handle, $Checked)
    $hLV = GUICtrlGetHandle($Handle)
    $i1 = _GUICtrlListView_GetSelectedIndices ($hLV, True)
    $i2 = _GUICtrlListView_GetItem ($hLV, $i1[1], 0)
    $i3 = _GUICtrlListView_GetItem ($hLV, $i1[1], 2)
    If $Checked = 1 Then
    If MsgBox (4, "Wirklich löschen?", "Soll die folgende Datei wirklich gelöscht werden:" & @CRLF & $i3[3] & "\" & $i2[3]) = 6 Then
    FileDelete ($i3[3] & "\" & $i2[3])
    _GUICtrlListView_DeleteItemsSelected ($hLV)
    EndIf
    Else
    FileDelete ($i3[3] & "\" & $i2[3])
    _GUICtrlListView_DeleteItemsSelected ($hLV)
    EndIf
    EndFunc ;==> _Delete

    [/autoit]
  • Wort suchen Iron

    • BugFix
    • 24. Juni 2009 um 13:24

    Na dann such mal schön mit PixelSearch nach deinem farbigen Button. Kannst ja den Bereich zum Suchen sicher etwas eingrenzen.
    Falls nix gefunden wird, da Button weiter unten im nicht sichtbaren Bereich, sendest du einfach {PageDown} und suchst erneut.

  • resource "in" einer .exe speichern

    • BugFix
    • 24. Juni 2009 um 13:17

    Neben anderen, zutreffenden Threads, findest du bei "Ressourcen" als Suchbegriff u.a. https://autoit.de/index.php?page…70059#post70059.
    Ich denke, da ist alles drin, was du wissen möchtest.

  • Wort suchen Iron

    • BugFix
    • 24. Juni 2009 um 13:06

    Betreff Chrome: Lies mal hier nach.

    Zu deiner Frage: OK, da ist ein Button auf der Seite. Denn willst du per Namen identifizieren. - Und dann? Automatisiert klicken kannst du ihn in Chrome nicht, falls das dein Wunsch ist.

  • Wort suchen Iron

    • BugFix
    • 24. Juni 2009 um 12:09
    Zitat von raydok

    Ich benutze Google Chrome (ff ist kaputt troz reinstall, IE ist dumm)


    Du hast vergessen: Und Google Chrome macht mich zum gläsernen Menschen!!

    Wenn du Chrome nutzen möchtest, da wirklich schnell, dann bitte Iron. Der hat nämlich all die Sammelleidenschaft und Nachhausetelefoniererei aus Google Chrome entfernt und ist nur ein Browser.

    Deine Frage allerdings habe ich nicht verstanden: Wort - Button - in die Länge ziehen...
    Ich versteh nur Bahnhof. ;(

  • resource "in" einer .exe speichern

    • BugFix
    • 24. Juni 2009 um 12:04

    Du kannst Ressourcen z.B. in eine leere Dll schreiben und diese verwenden. Dazu findest du im Forum einige Beispiele. Gib einfach mal "Ressourcen" in die SuFu ein.

  • OCR, Zeichenerkennung, Bild scannen, auslesen

    • BugFix
    • 24. Juni 2009 um 12:01
    Zitat von smersch

    Habe auch asuprobirt habe fehler meldung

    :cursing: Was soll diese völlig sinnfreie Äußerung?

    1. Hast du mal auf das Datum des Threads geschaut? (Samstag, 8. Dezember 2007, 15:15)
    Seitdem haben wir einige Versionsschritte in AutoIt hinter uns. Das Skript muß sehr wahrscheinlich angepaßt werden.

    2. Wenn du Fehlermeldungen bekommst, lies sie. Und wenn du wünscht, dass wir dir dazu Hilfe leisten, dann Poste Code und Fehlermeldungen - aber dann bitte auch im richtigen Forum.

    3. Wenn du Probleme mit der deutschen Sprache hast, schalte bitte die Rechtschreibprüfung in deinem Editor an! Es ist eine Zumutung dein Kauderwelsch zu Lesen!

  • Texteingaben werden nicht übernommen

    • BugFix
    • 24. Juni 2009 um 11:53

    Es kann sein, dass zusätzlich vom Programm geprüft wird, ob im Eingabefeld der Schreibcursor sich bewegt. Setze doch mal zusätzlich nach dem Senden der Daten den Cursor an Pos1 und dann an End und bestätige zusätzlich mit Enter den Schreibvorgang. Vielleicht löst das dann das nötige Event aus.

  • 2 while schleifen gleichzeitig

    • BugFix
    • 24. Juni 2009 um 11:45
    Zitat von Genesis

    so, hat jemand ne ahnung was das soll und was ich dagengen mache kann, weil das is ja ne datei aus den includes, da kann ich ja schlecht was veränderen

    Der Fehler kommt aber, weil ein übergebener Parameter "badly formatted" ist. Also schau auf deine Parameter, ob sie den Erfordernissen der Funktion entsprechen.
    Da du keinen Code gepostet hast, kann ich das nicht beurteilen.

  • Ordner inhalt in Listview Darstellen

    • BugFix
    • 24. Juni 2009 um 11:37

    Könntest du so machen:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <Array.au3>

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

    Local $path = 'C:\test' ; Pfad mit den Unterordnern
    Local $log = 'log.ini'
    Local $aFolder = _FileListToArray($path, '*', 2)
    Global $aLV_Item[1][2] = [['']]
    Local $ind, $aInd, $text

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

    $gui = GUICreate('test')
    $LV = GUICtrlCreateListView('INI', 20, 20, 150, 150)
    GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
    $hLV = GUICtrlGetHandle($LV)
    $button = GUICtrlCreateButton('Zeige INI-Pfad', 20, 200, 100, 20)

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

    For $i = 1 To UBound($aFolder) -1
    If FileExists($path & '\' & $aFolder[$i] & '\' & $log) Then
    If $aLV_Item[UBound($aLV_Item)-1][0] <> '' Then ReDim $aLV_Item[UBound($aLV_Item)+1][2]
    $aLV_Item[UBound($aLV_Item)-1][0] = $path & '\' & $aFolder[$i] & '\' & $log
    $aLV_Item[UBound($aLV_Item)-1][1] = $aFolder[$i] & '.ini'
    GUICtrlCreateListViewItem($aFolder[$i] & '.ini', $LV)
    EndIf
    Next

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $button
    $ind = _GUICtrlListView_GetSelectedIndices($hLV)
    If $ind Then
    $text = _GUICtrlListView_GetItemText($hLV, $ind)
    $aInd = _ArraySearch($aLV_Item, $text, 0, 0, 0, 0, 1, 1)
    If Not @error Then MsgBox(0, 'Pfad', 'Der Pfad zur INI lautet:' & @lf & $aLV_Item[$aInd][0])
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • ListView sortieren

    • BugFix
    • 24. Juni 2009 um 09:54

    1. Für die UDF bitte das Handle des Listview und nicht die ID verwenden.
    2. Nach meiner Erfahrung ist die Verwendung von True/False als Parameter für Descending/Ascending fehlerhaft. Ich verwende dort die in der Hilfe angegebene Variante: Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($hListView)]

  • Listview Editbox

    • BugFix
    • 23. Juni 2009 um 22:44

    Stimmt, ist wirklich nicht die Offenbarung :D

    Probier mal folgendes:
    Ändere deine Funktion _insLine() so ab:

    [autoit]

    Func _insLine()
    For $i = 27 To 3 Step -1
    $string = StringReplace(GuiCtrlRead($Edit1), _multiLine($i) , @CRLF & @CRLF)
    GuICtrlSetData($Edit1, $string)
    Next
    Switch @GUI_CtrlId
    Case 5
    $stringAdd = @crlf & "Satz 1" & @CRLF & @CRLF
    Case 6
    $stringAdd = @crlf & "Satz 2" & @CRLF & @CRLF
    Case 7
    $stringAdd = @crlf & "Satz 3" & @CRLF & @CRLF
    EndSwitch
    $string = StringReplace(GuiCtrlRead($Edit1), @crlf & @CRLF ,$stringAdd)
    GuICtrlSetData($Edit1, $string)
    EndFunc

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

    Func _multiLine($count)
    Local $ret = ''
    For $i = 1 To $count
    $ret &= @CRLF
    Next
    Return $ret
    EndFunc

    [/autoit]

    Ungetestet, aber sollte laufen.

  • Alle DAteien im angewählteen Ordner anzeigen

    • BugFix
    • 23. Juni 2009 um 16:47

    Erinnert mich stark an das, was ich mal vor 2 1/2 Jahren gemacht hab :D
    https://autoit.de/index.php?page…D=7629#post7629

  • GDIPlus verhindert GUICtrlCreatePic

    • BugFix
    • 23. Juni 2009 um 15:52

    Falls du es aber zeitgleich in beiden Varianten benötigst, klone es doch:

    [autoit]

    #Include <GDIPlus.au3>
    Local $path = "C:\WINDOWS\system32\oobe\images\oemlogo.gif"
    _GDIPlus_Startup()
    Local $hImage = _GDIPlus_ImageLoadFromFile($path)
    Local $tmpPath = @TempDir & '\oemlogo.gif'
    _GDIPlus_ImageSaveToFile($hImage, $tmpPath)

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

    $gui = GUICreate("test")
    $pic = GUICtrlCreatePic($tmpPath, 20, 20, 255, 40)
    GUISetState()

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

    Do
    Sleep(50)
    Until GUIGetMsg() = -3

    [/autoit]
  • dynamischer Array nicht möglich?

    • BugFix
    • 23. Juni 2009 um 14:51
    Zitat von chip

    Nicht wirklich, da mit ReDim auch kein dynamischer Array realieren kannst sondern einfach einem bestehenden eine neue Grenze vergibst.


    Reine Definitionsfrage :D
    Wenn ich zur Laufzeit ein Array in seiner Größe verändere ist das eine Dynamik. Ergo: Wir haben ein dynamisches Array. :P

    Was du meinst, ist die faulheitsbasierte Arrayvariante, die sich selbst Platz im Speicher verschafft, wenn nötig.
    Aber wir sind doch fleißig, darum gibt es in AutoIt so etwas nicht. :rofl:

  • 2 arrays nach gleichen werten absuchen

    • BugFix
    • 23. Juni 2009 um 12:47

    Du kannst auch meine Funktion _GetIntersection() dazu verwenden (basiert ebenfalls auf Dictionary Objekt). Findest du hier: https://autoit.de/index.php?page…60542#post60542

  • SplashImage / -Text, randlos, formatierbar

    • BugFix
    • 23. Juni 2009 um 12:41

    Erweiterung der Funktionalität:
    - Bei Anzeige von Bildern braucht die Bildgröße nicht mehr übergeben werden, dies wird in der Funktion selbst ermittelt. (s. Post 1)

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™