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

Beiträge von Tweaky

  • Icons glätten?

    • Tweaky
    • 11. April 2013 um 23:10

    Wow :!:
    Wiedermal genial.

    Ich habe noch das anzeigen über GuiCtrlCreateIcon ergänzt.
    Sehe ich es richtig, dass ich die beste Qualität über "dein" GuiCtrlCreateIcon erreiche?
    Was hätte GuiCtrlCreatePic für einen Vorteil? Hier sehe ich nur den Nachteil, dass das Icon verschwindet, wenn ich die GUI minimiere.

    Habe ich die Werte richtig geändert, dass es mir 24x24 anzeigt?

  • Icons glätten?

    • Tweaky
    • 11. April 2013 um 21:25

    meistertogo
    Dies ist mir schon klar, jedoch sind die Icons in Dateien die nicht von mir sind

    UEZ
    Ist dann die Qualität besser?
    Kann du mir auf die Sprünge helfen, welche Befehle da gebraucht werden.
    Mit WinAPI und GDI+ tue ich mich immer schwer.

    EDIT: Hab nun doch noch was gefunden.
    Momentan benötige die Qualität bei dem Icon 24x24.
    Dieses ist mit GDI+ leider auch nicht besser :wacko:

    Spoiler anzeigen
    [autoit]

    #Region ;************ Includes ************
    #Include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #EndRegion ;************ Includes ************

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

    $hGui = GUICreate("Meine GUI Icons", 700, 600)

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

    $icon = "C:\Windows\system32\mobsync.exe"

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

    GUICtrlCreateIcon($icon, 1, 20, 20, 12, 12)
    GUICtrlCreateIcon($icon, 1, 100, 20, 24, 24)
    GUICtrlCreateIcon($icon, 1, 200, 20, 64, 64)
    GUICtrlCreateIcon($icon, 1, 300, 20, 256, 256)

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

    $hIcon = _WinAPI_PrivateExtractIcon($icon, 0, 256, 256)

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

    GUISetState()

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

    $hDC = _WinAPI_GetDC($hGui)

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

    _WinAPI_DrawIconEx($hDC, 20, 40, $hIcon, 12, 12)
    _WinAPI_DrawIconEx($hDC, 100, 60, $hIcon, 24, 24)
    _WinAPI_DrawIconEx($hDC, 200, 100, $hIcon, 64, 64)
    _WinAPI_DrawIconEx($hDC, 300, 280, $hIcon, 256, 256)

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

    While 1
    Local $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then
    _WinAPI_DestroyIcon($hIcon)
    ExitLoop
    EndIf
    WEnd

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

    Func _WinAPI_PrivateExtractIcon($sIcon, $iIndex, $iWidth, $iHeight)

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

    Local $hIcon, $tIcon = DllStructCreate('hwnd'), $tID = DllStructCreate('hwnd')
    Local $Ret = DllCall('user32.dll', 'int', 'PrivateExtractIcons', 'str', $sIcon, 'int', $iIndex, 'int', $iWidth, 'int', $iHeight, 'ptr', DllStructGetPtr($tIcon), 'ptr', DllStructGetPtr($tID), 'int', 1, 'int', 0)

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

    If (@error) Or ($Ret[0] = 0) Then
    Return SetError(1, 0, 0)
    EndIf
    $hIcon = DllStructGetData($tIcon, 1)
    If ($hIcon = Ptr(0)) Or (Not IsPtr($hIcon)) Then
    Return SetError(1, 0, 0)
    EndIf
    Return $hIcon
    EndFunc ;==>_WinAPI_PrivateExtractIcon

    [/autoit]
  • Icons glätten?

    • Tweaky
    • 11. April 2013 um 20:10

    Hi,
    gibt es eine Möglichkeit Icons zu glätten?
    Oder sonst wie die Qualität zu verbessern?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Meine GUI Icons", 700, 300)

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

    $icon = "C:\Windows\system32\mobsync.exe"

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

    GUICtrlCreateIcon($icon, 0, 20, 20, 12, 12)
    GUICtrlCreateIcon($icon, 0, 100, 20, 24, 24)
    GUICtrlCreateIcon($icon, 0, 200, 20)
    GUICtrlCreateIcon($icon, 0, 300, 20, 256, 256)
    GUISetState()

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

    While 1
    Local $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]
  • GUI per Maus einblenden

    • Tweaky
    • 8. April 2013 um 19:13

    YaeroxXO
    Nun ist der 5 Pixel breite Strich immer zu sehen

    Spoiler anzeigen
    [autoit]

    #region ;************ Includes ************
    #include <WindowsConstants.au3>
    #endregion ;************ Includes ************

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

    Global $gui_breite = 600
    Global $gui_hoehe = 60
    Global $gui_oben = 0
    Global $gui_oben_beginn = $gui_oben - $gui_hoehe + 5
    Global $gui_pos = (@DesktopWidth - $gui_breite) / 2 + 300
    Global $gui_beginn = $gui_pos
    Global $gui_ende = $gui_beginn + $gui_breite
    Global $titel = "Test123"

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

    Global $h_gui = GUICreate($titel, $gui_breite, $gui_hoehe, $gui_pos, $gui_oben_beginn, $WS_POPUP, $WS_EX_ACCEPTFILES)

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

    Global $einblenden = 0 ;einblenden aktivieren
    Global $ausblenden = 0 ;ausblenden aktivieren
    Global $status = 0 ;0 = ausgeblendet / 1 = eingeblendet
    Global $zeitgrenze = 1000 ;1 Sekunde bis zum ein- bzw. ausblenden
    Global $mouse_pos, $begin

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

    GUISetState()

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

    While 1
    Sleep(10)
    $mouse_pos = MouseGetPos()

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

    If $status = 0 And $einblenden = 0 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] = 0 Then
    $begin = TimerInit()
    $einblenden = 1

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

    ElseIf $status = 0 And $einblenden = 1 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 Then
    $einblenden = 0

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

    ElseIf $status = 1 And $ausblenden = 0 And ($mouse_pos[0] < $gui_beginn Or $mouse_pos[0] > $gui_ende Or $mouse_pos[1] > $gui_hoehe) Then
    $begin = TimerInit()
    $ausblenden = 1

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

    ElseIf $status = 1 And $ausblenden = 1 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $mouse_pos[1] <= $gui_hoehe Then
    $begin = TimerInit()
    $ausblenden = 0
    EndIf

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

    ;~ ConsoleWrite($status & @tab & TimerDiff($begin) & @CRLF)

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

    If TimerDiff($begin) > $zeitgrenze Then
    If $einblenden = 1 And $status = 0 Then
    WinMove($titel, "", Default, $gui_oben, Default, $gui_hoehe)
    $status = 1
    $einblenden = 0
    ElseIf $ausblenden = 1 And $status = 1 Then
    WinMove($titel, "", Default, $gui_oben_beginn)
    $status = 0
    $ausblenden = 0
    EndIf
    EndIf
    WEnd

    [/autoit]
  • GUI per Maus einblenden

    • Tweaky
    • 7. April 2013 um 00:56

    Trotzdem Danke.
    So habe nun doch noch was hinbekommen.
    Würdet ihr damit einverstanden sein :?::D

    Spoiler anzeigen
    [autoit]

    #region ;************ Includes ************
    #include <WindowsConstants.au3>
    #endregion ;************ Includes ************

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

    Global $gui_breite = 600
    Global $gui_hoehe = 60
    Global $gui_oben = 0
    Global $gui_oben_beginn = $gui_oben - $gui_hoehe + 5
    Global $gui_pos = (@DesktopWidth - $gui_breite) / 2 + 300
    Global $gui_beginn = $gui_pos
    Global $gui_ende = $gui_beginn + $gui_breite
    Global $titel = "Test123"

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

    Global $h_gui = GUICreate($titel, $gui_breite, $gui_hoehe, $gui_pos, $gui_oben_beginn, $WS_POPUP, $WS_EX_ACCEPTFILES)

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

    Global $einblenden = 0 ;einblenden aktivieren
    Global $ausblenden = 0 ;ausblenden aktivieren
    Global $status = 0 ;0 = ausgeblendet / 1 = eingeblendet
    Global $zeitgrenze = 1000 ;1 Sekunde bis zum ein- bzw. ausblenden
    Global $mouse_pos, $begin

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

    GUISetState()

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

    While 1
    Sleep(10)
    $mouse_pos = MouseGetPos()

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

    If $status = 0 And $einblenden = 0 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] = 0 Then
    $begin = TimerInit()
    $einblenden = 1

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

    ElseIf $status = 0 And $einblenden = 1 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 Then
    $einblenden = 0

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

    ElseIf $status = 1 And $ausblenden = 0 And ($mouse_pos[0] < $gui_beginn Or $mouse_pos[0] > $gui_ende Or $mouse_pos[1] > $gui_hoehe) Then
    $begin = TimerInit()
    $ausblenden = 1

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

    ElseIf $status = 1 And $ausblenden = 1 And $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $mouse_pos[1] <= $gui_hoehe Then
    $begin = TimerInit()
    $ausblenden = 0
    EndIf

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

    ;~ ConsoleWrite($status & @tab & TimerDiff($begin) & @CRLF)

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

    If TimerDiff($begin) > $zeitgrenze Then
    If $einblenden = 1 And $status = 0 Then
    WinMove($titel, "", Default, $gui_oben, Default, 50)
    $status = 1
    $einblenden = 0
    ElseIf $ausblenden = 1 And $status = 1 Then
    WinMove($titel, "", Default, $gui_oben_beginn)
    $status = 0
    $ausblenden = 0
    EndIf
    EndIf
    WEnd

    [/autoit]
  • GUI per Maus einblenden

    • Tweaky
    • 7. April 2013 um 00:50

    Ja du hast mir geholfen.
    Ich habe mich schon gewundert, warum die GUI verschwindet,wenn ich über ein Control fahre.

    Dann habe ich erst deinen Edit gelesen.
    Also heißt dies, dass deine Lösung in diesem Mal nicht funktioniert, da ich auch Controls in der GUI habe?

    Heißt dies, dass ich wieder zurück zu meinem Skript vom 1. Post gehen muß?

  • GUI per Maus einblenden

    • Tweaky
    • 7. April 2013 um 00:40

    name22
    es liest sich alles so einfach wenn man deine Lösung sieht :thumbup:
    Mit GUIRegisterMsg kann ich leider nicht viel anfangen, wenn ich etwas selber schreibe.

    Bei deinem Bsp. verschwand leider die GU sofort wieder.
    Ich es erweitert, dass man min. 1 Sekunde außerhalb der GUI sein muss, dass dies passiert.
    Wie findest du diese Erweiterung?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <APIConstants.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>

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

    ; - Author: name22 (http://www.autoit.de)

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

    $iGUI_Width = 400 ;GUI Breite
    $iGUI_Height = 100 ;GUI Höhe

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

    $iMinHeight = 10 ;Größe des sichtbaren Teils der GUI (wenn sie versteckt ist)
    $iGUI_XPos = @DesktopWidth / 2 + 300 ;X-Position der GUI
    $iGUI_YPos = $iMinHeight - $iGUI_Height ;Y-Position der GUI

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

    $iHovertime = 1000 ;Zeit (in ms) die der Zeiger über dem Fenster verbringen muss, bis es eingeblendet wird
    $iSpeed = 5 ;Geschwindigkeit der Einblendung
    $bSliding = False

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

    $hGUI = GUICreate("Slide in/out", $iGUI_Width, $iGUI_Height, $iGUI_XPos, $iGUI_YPos, $WS_POPUP)
    GUISetState()

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

    _WinAPI_TrackMouseEvent($hGUI, BitOR($TME_HOVER, $TME_LEAVE), $iHovertime)

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

    GUIRegisterMsg($WM_MOUSEMOVE, "WM_MOUSEMOVE")
    GUIRegisterMsg($WM_MOUSEHOVER, "WM_MOUSEHOVER")
    GUIRegisterMsg($WM_MOUSELEAVE, "WM_MOUSELEAVE")

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

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

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

    Func WM_MOUSEMOVE($hWnd, $iMsg, $wParam, $lParam)
    AdlibUnRegister("_GUIHide")
    _WinAPI_TrackMouseEvent($hGUI, BitOR($TME_HOVER, $TME_LEAVE), $iHovertime)
    EndFunc ;==>WM_MOUSEMOVE

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

    Func WM_MOUSEHOVER($hWnd, $iMsg, $wParam, $lParam)
    AdlibUnRegister("_GUIHide")
    If Not $bSliding Then
    $bSliding = True
    AdlibRegister("_GUISlide", 20)
    EndIf
    EndFunc ;==>WM_MOUSEHOVER

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

    Func WM_MOUSELEAVE($hWnd, $iMsg, $wParam, $lParam)
    AdlibRegister("_GUIHide", $iHovertime)
    EndFunc ;==>WM_MOUSELEAVE

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

    Func _GUISlide()
    If Not $bSliding Then Return
    If $iGUI_YPos < 0 Then
    $iGUI_YPos += $iSpeed
    ElseIf $iGUI_YPos > 0 Then
    $iGUI_YPos = 0
    EndIf

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

    _WinAPI_SetWindowPos($hGUI, $HWND_TOP, $iGUI_XPos, $iGUI_YPos, 0, 0, $SWP_NOSIZE)
    EndFunc ;==>_GUISlide

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

    Func _GUIHide()
    If $bSliding Then
    $bSliding = False
    AdlibUnRegister("_GUISlide")
    $iGUI_YPos = $iMinHeight - $iGUI_Height
    _WinAPI_SetWindowPos($hGUI, $HWND_TOP, $iGUI_XPos, $iGUI_YPos, 0, 0, $SWP_NOSIZE)
    EndIf
    EndFunc ;==>_GUIHide

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _WinAPI_TrackMouseEvent
    ; Description....: Posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time.
    ; Syntax.........: _WinAPI_TrackMouseEvent ( $hWnd, $iFlags [, $iTime] )
    ; Parameters.....: $hWnd - Handle to the window to track.
    ; Return values..: $iFlags - The services requested. This parameter can be a combination of the following values.
    ;
    ; $TME_CANCEL
    ; $TME_HOVER
    ; $TME_LEAVE
    ; $TME_NONCLIENT
    ; $TME_QUERY
    ;
    ; $iTime - The hover time-out (if $TME_HOVER was specified in $Flags), in milliseconds. Can be (-1), which
    ; means to use the system default hover time-out.
    ; Failure - 0 and sets the @error flag to non-zero.
    ; Author.........: Matt Diesel (Mat)
    ; Modified.......: Yashied
    ; Remarks........: None
    ; Related........:
    ; Link...........: @@MsdnLink@@ TrackMouseEvent
    ; Example........: Yes
    ; ===============================================================================================================================

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

    Func _WinAPI_TrackMouseEvent($hWnd, $iFlags, $iTime = -1)

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

    Local $tTME = DllStructCreate('dword;dword;hwnd;dword')

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

    DllStructSetData($tTME, 1, DllStructGetSize($tTME))
    DllStructSetData($tTME, 2, $iFlags)
    DllStructSetData($tTME, 3, $hWnd)
    DllStructSetData($tTME, 4, $iTime)

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

    Local $Ret = DllCall('user32.dll', 'int', 'TrackMouseEvent', 'ptr', DllStructGetPtr($tTME))

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

    If (@error) Or (Not $Ret[0]) Then
    Return SetError(1, 0, 0)
    EndIf
    Return 1
    EndFunc ;==>_WinAPI_TrackMouseEvent

    [/autoit]

    @Make-Grafik
    Ich weiß dies sieht doof aus. Ich habe nicht mehr weiterwusst und wollte so den Timer auf eine hohe Zahl erhöhen, damit dieser einen Minuswert ausgibt.
    Glaube ich steht da momentan aufm Schlauch. War heute wohl doch zu lang.
    Denke aber name22 hat wohl die perfekte Lösung schon gepostet.
    Dies hat dann soweit funktioniert.

  • GUI per Maus einblenden

    • Tweaky
    • 6. April 2013 um 23:37

    name22
    Das hast du richtig verstanden. Nur weiß ich mittlerweile nicht mehr wo ich es hinschreiben soll ;(

    misterspeed
    Ja mit dem Timer habe ich ein Problem. Wobei das wenn dich GUI da ist und ich für weniger als 1 Sekunde die GUI verlasse bleibt sie erhalten.
    Nur beim einblenden wird sie trotzdem eingeblendet.
    Denke auch, dass es eher unwahrscheinlich ist, dass jemand einen Monitor darübersetzt. Aber dennoch danke für den Hinweis.

  • GUI per Maus einblenden

    • Tweaky
    • 6. April 2013 um 23:15

    Hi,
    ich habe eine GUI (ganz oben am Bildschirm, leicht rechts versetzt).

    Folgendes will ich machen:
    Bleibe ich mit der Maus min. 1 Sekunden oben (Y=0) stehen, so wird die GUI eingeblendet.
    Vorrausetzung ist, dass ich in x-Richtung innerhalb der GUI bin.

    Ist die GUI sichtbar soll diese wieder verschwinden, wenn die Maus sich min. 1 Sekunde ausserhalb der GUI befindet.

    Dies hört sich im ersten Moment einfach an, ich meine jedoch dass es sich in sich hat.
    Momentan funktioniert das meiste. Wenn ich jedoch kürzer als 1 Sekunde ob auf Y=0 stehen bleibe, erscheint die GUI trotzdem ?(

    Kann natürlich auch sein. dass ich auf dem Schlauch stehe und das alles viel einfacher geht :P


    Spoiler anzeigen
    [autoit]

    #Region ;************ Includes ************
    #Include <WindowsConstants.au3>
    #EndRegion ;************ Includes ************

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

    Global $gui_breite = 600
    Global $gui_hoehe = 60
    Global $gui_oben = 0
    Global $gui_oben_beginn = $gui_oben - $gui_hoehe + 5
    Global $gui_pos = (@DesktopWidth - $gui_breite) / 2 + 300
    Global $gui_beginn = $gui_pos
    Global $gui_ende = $gui_beginn + $gui_breite
    Global $titel = "Test123"

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

    Global $h_gui = GUICreate($titel, $gui_breite, $gui_hoehe, $gui_pos, $gui_oben_beginn, $WS_POPUP, $WS_EX_ACCEPTFILES)

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

    Global $begin = 999999999 ;Beginn Dummy
    Global $begin_xxx = $begin ;

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

    Global $einblenden = 0 ;einblenden aktivieren
    Global $ausblenden = 0 ;ausblenden aktivieren
    Global $status = 0 ;0 = ausgeblendet / 1 = eingeblendet
    Global $hoehe_grenze = 0 ;Y-Koordinate zum einblenden
    Global $zeitgrenze = 1000 ;1 Sekunde bis zum ein- bzw. ausblenden
    Global $mouse_pos, $aktiviert

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

    GUISetState()

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

    While 1
    Sleep(100)
    $mouse_pos = MouseGetPos()

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

    If $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] = $hoehe_grenze Then
    If $status = 0 Then
    If $einblenden = 0 Then
    $einblenden = 1
    $begin = TimerInit()
    $ausblenden = 0
    $aktiviert = 1
    EndIf
    EndIf

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

    ElseIf $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $mouse_pos[1] <= $gui_hoehe Then
    If $status = 1 Then
    $ausblenden = 0
    $einblenden = 0
    $begin = $begin_xxx
    EndIf

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

    ElseIf $mouse_pos[0] < $gui_beginn Or $mouse_pos[0] > $gui_ende Or $mouse_pos[1] > $hoehe_grenze Then
    If $status = 1 Then
    If $ausblenden = 0 Then
    $ausblenden = 1
    $begin = TimerInit()
    $einblenden = 0
    $aktiviert = 1
    EndIf
    EndIf

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

    ElseIf $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $status = 1 Then
    If $status = 0 Then
    $ausblenden = 0
    $einblenden = 0
    $begin = $begin_xxx
    $hoehe_grenze = 0
    EndIf

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

    EndIf

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

    If $aktiviert = 1 Then
    If TimerDiff($begin) > $zeitgrenze Then
    If $einblenden = 1 And $status = 0 Then
    WinMove($titel, "", Default, $gui_oben, Default, 50)
    $status = 1
    $einblenden = 0
    $hoehe_grenze = $gui_hoehe
    ElseIf $ausblenden = 1 And $status = 1 Then
    WinMove($titel, "", Default, $gui_oben_beginn)
    $status = 0
    $ausblenden = 0
    $hoehe_grenze = 0
    EndIf
    EndIf
    EndIf
    WEnd

    [/autoit]
  • Sortierung

    • Tweaky
    • 1. April 2013 um 12:19

    Also ganz ehrlich. Mir reicht dies immer noch nicht.
    Ich denke, dass es ganz einfach gelöst werden könnte.
    Aber anhand der wenigen Antworten andere User liege ich doch nicht falsch, dass du dein Vorhabe nzu ungenau beschreibst.

    Was willst du genau machen?

    Welche Werte dürfen sich nicht doppeln (Local, 1, 2, 3, 1234, 2345, 3456)???
    Was soll passieren, wenn ein Wert identisch ist?
    Was soll passieren, wenn alle Werte identisch ist?
    .....................

  • Sortierung

    • Tweaky
    • 31. März 2013 um 14:53

    Mehr Infos bitte.
    Müssen alle Dateien anders sein oder nur einer?

  • Sortierung

    • Tweaky
    • 31. März 2013 um 14:44

    Du musst uns schon dein Skript bzw. deine ini zeigen.
    Eigentlich sollte dies nich schwer sein.
    Sollte eigentlich mit den Ini...-Befehlen möglich sein.

  • RechenFenster

    • Tweaky
    • 28. März 2013 um 23:19

    Ich hoffe dir hilft folgendes

    Spoiler anzeigen
    [autoit]

    #region ;************ Includes ************
    #include <Array.au3>
    #include <String.au3>
    #include <GUIConstantsEx.au3>
    #endregion ;************ Includes ************

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

    Global $durchgang = 0, $s_string = "", $z = 1

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

    Opt("GUIOnEventMode", 1)
    $window_TR = GUICreate("MyGui", 500, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")

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

    $buttonTRlsg = GUICtrlCreateButton("=", 320, 20, 70, 70)
    GUICtrlSetFont(-1, 70, 400)

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

    $LabelTR1 = GUICtrlCreateLabel("", 10, 10, 300, 100)
    GUICtrlSetFont(-1, 70, 400)

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

    $in1 = GUICtrlCreateInput("", 400, 10, 90, 90)
    GUICtrlSetFont(-1, 55, 300)

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

    GUICtrlSetOnEvent($buttonTRlsg, "calc")
    GUISetState(@SW_SHOW, $window_TR)

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

    ;Array mit allen Aufgaben erstellen
    $s_string &= _StringRepeat("+", 2)
    $s_string &= _StringRepeat("-", 3)
    $array = StringSplit($s_string, "")
    ;~ _ArrayDisplay($array)

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

    ;Rechen-Func einmalig aufrufen
    _rechnen($array[1], 1)

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

    Func _rechnen($s_art, $s_max)
    GUICtrlSetData($in1, "")
    GUICtrlSetState($in1, $GUI_FOCUS)
    $i = Random(1, 10, 1)
    $i2 = Random(1, 10, 1)
    GUICtrlSetData($LabelTR1, $i & " " & $s_art & " " & $i2)
    EndFunc ;==>_rechnen

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

    Func calc()
    $Erg = Execute(GUICtrlRead($LabelTR1))
    GUICtrlSetData($LabelTR1, $Erg)
    If GUICtrlRead($in1) = $Erg Then
    MsgBox(0, "Super", "Richtig gemacht :-D")
    Else
    MsgBox(0, "Schade", "Leider Falsch :-(")
    EndIf

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

    If $z = UBound($array) - 1 Then Exit

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

    ;Rechen-Func aufrufen bis das Array durchlaufen wurde
    $z += 1
    _rechnen($array[$z], $z)
    EndFunc ;==>calc

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

    While 1
    Sleep(10)
    WEnd

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

    Func Ende()
    Exit
    EndFunc ;==>Ende

    [/autoit]

    Das mit dem Lücken-Rechner soltest du selber hinbekommen :rolleyes:

    PS: Bitte den Spoiler neben dem AutoIt Symbol "SP" verwenden. Dann wird der Thread nicht so endlos lang ;)

  • Deutsche Hilfe - Neue Dateien 3.3.8.1 - mitmachen

    • Tweaky
    • 28. März 2013 um 13:48

    Kann noch jemand helfen zu übersetzen?

  • Problem mit FileCopy (hilfe)

    • Tweaky
    • 28. März 2013 um 13:47

    Teste mal mit FileExists ob die zu kopiernde Datei existiert.
    Verwende mal einen anderen Zielordner.

  • Func problem

    • Tweaky
    • 25. März 2013 um 18:12

    Für was ist denn dein Skript :?:

  • RechenFenster

    • Tweaky
    • 24. März 2013 um 22:11

    Oh ganz übersehen, die kann natürlich raus. ^^

  • RechenFenster

    • Tweaky
    • 24. März 2013 um 18:15

    Habs mal schnell für die geändert.

    Spoiler anzeigen
    [autoit]

    #region ;************ Includes ************
    #include <GUIConstantsEx.au3>
    #endregion ;************ Includes ************

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

    Global $durchgang = 0

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

    Opt("GUIOnEventMode", 1)
    $window_TR = GUICreate("MyGui", 500, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")

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

    $buttonTRlsg = GUICtrlCreateButton("=", 320, 20, 70, 70)
    GUICtrlSetFont(-1, 70, 400)

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

    $LabelTR1 = GUICtrlCreateLabel("", 10, 10, 290, 100)
    GUICtrlSetFont(-1, 70, 400)

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

    $in1 = GUICtrlCreateInput("", 400, 10, 90, 90)
    GUICtrlSetFont(-1, 55, 300)

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

    GUICtrlSetOnEvent($buttonTRlsg, "calc")
    GUISetState(@SW_SHOW, $window_TR)

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

    _rechnen()

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

    Func _rechnen()
    GUICtrlSetData($in1, "")
    GUICtrlSetState($in1, $GUI_FOCUS)
    For $x = 1 To 1
    $i = Random(1, 10, 1)
    Next
    For $x2 = 1 To 1
    $i2 = Random(1, 10, 1)
    Next
    GUICtrlSetData($LabelTR1, $i & " + " & $i2)
    EndFunc ;==>_rechnen

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

    While 1
    Sleep(1000)
    WEnd

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

    Func calc()
    $durchgang += 1
    $Erg = Execute(GUICtrlRead($LabelTR1))
    GUICtrlSetData($LabelTR1, $Erg)
    If GUICtrlRead($in1) = $Erg Then
    MsgBox(0, "Super", "Richtig gemacht :-D")
    Else
    MsgBox(0, "Schade", "Leider Falsch :-(")
    EndIf
    If $durchgang = 5 Then Exit
    _rechnen()
    EndFunc ;==>calc

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

    Func Ende()
    Exit
    EndFunc ;==>Ende

    [/autoit]

    Du mußt nach dem lösen einer Aufgabe einfach das erstellen einer neuen Aufgabe wieder aufrufen.
    Nach der 5. Aufgabe beendet sich das Skript dann.

  • Script lässt Dateien aus

    • Tweaky
    • 21. Februar 2013 um 23:38

    Kann eigentlich nur daran liegen, dass deine Pfade falsch sind.
    Lasse sie dir mit ConsoleWrite mal anzeigen.
    Probiere alternativ noch einfache Pfade aus die du direkt im Skript angibst.

  • Script lässt Dateien aus

    • Tweaky
    • 18. Februar 2013 um 22:45

    Also bei mir funktioniert es.

    Zeig mal die Zeile mit dem Funktionsaufruf.
    Hast du evtl. keine Schreibrechte für den Backupordner?

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™