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

  • Verkleinerung meines Programms

    • Oscar
    • 27. Januar 2011 um 16:59

    Wenn es sich auf ein Netzwerklaufwerk kopieren soll, warum dann auf alle kopieren?
    Das lässt sich doch mit dem DriveType eingrenzen:

    [autoit]


    #include <Array.au3>

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

    $aDrives = DriveGetDrive('Network')
    _ArrayDisplay($aDrives)

    [/autoit]
  • Kürzeste Übereinstimmung bei 'StringRegExpReplace'

    • Oscar
    • 27. Januar 2011 um 16:50

    Da der Punkt für jedes beliebige Zeichen steht, kann man das Verhalten folgendermassen in den Griff bekommen:

    [autoit]


    $alt = "aabbccxxddeeffxXyyyyZzgghhiiXxyyyyzZjjkkllXXyyyyZZmmnnoo"

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

    $neu = StringRegExpReplace($alt, "(?i)xx([^xz]*?)zz", "00${1}11")

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

    Msgbox(0,"",$neu)

    [/autoit]
  • Bild bei Mouseover verändern

    • Oscar
    • 27. Januar 2011 um 04:10
    Zitat von Milla


    Und ganz wichtig:
    immer nen Sleep in ne endlosschleife sonst treibste die cpu bis an die kernschmelze ;)

    Und gerade das ist völlig falsch. ;)
    Im MessageLoop-Modus ist ein Sleep nicht nur überflüssig (GUIGetMsg regelt die Prozessorauslastung), sondern kann sogar (wenn der Wert zu groß ist) zu einer Nichtbedienbarkeit der GUI führen.

    Nur im OnEventMode muss in der Endlosschleife ein Sleep rein, weil sonst ein Prozessorkern 100% erreicht.

  • FileCommander

    • Oscar
    • 25. Januar 2011 um 22:16

    So, jetzt kann man die Buttons auch verschieben (Reihenfolge ändern). Dazu muss man einen Button länger als 250 mSek gedrückt halten. Der Mauszeiger verwandelt sich dann in einen horizontalen Doppelpfeil und man kann den Button auf der Leiste verschieben. Außerdem kann man jetzt die Buttons umbenennen (Kontextmenü).

    Neue Version in Post#1.

  • Bildschirmschoner Zeit bis zum nächsten Einschalten abfragen (Vista)

    • Oscar
    • 24. Januar 2011 um 20:23

    Mikrosekunden (Ticks) seit der letzen Mausbewegung/Tastendruck.

    Edit: Verschoben nach H&U.

  • FileCommander

    • Oscar
    • 23. Januar 2011 um 15:23

    Beide Fehler behoben! Danke, Tweaky und Raupi!

    Neue Version in Post#1.

  • FileCommander

    • Oscar
    • 23. Januar 2011 um 14:13

    Ich habe eine Art Toolbar hinzugefügt (siehe Screenshot). Es ist eigentlich eine Reihe von Buttons (weil die Toolbar-UDF zu viele Probleme macht).
    Man kann Exe-Dateien per Drag&Drop in die Leiste reinziehen und es wird automatisch ein Button erstellt. Per Kontextmenü kann man die Buttons auch wieder löschen.

    Sortieren und umbenennen geht noch nicht (muss mir erstmal ein Konzept dafür überlegen). Das heißt, wer das will, kann die Einträge in der Inidatei entsprechend anordnen. Die werden von links nach rechts in der Sektion "[DropToolbarPath]" abgelegt. Dabei ist der Teil vor dem "=" der ToolTip-Name und hinter dem "=" steht der volle Pfad zur Exedatei.

    Man kann nun auch die im Explorer ausgeblendeten Laufwerke hier im FileCommander ausblenden lassen (Einstellungsmenü). Ausserdem habe ich noch eine Möglichkeit zum Konfigurieren dieser Ausblendfunktion eingebaut. Danke für den Tipp, BuFF!

    Und wenn kein externer HexEditor eingetragen ist, wird ein einfacher, kleiner HexViewer (im Tools-Verzeichnis) verwendet. Danke für die Funktion, Kleiner!

    Neue Version in Post#1.

  • AutoIt installieren (SciTE) Probleme mit Makros

    • Oscar
    • 22. Januar 2011 um 11:05

    Die History findest Du in der Hilfe ganz unten unter "Appendix" und dann "History / Changelog".

    Hier geht's ja darum, dass InetGet jetzt anders funktioniert. Es wird ein Handle zurückgegeben, mit dem Du dann mittels InetGetInfo alle wichtigen Informationen zum Download erhälst.
    Schau Dir am besten mal das Beispielscript zu InetGet an.

  • AutoIt installieren (SciTE) Probleme mit Makros

    • Oscar
    • 22. Januar 2011 um 10:33

    Das Makro stammt noch aus einer alten AutoIt-Version. In der neuen AutoIt-Version wurde es durch InetGetInfo ersetzt, weil man nun auch mehrere Downloads gleichzeitig einleiten kann.

    Hier mal der entsprechende Auszug aus der History:

    Zitat


    15th January, 2010 - v3.3.4.0

    Some of the following features are deprecated. Deprecated features are no longer documented but continue to work. Deprecated features will be removed after version 3.3.4.0. It is strongly recommended that scripts relying on deprecated features be updated to work with the new behavior. Some features have already been removed and will be noted as such.

    AutoIt:
    [...]
    InetGet("abort"), @InetGetActive and @InetGetBytesRead have been removed. The following list shows the new functions used to access the old behavior:
    InetGet("abort") - Calling the new InetClose() function with a handle returned from InetGet() will abort a download.
    @InetGetActive - Calling the new InetGetInfo() function with no parameters returns a count of active downloads.
    @InetGetBytesRead - Calling the new InetGetInfo() function with a handle returned from InetGet()will return the bytes read (and more) for a download.

    Alles anzeigen
  • Zwei 1-Dimensonale Array's mit _ArrayToString

    • Oscar
    • 21. Januar 2011 um 09:58

    Die beiden Arrays haben die gleiche Anzahl an Elementen?
    Dann so:

    [autoit]


    Global $array1[3] = ['Text1', 'Text2', 'Text3']
    Global $array2[3] = [1, 2, 3]
    Global $string = ''

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

    For $i = 0 To UBound($array1) - 1
    $string &= $array2[$i] & '=' & $array1[$i] & ' & '
    Next
    $string = StringTrimRight($string, 3)
    MsgBox(0, '$string = ', $string)

    [/autoit]
  • [Minecraft] Server für Autoit.de

    • Oscar
    • 20. Januar 2011 um 22:28

    [verschoben nach OT]

  • EditBox + GuiCtrlSetData Problem

    • Oscar
    • 20. Januar 2011 um 18:50
    Zitat von N0THING

    aber dann habe ich das Problem das er wieder nach oben springt...

    Äh, wenn Du das Editfeld leerst, dann ist da logischerweise nichts mehr. Wohin soll er denn sonst springen? ;)
    Oder habe ich das jetzt falsch verstanden?

  • Refresh beim resizen einer Rebar

    • Oscar
    • 20. Januar 2011 um 18:18

    Ahhh! UEZ, Du bist mein Retter. So geht's ohne $WS_EX_COMPOSITED.
    Dann hat die Rebar ja doch noch eine Chance. :)

    Vielen Dank!

  • EditBox + GuiCtrlSetData Problem

    • Oscar
    • 20. Januar 2011 um 18:03

    Du musst hier

    [autoit]

    GuiCtrlSetData($Edit1, "" , 1)

    [/autoit]


    das ", 1" weglassen, also ohne dritten Parameter.

  • Refresh beim resizen einer Rebar

    • Oscar
    • 20. Januar 2011 um 18:01

    Ich muss Dir zustimmen, Raupi. Es funktioniert zwar in dem obigen Beispiel, aber nicht im FileCommander. Da flackern die Listviews wie blöd und das einlesen dauert ewig.
    $WS_EX_COMPOSITED ist also keine Lösung (habe das Thema wieder auf "offen" gesetzt).

  • EditBox + GuiCtrlSetData Problem

    • Oscar
    • 20. Januar 2011 um 16:43

    Wow! Klasse Lösung! Muss ich mal ins Archiv aufnehmen. :thumbup:

  • Ändern von Eigentümer/Firma

    • Oscar
    • 20. Januar 2011 um 16:31

    Die Adminrechte braucht man nicht überall. HKCU lässt sich auch ohne beschreiben.
    Aber für HKLM hast Du recht. :)

    Edit: Ich muss mich da selbst korrigieren. Man braucht auch für HKCU AdminRechte. Sprenger120, Deine Antwort ist also voll und ganz korrekt. Entschuldige bitte!

  • Refresh beim resizen einer Rebar

    • Oscar
    • 20. Januar 2011 um 14:16

    Das Problem hat sich erledigt!
    Ich konnte es nach langem rumprobieren endlich lösen: $WS_EX_COMPOSITED als ExStyle für das Fenster.

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <GuiReBar.au3>
    #include <GuiToolBar.au3>
    #include <GuiComboBox.au3>
    #include <GuiDateTimePicker.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiConstantsEx.au3>
    $Debug_RB = False
    Global $hReBar
    GUIRegisterMsg($WM_SIZE, "WM_SIZE")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    _main()
    Func _main()
    Local $hgui, $btnExit, $hToolbar, $hCombo, $hDTP, $hInput, $wpos
    Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp
    $hgui = GUICreate("Rebar", 400, 396, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX), $WS_EX_COMPOSITED)
    ; create the rebar control
    $hReBar = _GUICtrlRebar_Create($hgui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))
    ; create a toolbar to put in the rebar
    $hToolbar = _GUICtrlToolbar_Create($hgui, BitOR($TBSTYLE_FLAT, $CCS_NORESIZE, $CCS_NOPARENTALIGN))
    ; Add standard system bitmaps
    Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar)
    Case 0
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
    Case 2
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    EndSwitch
    ; Add buttons
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW)
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)
    ; create a combobox to put in the rebar
    $hCombo = _GUICtrlComboBox_Create($hgui, "", 0, 0, 120)
    _GUICtrlComboBox_BeginUpdate($hCombo)
    _GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
    _GUICtrlComboBox_EndUpdate($hCombo)
    ; create a date time picker to put in the rebar
    $hDTP = _GUICtrlDTP_Create($hgui, 0, 0, 190)
    ; add band with control
    _GUICtrlRebar_AddBand($hReBar, $hCombo, 120, 200, "Dir *.exe")
    ; add band with date time picker
    _GUICtrlRebar_AddBand($hReBar, $hDTP, 120)
    ; add band with toolbar to begining of rebar
    _GUICtrlRebar_AddToolBarBand($hReBar, $hToolbar, "", 0)
    ;add another control
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($hInput), 120, 200, "Name:")
    $btnExit = GUICtrlCreateButton("Exit", 150, 360, 100, 25)
    GUISetState(@SW_SHOW)
    Sleep(1000)
    $wpos = WinGetPos($hgui)
    WinMove($hgui, '', Default, Default, 500)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $btnExit
    Exit
    EndSwitch
    WEnd
    EndFunc ;==>_main
    Func WM_SIZE($hWnd)
    Local $wpos
    $wpos = WinGetPos($hWnd)
    ControlMove($hWnd, "", $hReBar, 0, 0, $wpos[2])
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_SIZE
    Func WM_NOTIFY()
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    Func _DebugPrint($s_text, $line = @ScriptLineNumber)
    ConsoleWrite( _
    "!===========================================================" & @LF & _
    "+======================================================" & @LF & _
    "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
    "+======================================================" & @LF)
    EndFunc ;==>_DebugPrint

    [/autoit]
  • Befehl ausführen nach Mausklick in ein bestimmten Bereich eines Fensters

    • Oscar
    • 20. Januar 2011 um 12:53

    Ich bin keineswegs beleidigt.
    Es ist nur so, dass Du wichtige Informationen nicht nennst. Wenn ich jetzt lese, dass Du den Titel noch nicht weisst, dann lässt das darauf schliessen, dass es sich um eine eigene GUI handelt.
    In dem Fall hast Du noch ganz andere Möglichkeiten (z.B. GUIGetCursorInfo):

    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate('Test')
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_PRIMARYUP
    $aInfo = GUIGetCursorInfo($hGui)
    If $aInfo[0] > 10 And $aInfo[0] < 50 And $aInfo[1] > 10 And $aInfo[1] < 50 Then MsgBox(0, 'Klick', 'getroffen')
    EndSwitch
    WEnd

    [/autoit]
  • Fileopen Dialog Daten in eine INI schreiben

    • Oscar
    • 20. Januar 2011 um 12:40

    Du schreibst den Zähler einfach mit in die Inidatei:

    Spoiler anzeigen
    [autoit]


    $sIniFile = @ScriptDir & '\config.ini'
    Do
    $sFile = FileOpenDialog('Test', '', 'All (*.*)')
    If Not @error Then
    $iCount = IniRead($sIniFile, 'Files', 'Count', -1)
    $iCount += 1
    IniWrite($sIniFile, 'Files', 'Count', $iCount)
    IniWrite($sIniFile, 'Files', $iCount, $sFile)
    EndIf
    Until @error

    [/autoit]

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™