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. Oscar

Beiträge von Oscar

  • Hilfe bei "Oder" Bedingung..

    • Oscar
    • 30. Mai 2009 um 14:27

    Dann halt noch um die Bedingung erweitern:

    [autoit]

    If BitXOR(WinExists('Rechner'), WinExists('Unbenannt')) Or Not BitAND(WinExists('Rechner'), WinExists('Unbenannt')) Then MsgBox(0, 0, 'Jo!')

    [/autoit]
  • Hilfe bei "Oder" Bedingung..

    • Oscar
    • 30. Mai 2009 um 14:16

    Wenn das Script nur etwas machen soll, wenn eines der beiden Fenster offen ist, dann am besten BitXOR benutzen:

    [autoit]

    If BitXOR(WinExists('Rechner'), WinExists('Unbenannt')) Then MsgBox(0, 0, 'Jo!')

    [/autoit]
  • Eigene Progressbar

    • Oscar
    • 30. Mai 2009 um 14:01

    TimerInit benutzen und ein Label:

    Spoiler anzeigen
    [autoit]


    $GUI_EVENT_CLOSE = -3
    $Breite = 180
    $Hoehe = 3

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

    GUICreate("Download", 200, 30)
    GUISetBkColor(0x393939)
    $hProgr = GUICtrlCreateLabel('', 10, 10, 1, $Hoehe)
    GUICtrlSetBkColor(-1, 0x99FF00)
    GUISetState()

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

    $Timer = TimerInit()
    For $NextLoop = 1 To $Breite
    GUICtrlSetPos($hProgr, 10, 10, $NextLoop, $Hoehe)
    Do
    Until TimerDiff($Timer) > 4
    $Timer = TimerInit()
    Next

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Run() funktioniert mal / mal nicht...

    • Oscar
    • 29. Mai 2009 um 20:39

    Bei Leerzeichen im Pfadnamen am besten "FileGetShortName" benutzen, dann funktioniert das:

    [autoit]


    $sPath = "C:\Dokumente und Einstellungen\Admin\Eigene Dateien\au3_prog\mother-child-test\child01.exe"
    $sPath = FileGetShortName($sPath)
    Run($sPath)

    [/autoit]
  • Drag&Drop vom Treeviewitem in eine Liste

    • Oscar
    • 28. Mai 2009 um 20:59

    Mal eine rumgetrickste "Lösung":

    Spoiler anzeigen
    [autoit]


    #include <GuiTreeView.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    Global $exit, $ItemA, $ItemB, $Item1, $Item2, $Item3, $Item4, $DragItem, $tree, $hGui, $hListView
    Example()
    Func Example()


    $hGui = Guicreate("Test", 400, 250, -1, -1, Default, $WS_EX_ACCEPTFILES)
    $tree = guictrlcreatetreeview(300, 10, 100, 100)
    ;~ GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    $ItemA = Guictrlcreatetreeviewitem("ItemA", $tree)
    $ItemB = Guictrlcreatetreeviewitem("ItemB", $tree)
    $Item1 = Guictrlcreatetreeviewitem("Item1", $ItemA)
    $Item2 = Guictrlcreatetreeviewitem("Item2", $ItemA)
    $Item3 = Guictrlcreatetreeviewitem("Item3", $ItemB)
    $Item4 = Guictrlcreatetreeviewitem("Item4", $ItemB)
    $hListView = Guictrlcreatelistview("Test", 10, 10, 200, 200)
    ;~ GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUISetState()
    GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "MDown")
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, "MUp")

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

    while(1)
    Sleep(1000)
    WEnd
    EndFunc ;==>_Main

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

    Func MUp()
    Local $aInfo = GUIGetCursorInfo($hGui)
    If $aInfo[4] = $hListView And $DragItem <> -1 Then
    GUICtrlCreateListViewItem(_GUICtrlTreeView_GetText($tree, $DragItem), $hListView)
    EndIf
    $DragItem = -1
    EndFunc

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

    Func MDown()
    Local $aInfo = GUIGetCursorInfo($hGui)
    If $aInfo[4] = $tree Then
    $DragItem = _GUICtrlTreeView_GetSelection($tree)
    Else
    $DragItem = -1
    EndIf
    EndFunc

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

    Func OnExit()
    If @GUI_CtrlId = $Exit Then
    ;MsgBox(0, "You clicked on", "Exit")
    Else
    ;MsgBox(0, "You clicked on", "Close")
    EndIf
    Exit
    EndFunc ;==>OnExit

    [/autoit]

    Edit: War noch ein kleiner Fehler drin. Behoben!

  • Drag&Drop vom Treeviewitem in eine Liste

    • Oscar
    • 28. Mai 2009 um 20:39

    So herum (Treeview -> Listview) wird wohl nur mit Tricks gehen, denn:

    Zitat

    Only dragging a ListviewItem will start the drag & drop process.

  • email versenden mi optionen und absatz

    • Oscar
    • 28. Mai 2009 um 19:17

    010001000110000101101110011010110110010100100000011001101111110001110010001000000110010001101001011001010010000001000010011011000111010101101101011001010110111000100000001110100010110100101001

    Hier die erweiterte Version:

    Spoiler anzeigen
    [autoit]


    ConsoleWrite(_BinToString('01010100011001010111001101110100') & @CRLF)
    ConsoleWrite(_StringToBin('Test') & @CRLF)

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

    Func _BinToString($bin)
    Local $aChr = StringRegExp($bin, '.{8}', 3), $dec, $string = ''
    For $k = 0 To UBound($aChr) - 1
    $dec = 0
    For $i = 8 To 1 Step -1
    $dec += 2 ^ (8 - $i) * StringMid($aChr[$k], $i, 1)
    Next
    $string &= Chr($dec)
    Next
    Return $string
    EndFunc ;==>_BinToString

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

    Func _StringToBin($string)
    Local $aChr = StringSplit($string, ''), $bin = ''
    For $k = 1 To $aChr[0]
    For $i = 7 To 0 Step -1
    $bin &= (BitAND(Asc($aChr[$k]), 2 ^ $i) = 2 ^ $i) * 1
    Next
    Next
    Return $bin
    EndFunc ;==>_StringToBin

    [/autoit]
  • MSP-Datei via AutoIt installieren lassen

    • Oscar
    • 28. Mai 2009 um 18:02

    @PokerFace: Hast recht. Gehört nach "Hilfe & Unterstützung". [moved]

  • email versenden mi optionen und absatz

    • Oscar
    • 28. Mai 2009 um 17:54

    Das ist Binärcode! Ein Zeichen im ASCII-Zeichensatz kann einen Wert von 0-255 annehmen, das entspricht 8 Stellen pro Zeichen im Binärcode (2^8=256).
    Wenn man den String nun in jeweils 8stellige Strings aufteilt und jeden für sich ins Dezimalsystem umwandelt, danach das Zeichen mit diesem Wert aus der ASCII-Tabelle einsetzt, erhält man ein oder mehrere Worte.
    Script zum umwandeln:

    [autoit]


    #include <Array.au3>
    $string = '010001110110111101101111011001110110110001100101001000000110100001101001011011000110011001110100001000000101111001011110'
    $array = StringRegExp($string, '.{8}', 3)
    $out = ''
    For $i = 0 To UBound($array) - 1
    $out &= Chr(_BinToDec($array[$i]))
    Next
    MsgBox(0,0,$out)

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

    Func _BinToDec($bin)
    Local $dec = 0
    For $i = 8 To 1 Step -1
    $dec += 2^(8-$i) * StringMid($bin, $i, 1)
    Next
    Return $dec
    EndFunc

    [/autoit]
  • Txt Datei direkt auf dem FTP editieren?

    • Oscar
    • 28. Mai 2009 um 04:17

    Das wird nicht funktionieren, ohne vorher die Datei herunterzuladen. Bei FTP gibt es nur "put" und "get", aber kein "append" oder "edit" oder so. :)

  • Textfarbe einer Gruppe ändern? Problem...

    • Oscar
    • 27. Mai 2009 um 22:17

    Die Farbe kannst Du nur beim klassischen Style von Windows ändern:

    [autoit]


    #include <GUIConstantsEx.au3>

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

    #region - GUI Create
    GUICreate('', 400, 400, -1, -1)
    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0) ; auf den klassischen Style umschalten
    GUICtrlCreateGroup("text", 20, 200)
    GUICtrlSetFont(-1, 16, 400, 0)
    Guictrlsetcolor(-1, 0xFF0000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 7) ; zurück zum Standard-Windowsstyle
    GUISetState()
    #endregion

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

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    #endregion

    [/autoit]
  • RunIt (Program-Launcher)

    • Oscar
    • 27. Mai 2009 um 19:58

    RunIt ist ein Programm, was ein Fenster zur Verfügung stellt, auf das man Programme (Exe-Dateien) ziehen kann (Drag & Drop) und die dann dort mit dem Programm-Icon und -Namen erscheinen.
    Ein Doppelklick auf das Icon startet das Programm. Ein Launcher halt... :D
    Man kann das Icon beliebig auf dem Fenster verschieben. Fenstergröße und -Position können verändert werden (wird abgespeichert).
    Außerdem gibt es ein Tray-Icon. Wenn man dort doppelt drauf klickt, wird das Fenster minimiert. Bei einem einfachen Klick erscheint das Fenster wieder.

    Version: 1.0

  • GUI: Buttons mit Funktionen verknüpfen? (Anfänger)

    • Oscar
    • 27. Mai 2009 um 19:47

    Du könntest damit anfangen unsere Forenregeln zu lesen!
    Diese besagen nämlich, dass wir hier keine (Game-)Bots unterstützen.

    Und wenn Du ansonsten eine Frage hast, dann mach bitte einen eigenen Thread auf und schreibe die Frage dort rein.

  • Variable Variablen?

    • Oscar
    • 27. Mai 2009 um 18:53

    Und wo ist das Problem?
    $aRecords[0] gibt doch die Anzahl der Zeilen zurück.

    [autoit]


    #include <file.au3>
    Dim $aRecords
    If Not _FileReadToArray("error.log",$aRecords) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf
    For $x = $aRecords[0]-50 to $aRecords[0]
    Msgbox(0,'Record:' & $x, $aRecords[$x])
    Next

    [/autoit]
  • "Markiert"-Parameter?

    • Oscar
    • 27. Mai 2009 um 04:11

    Oder schau Dir mal dieses Beispiel an: TreeView-(Un)Checked-Example

  • WinWait --> Verständnisproblem

    • Oscar
    • 26. Mai 2009 um 13:12

    Das darf keine Funktion in dem Install-Script sein, sondern ein zweites, kompiliertes Script, was Du dann mit ShellExecute aufrufst (vor dem Unzip-Befehl).
    In diesem zweiten Script wartest Du dann einfach auf das öffnen des Fensters (WinWait) und schließt es (WinClose) danach Exit.

  • Ordner in TV auflisten; nach Größe sortiert

    • Oscar
    • 26. Mai 2009 um 12:30

    Es "crasht" wenn das Array nicht mehr ausreicht, also bei mehr als 10.000 Verzeichnissen.
    Einfach das Array entsprechend größer dimensionieren.

    Edit: Ich hab das Script noch etwas angepasst (sieht IMHO besser aus):

    Spoiler anzeigen
    [autoit]


    #include <TreeViewConstants.au3>
    #include <GuiTreeView.au3>
    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("Treeview", 640, 480)
    Global $id = 0, $dir[100000], $path = "c:\"

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

    $tree = GUICtrlCreateTreeView(5, 5, 630, 450)
    GUICtrlSetFont(-1, 9, 400, 0, 'Courier New')
    $dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
    $status = GUICtrlCreateLabel('', 0, 460, 640, 20)
    GUISetState(@SW_SHOW)
    AdlibEnable('PleaseWait', 100)
    searchdir($path, $id)
    GUICtrlSetData($status, ' Sortiere...')
    AdlibDisable()
    ReDim $dir[$id + 1]
    GUICtrlSetState($dir[0], $GUI_EXPAND)
    __GUICtrlTreeView_Sort($tree)
    GUICtrlSetData($status, ' Fertig. (' & $id & ' Verzeichnisse)')

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

    While 1
    $g = GUIGetMsg()
    If $g = -3 Then Exit
    WEnd

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

    Func PleaseWait()
    GUICtrlSetData($status, ' Please wait...' & $id)
    EndFunc

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

    Func searchdir($d, $i)
    Local $f, $n, $s
    $f = FileFindFirstFile($d & "*")
    While 1
    $n = FileFindNextFile($f)
    If @error Then ExitLoop
    $s = DirGetSize($d & $n)
    If $s > -1 Then
    $id += 1
    $sSize = StringFormat("%.3f", $s / 1024 / 1024, 3) & " MB"
    $dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("[%16s]", $sSize) & " - " & $n, $dir[$i])
    searchdir($d & $n & "\", $id)
    EndIf
    WEnd
    EndFunc ;==>searchdir

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

    ; aus dem engl. Forum
    Func __GUICtrlTreeView_Sort($hWnd)
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    Local $hItem, $i_Recursive = 1
    $hItem = _GUICtrlTreeView_GetFirstItem($hWnd)
    While $hItem <> 0
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hWnd, 'uint', $TVM_SORTCHILDREN, 'wparam', $i_Recursive, 'lparam', $hItem)
    $hItem = _GUICtrlTreeView_GetNext($hWnd, $hItem)
    WEnd
    EndFunc ;==>__GUICtrlTreeView_Sort

    [/autoit]
  • WinWait --> Verständnisproblem

    • Oscar
    • 26. Mai 2009 um 12:24

    Achso, das Fenster kommt vom AntiVirus und Du willst das per Script schließen?

    Dazu musst Du vor dem Unzippen ein zweites Script starten, was nur auf dieses Fenster wartet,es dann schließt und sich anschließend selbst beendet.

    Also Dein bisheriges Script startet vor dem _Unzip-Befehl ein zweites Script. So sollte das eigentlich klappen.

  • Ordner in TV auflisten; nach Größe sortiert

    • Oscar
    • 26. Mai 2009 um 04:39

    Das Problem mit der "1. Ebene" scheint ein Bug zu sein. Im engl. Forum habe ich eine Funktion gefunden, bei der das behoben wurde.
    Dann geht es auch so:

    Spoiler anzeigen
    [autoit]


    #include <TreeViewConstants.au3>
    #include <GuiTreeView.au3>
    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("Treeview")
    Global $id = 0, $dir[9999], $path = "c:\Programme\AutoIt3\"

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

    $tree = GUICtrlCreateTreeView(0, 0, 481, 353)
    $dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
    GUISetState(@SW_SHOW)
    searchdir($path, $id)
    ReDim $dir[$id + 1]
    GUICtrlSetState($dir[0], $GUI_EXPAND)
    __GUICtrlTreeView_Sort($tree)
    MsgBox(0, 0, 'Bin fertig')

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

    While 1
    $g = GUIGetMsg()
    If $g = -3 Then Exit
    WEnd

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

    Func searchdir($d, $i)
    Local $f, $n, $s
    $f = FileFindFirstFile($d & "*")
    While 1
    $n = FileFindNextFile($f)
    If @error Then ExitLoop
    $s = DirGetSize($d & $n)
    If $s > -1 Then
    $id += 1
    $sSize = StringFormat("%.3f", $s / 1024 / 1024, 3)
    $dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("[%13s]", $sSize) & " MB - " & $n, $dir[$i])
    searchdir($d & $n & "\", $id)
    EndIf
    WEnd
    EndFunc ;==>searchdir

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

    ; aus dem engl. Forum
    Func __GUICtrlTreeView_Sort($hWnd)
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    Local $hItem, $i_Recursive = 1
    $hItem = _GUICtrlTreeView_GetFirstItem($hWnd)
    While $hItem <> 0
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hWnd, 'uint', $TVM_SORTCHILDREN, 'wparam', $i_Recursive, 'lparam', $hItem)
    $hItem = _GUICtrlTreeView_GetNext($hWnd, $hItem)
    WEnd
    EndFunc ;==>__GUICtrlTreeView_Sort

    [/autoit]
  • Bilder in GUI verändern durch Combobox auswahl

    • Oscar
    • 26. Mai 2009 um 04:26

    Das GUICtrlCreatePic nur einmal (am Anfang) erstellen und dann mit GUICtrlSetImage die Bilder austauschen.

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™