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

  • Nach Größe sortieren

    • BugFix
    • 22. Januar 2010 um 20:39

    Verwende ein 2D-Array. So kannst du Dateipfad und die Größe zusammengehörig speichern und nach der Größe sortieren.

    Edit:

    Habs mal schnell gebastelt:

    [autoit]

    #include <array.au3>
    #include <file.au3>

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

    Local $sPath = @ScriptDir & '\'

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

    Local $aFiles = _FileListToArray($sPath, '*', 1) ; nur Dateien
    ;~ _ArrayDisplay($aFiles)
    Local $aFileInfo[$aFiles[0]][2]
    For $i = 1 To UBound($aFiles) -1
    $aFileInfo[$i-1][0] = $aFiles[$i]
    $aFileInfo[$i-1][1] = FileGetSize($sPath & $aFiles[$i])
    Next
    ;~ _ArrayDisplay($aFileInfo)
    _ArraySort($aFileInfo, 0, 0, 0, 1)
    _ArrayDisplay($aFileInfo)

    [/autoit]
  • Instant Defragmentierung

    • BugFix
    • 22. Januar 2010 um 20:16

    Kann ich nur bestätigen, habe O&O Defrag seit Jahren auf meinem PC und seitdem niemals aktiv eine Defragmentierung durchführen müssen - alles schön im Hintergrund von alleine. ;)

  • DockIt GUI abdocken

    • BugFix
    • 18. Januar 2010 um 13:32

    Dazu muß WM_MOVE nur für das erste GUI aktiviert werden. Der Einfachheit halber hab ich in meinem Bsp. die Schleife zum Durchlaufen des Array auskommentiert und fix auf das erste Element (GUI1) verwiesen. Für diesen Fall kann natürlich ein 1D-Array verwendet werden. Kannst du ja dann anpassen.
    Um GUI2 wieder anzudocken mußt du kurz GUI1 bewegen, oder du definierst einen "Fangbereich" um die GUI1 und checkst, ob GUI2 in diesen eintritt. Wie das geht, kannst du dem anderen Bsp. (Andocken am Desktoprand) aus demselben Thread entnehmen.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Winapi.au3>
    $gui1 = GUICreate("Nummer 1", 300, 300)
    GUICtrlCreateGroup('Dockposition', 40, 40, 220, 220)
    $r1 = GUICtrlCreateRadio('1', 240, 140, 15, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $r2 = GUICtrlCreateRadio('2', 140, 240, 15, 17)
    $r3 = GUICtrlCreateRadio('3', 45, 140, 15, 17)
    $r4 = GUICtrlCreateRadio('4', 140, 50, 15, 17)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    $gui2 = GUICreate("Ich bin gedockt", 200, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)

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

    Global $aDocks[2][4] = [[$gui1,$gui2,1,-1],[$gui2,$gui1,3,-1]]
    ; ['GUI-master','GUI-slave',dockPos,Abstand]
    ; dockPos: 1=rechts, 2=unten, 3=links, 4=oben
    ; Abstand: -1=SysMetrics Fensterrand, alle anderen Werte Pixelabstand zw. Fenstern
    ;=======================================================================================================
    ; Damit zwei Fenster wechselseitig reagieren, müssen beide im Array aufgeführt werden, einmal als Master
    ; und einmal als Slave.
    ; Dabei müssen die entgegengesetzten Flags für die Dockposition vergeben werden (1 u. 3 bzw. 2 u. 4)
    ;=======================================================================================================

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

    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_SHOW, $gui1)

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

    ; WM_MOVE registrieren:
    GUIRegisterMsg($WM_MOVE, "WM_MOVE")
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")

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

    ; Ereignis WM_MOVE auslösen zum erstmaligen Positionieren der Fenster
    _moved()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $r1
    $aDocks[0][2] = 1
    $aDocks[1][2] = 3
    _moved()
    Case $r2
    $aDocks[0][2] = 2
    $aDocks[1][2] = 4
    _moved()
    Case $r3
    $aDocks[0][2] = 3
    $aDocks[1][2] = 1
    _moved()
    Case $r4
    $aDocks[0][2] = 4
    $aDocks[1][2] = 2
    _moved()
    EndSwitch
    WEnd

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

    Func _moved()
    DllCall("User32.dll", "int", "PostMessageA", "hwnd", WinGetHandle($aDocks[0][0]), "int", $WM_MOVE, "int", 0, "int", 0)
    EndFunc

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

    Func WM_MOVE($hWndGUI)
    ;~ For $i = 0 To UBound($aDocks) -1
    Local $i = 0
    If WinGetHandle($aDocks[$i][0]) = $hWndGUI Then
    Local $aPos1 = WinGetPos($aDocks[$i][0])
    Local $aPos2 = WinGetPos($aDocks[$i][1]), $iDiff = 0
    If $aDocks[$i][3] = -1 Then
    Local $ret = DllCall("user32.dll", "int", "GetSystemMetrics", "int", 32)
    If IsArray($ret) Then $iDiff = $ret[0]
    Else
    $iDiff = $aDocks[$i][3]
    EndIf
    Switch $aDocks[$i][2]
    Case 1
    WinMove($aDocks[$i][1], '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 2
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 3
    WinMove($aDocks[$i][1], '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 4
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    EndIf
    ;~ Next
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func WM_ACTIVATE($hWndGUI)
    If WinGetHandle($aDocks[0][0]) = $hWndGUI Then _
    DllCall("User32.dll", "hwnd", "SetFocus", "hwnd", WinGetHandle($aDocks[0][1]))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Oscar hat Geburtstag.

    • BugFix
    • 18. Januar 2010 um 12:47

    Hallo Oscar,
    schon wieder versuchst du mir altersmäßig auf den Pelz zu rücken, aber im November wird der alte Abstand wieder hergestellt. :D

    Ich wünsche dir Alles Gute, weiterhin Ideen ohne Ende und bleib, wie du bist. ;)

  • Lesen auf txt dokument?

    • BugFix
    • 17. Januar 2010 um 19:43

    @vassilis: Du alter Leichenschänder! :rofl:

    Zitat

    Sonntag, 13. Januar 2008, 02:26

  • neue TV-Karte PCIe geplant

    • BugFix
    • 16. Januar 2010 um 23:48

    Keiner, der TV-Karten der Art benutzt? :S

  • ConsoleWrite an vorkompilierte Console

    • BugFix
    • 16. Januar 2010 um 23:31
    Zitat von Nischlas

    meine als Konsole kompilierte Console


    :very confused: ?(

  • Bild ermitteln

    • BugFix
    • 16. Januar 2010 um 13:30

    Gib uns die Infos:
    - so sieht es aus
    - so soll es aussehen
    anhand von Bsp.

  • neue TV-Karte PCIe geplant

    • BugFix
    • 16. Januar 2010 um 12:08

    Hi,
    ich brauch für meinen PC eine neue TV-Karte.
    Folgendes sind meine minimalen Anforderungen:

    SOLL:
    - PCIe
    - DVB-S
    - Video-In (S-Video / Composite)
    - TimeShifting
    - IR-Fernbedienung

    KANN:
    - DVB-S2
    - DVB-T

    Ich habe nun mal das Web durchstöbert und die AVerTV Satellite Trinity gefunden, die eine sehr ansprechenden Funktionsumfang bietet.
    Hat evtl. jemand Erfahrung mit dieser Karte (oder kennt jemanden, der wen kennt, der Erfahrungen hat.. :D)?

    Oder habt ihr TV-Karten, die meinen Wünschen entsprechen, im Einsatz und seid wunschlos glücklich? Dann bin ich für jede Info dankbar, noch habe ich mich nicht festgelegt. ;)

  • Excel: SVERWEIS/ VERWEIS-Alternative

    • BugFix
    • 14. Januar 2010 um 19:48

    Hi,
    ich melde mich mal schnell aus dem rumänischen Exil :D

    Die aus meiner Sicht einfachste Lösung, ist die Kombination aus einer WENN-Abfrage und einem VERWEIS. Ist kein Aufwand und beliebig erweiterbar.
    Bsp. ist angehängt.

    Dateien

    Mappe1.zip 2,07 kB – 421 Downloads
  • ListView Item löschen

    • BugFix
    • 6. Januar 2010 um 23:17

    @Reaker: Bitte keine Links auf Pastebin in den Threads! Diese sind spätestens nach 30 Tagen gelöscht (einzige Ausnahme: personifiziertes Pastebin) und somit kann später niemand nachvollziehen, was passiert ist.

  • TCPconnect neuverbinden wenn die verbindung einmal getrennt wurde?

    • BugFix
    • 6. Januar 2010 um 23:01
    Zitat von hotwert

    Gibts im IRC ne Funktion um die Userlist im channel abzurufen damit ich diese vom BNC an mein IRC prog senden kann?


    Gibt es: /WHO kanal
    Kann aber sein, dass das nicht mit allen Clients funktioniert.
    Probier mal (ungetestet):

    [autoit]

    Func _IRCListUser ($irc, $chan)
    If $irc = -1 Then Return 0
    TCPSend($irc, "WHO " & $chan & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit]


    Die Listung erfolgt dann im im TCPRecv. Dort mußt du es rausfiltern.

    Kannst dir ja auch mal das ansehen - vielleicht kannst du davon was verwenden.

  • UDF Installer testen

    • BugFix
    • 6. Januar 2010 um 20:18

    Tipp:
    Nicht in den Standard-Include Ordner einfügen, sondern Wahlmöglichkeit lassen. Ich verwalte UDF's in einem separaten Ordner, der in "SciTE Config" als "User Include Dir" eingetragen wurde.

  • Array einlesen + bearbeiten

    • BugFix
    • 6. Januar 2010 um 00:13

    Andere Variante:

    [autoit]

    $s = "Chr(54) & Chr(55) & Chr(53)"
    MsgBox(0, '', StringRegExpReplace(StringRegExpReplace(StringRegExpReplace($s, '\s&\s', ','), 'Chr\(', ''), '\)', '') )

    [/autoit]
  • Array einlesen + bearbeiten

    • BugFix
    • 5. Januar 2010 um 22:48

    Lies dir mal die Syntaxbeschreibung durch. ;)
    _FileReadToArray("Pfad", $Array)
    D.h. für dein Bsp.: die Variable $decode ist das Array!

    Du willst aber nur einen String splitten - also brauchst du _FileReadToArray() gar nicht.

  • _ExcelReadSheetToArray

    • BugFix
    • 4. Januar 2010 um 23:06

    Ja, du mußt folgende Codezeile aus der Funktion abändern:

    [autoit]

    If $sLastCell = "R1C1" And $oExcel.Activesheet.Cells($iLastRow, $iLastColumn).Value = "" Then Return $avRET

    [/autoit]


    zu:

    [autoit]

    If $sLastCell = "Z1S1" And $oExcel.Activesheet.Cells($iLastRow, $iLastColumn).Value = "" Then Return $avRET

    [/autoit]

    dann sollte es mit allen Versionen laufen.

  • Excel.au3

    • BugFix
    • 4. Januar 2010 um 22:55

    Exakt das Problem hatten wir vor ein paar Tagen: [ gelöst ] Falsches Datums Format im Array

    Edit: :D Der Bernd war schneller.

  • QDesktop

    • BugFix
    • 4. Januar 2010 um 22:32
    Zitat von m-obi

    Es geht wie man sieht um die Variable $OK_Button.

    Im OnEvent-Mode kann man sich die Variablen für Button meist schenken, da die Zuweisung der Funktion in der Folgezeile mit -1 auf das zuletzt erstellte Control verweist. Nur, wenn man den Button evtl. im Skriptverlauf z.B. auf Hide setzen möchte, benötigt man auch die ID des Ctrl.

  • schueler VZ Client ?!

    • BugFix
    • 4. Januar 2010 um 22:18
    Zitat von L3viathan2142

    :D - ich habe in dem Thread gar nix geposted... 8|

  • Bild in Excel einfügen

    • BugFix
    • 3. Januar 2010 um 00:35

    @Xeno: Picture einbinden ist nur in die Word-UDF integriert. ;)

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™