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

Beiträge von Gremlin78

  • exe icon als Bild auf GUI

    • Gremlin78
    • 29. August 2015 um 09:37

    Hallo Leute,
    ich würde gern das Icon, dass ich über

    AutoIt
    #AutoIt3Wrapper_Icon=icon.ico

    eingebunden habe auf meiner Info GUI als Bild verwenden. So hab ichs schon versucht aber ohne Ergebnis. ?(

    AutoIt
    GUICtrlCreatePic($bild,200,100,48,48)
    GUICtrlSetImage(-1, @ScriptFullPath, 0)

    Ne andere Idee war diese aber auch ohne Erfolg.

    Spoiler anzeigen
    AutoIt
    Global $hIcon1 = __WinAPI_ShellExtractIcons(@ScriptFullPath, 0, 48, 48)
    GUICtrlCreateIcon($bild,$hIcon1,120,120,48,48)
    
    
    Func __WinAPI_ShellExtractIcons($sIcon, $iIndex, $iWidth, $iHeight)
        Local $Ret = DllCall('shell32.dll', 'int', 'SHExtractIconsW', 'wstr', $sIcon, 'int', $iIndex, 'int', $iWidth, 'int', $iHeight, 'ptr*', 0, 'ptr*', 0, 'int', 1, 'int', 0)
        If (@error) Or ($Ret[0] = 0) Or ($Ret[5] = Ptr(0)) Then Return SetError(1, 0, 0)
        Return $Ret[5]
    EndFunc   ;==>__WinAPI_ShellExtractIcons


    Hättet ihr ne Idee?
    Danke, Gruß Gremlin

  • Große Icons im Button

    • Gremlin78
    • 17. April 2015 um 23:02

    Cool, damit klappt's.
    Wär ich nie allein drauf gekommen.
    Vielen Dank UEZ für deine Hilfe.

    Over and out.
    Gremlin

  • Große Icons im Button

    • Gremlin78
    • 17. April 2015 um 21:54

    Hallo UEZ,
    das icon ist im 16x16, 32x32, 48x48, 64x64 und 72x72 Format enthalten.

    Gruß Gremlin

  • Große Icons im Button

    • Gremlin78
    • 15. April 2015 um 22:44

    Hallo Leute,
    meine Frage lautet:
    Wie kann ich das Icon auf einem Button, beispielsweise auf eine Größe von 72x72 erhöhen?

    Code
    $button01 = GUICtrlCreateButton('',5,5,80,80,$BS_ICON)
    GUICtrlSetImage(-1,'resource.dll',3); in der dll liegt mein Icon mit verschiedenen Größen

    Ist das möglich?
    Danke, Gruß Gremlin

  • Programm teils als Admin

    • Gremlin78
    • 23. März 2015 um 12:03

    Ja, das mit der @AppDataDir war auch so ein Gedanke, oder Einstellungen in der Registry zu hinterlegen aber übersichtlicher wärs halt im Programmordner.

    Danke, Gruß Gremlin

  • Programm teils als Admin

    • Gremlin78
    • 23. März 2015 um 11:37

    Hallo Leute,
    ich würde gern meine Einstellungen in einer "settings.ini"-Datei speichern. Wenn diese nicht vorhanden ist wird sie vom Programm erstellt. Soweit so gut, doch wenn mein Programm im Standart-Programm-Ordner liegt und die Datei noch nicht vorhanden ist, benötige ich Admin-Rechte für mein Programm um sie zu erstellen.
    Nun meine Frage: kann ich AutoIT sagen, "wenn settings.ini nicht vorhanden, starte Programm als Admin, sonst nicht!" ?

    Gruß Gremlin

  • GUI mit $WS_POPUP bewegen

    • Gremlin78
    • 19. Februar 2015 um 18:46

    Vielen Dank euch beiden,
    die "Lösung" mit dem ExStyle $WS_EX_CONTROLPARENT hatte ich auch schon probiert, aber vergessen anzugeben. Die Lösung von RAUPI funktioniert mal wieder tadelos.

    BIG THX.
    Gruß Gremlin

  • GUI mit $WS_POPUP bewegen

    • Gremlin78
    • 19. Februar 2015 um 17:13

    Hallo liebe Leute,
    ich würde gern meine gui bewegen können, nutze aber $WS_POPUP und $WS_BORDER, sowie ein Menü mit GUICtrlCreateMenu(...).
    Die WM_NCHITTEST Funktion habe ich bereits getestet jedoch ohne Erfolg.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    $GUI=GUICreate('Test',300,200,-1,-1,$WS_POPUP+$WS_BORDER)
    $ribbon=GUICtrlCreateMenu('Menü')
    $ribbonexit=GUICtrlCreateMenuItem('BEENDEN',$ribbon)
    GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $ribbonexit, -3
    Exit
    EndSwitch
    WEnd

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

    Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
    Local $MousePos = MouseGetPos()
    Local $WinPos = WinGetPos($hWnd)
    If $hWnd = $GUI And $iMsg = 0x0084 And $MousePos[1] > $WinPos[1]+35 And $MousePos[0] > $WinPos[0]+5 And _
    $MousePos[0]+5 < $WinPos[0]+$WinPos[2] And $MousePos[1]+5 < $WinPos[1]+$WinPos[3] Then Return 2
    EndFunc

    [/autoit]

    Könnt ihr mir helfen?
    Gruß Gremlin

  • Schleifen in Switch/Case?

    • Gremlin78
    • 17. Februar 2015 um 09:45

    Cool, vielen Dank.
    da bau ich mein Script auf deine Funktion um.

    Gruß Gremlin

  • Schleifen in Switch/Case?

    • Gremlin78
    • 17. Februar 2015 um 09:22

    Ist noch im Umbau...

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=LottoChance.exe
    #AutoIt3Wrapper_Res_Description=v1.2.04
    #AutoIt3Wrapper_Res_Comment=Lottochancen-GENERATOR: 6 aus 49
    #AutoIt3Wrapper_Res_Field=Companyname|dk78soft
    #AutoIt3Wrapper_Res_LegalCopyright=dk78soft
    #AutoIt3Wrapper_Res_ProductVersion=1.2.0.4
    #AutoIt3Wrapper_Res_FileVersion=1.2.0.4
    #AutoIt3Wrapper_Res_Language=7
    #AutoIt3Wrapper_UseUpx
    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 2 -w 4 -w 6
    #AutoIt3Wrapper_Icon=lotto.ico
    ;#AutoIt3Wrapper_Res_Icon_Add=cancel.ico
    ;#AutoIt3Wrapper_Res_Icon_Add=ok.ico
    ;#AutoIt3Wrapper_Res_Icon_Add=write.ico
    #endregion

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

    #include <ComboConstants.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <WindowsConstants.au3>
    #include <GuiStatusBar.au3>
    #include <Date.au3>
    #include <File.au3>
    HotKeySet('{F9}', '_break')

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

    Global $aLottoNum[49], $timer, $bBreak = False,$iCount = 0
    For $i = 1 To 49
    $aLottoNum[$i - 1] = $i
    Next
    Global $progname='LottoChance', $mycompany = 'dkSoftware', $version = '1.02.04'
    Global $breite=410, $hoehe=280
    Global $Form1 = GUICreate($progname, $breite, $hoehe,-1,-1,$WS_Border+$WS_POPUP+$WS_CLIPSIBLINGS)
    Global $ribboncontext =GUICtrlCreateMenu("o(°U°)o ")
    Global $idrandom=GUICtrlCreateMenuItem("Zufallsgenerator", $ribboncontext)
    Global $idclean=GUICtrlCreateMenuItem("Tip löschen", $ribboncontext)
    Global $idsim=GUICtrlCreateMenuItem("Simulation starten", $ribboncontext)
    GUICtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreateMenuItem("", $ribboncontext)
    Global $ribbonexit = GUICtrlCreateMenuItem("Beenden", $ribboncontext)

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

    Global $ahCheck[49]
    For $i = 0 To 48
    $ahCheck[$i] = GUICtrlCreateCheckbox($i + 1, 5 + Mod($i, 7) * 30, 5 + Int($i / 7) * 30, 30, 30,$BS_PUSHLIKE)
    GUICtrlSetFont(-1, 12, 400,0,"IMPACT")
    GUICtrlSetTip(-1, "Wählen Sie ihre 6 Zahlen")
    Next

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

    Global $label1 = GUICtrlCreateLabel(' 6 Zahlen auswählen!',5,235,400,16,1)
    Global $label3 = GUICtrlCreateLabel('0',250,15,60,16,2)
    GUICtrlSetFont(-1, 10, 800,'','Tahoma')
    GUICtrlCreateLabel('x 3 Richtige',312,17,70,15)
    Global $label4 = GUICtrlCreateLabel('0',250,35,60,16,2)
    GUICtrlSetFont(-1, 10, 800,'','Tahoma')
    GUICtrlCreateLabel('x 4 Richtige',312,37,70,15)
    Global $label5 = GUICtrlCreateLabel('0',250,55,60,16,2)
    GUICtrlSetFont(-1, 10, 800,'','Tahoma')
    GUICtrlCreateLabel('x 5 Richtige',312,57,70,15)
    Global $label6 = GUICtrlCreateLabel('0',250,78,60,18,2)
    GUICtrlSetFont(-1, 12, 800,'','Tahoma')
    GUICtrlCreateLabel('x 6 Richtige',312,82,70,15)
    Global $hStatusb = _GUICtrlStatusBar_Create($Form1, -1, "", $SBARS_TOOLTIPS)
    Global $aParts[2] = [$breite-200,$breite]
    Global $prozess = GUICtrlCreateProgress(15,220,380,8)
    GUICtrlSetState(-1,$GUI_HIDE)
    GUISetState()

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

    _GUICtrlStatusBar_SetMinHeight($hStatusb, 25)
    _GUICtrlStatusBar_SetParts($hStatusb, $aParts)
    Global $hIcon = __WinAPI_ShellExtractIcons(@ScriptFullPath, 0, 16, 16)
    _GUICtrlStatusBar_SetIcon($hStatusb, 0, $hIcon)

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

    _GUICtrlStatusBar_SetText($hStatusb,' '&$progname&' '&$version,0)

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

    While 1
    Switch GUIGetMsg()
    Case $ribbonexit
    Exit
    #cs
    Case $ahCheck[0]
    _CheckboxCounter()
    Case $ahCheck[1]
    _CheckboxCounter()
    Case $ahCheck[2]
    _CheckboxCounter()
    Case $ahCheck[3]
    _CheckboxCounter()
    Case $ahCheck[4]
    _CheckboxCounter()
    Case $ahCheck[5]
    _CheckboxCounter()
    Case $ahCheck[6]
    _CheckboxCounter()
    Case $ahCheck[7]
    _CheckboxCounter()
    Case $ahCheck[8]
    _CheckboxCounter()
    Case $ahCheck[9]
    _CheckboxCounter()
    Case $ahCheck[10]
    _CheckboxCounter()
    Case $ahCheck[11]
    _CheckboxCounter()
    Case $ahCheck[12]
    _CheckboxCounter()
    Case $ahCheck[13]
    _CheckboxCounter()
    Case $ahCheck[14]
    _CheckboxCounter()
    Case $ahCheck[15]
    _CheckboxCounter()
    Case $ahCheck[16]
    _CheckboxCounter()
    Case $ahCheck[17]
    _CheckboxCounter()
    Case $ahCheck[18]
    _CheckboxCounter()
    Case $ahCheck[19]
    _CheckboxCounter()
    Case $ahCheck[20]
    _CheckboxCounter()
    Case $ahCheck[21]
    _CheckboxCounter()
    Case $ahCheck[22]
    _CheckboxCounter()
    Case $ahCheck[23]
    _CheckboxCounter()
    Case $ahCheck[24]
    _CheckboxCounter()
    Case $ahCheck[25]
    _CheckboxCounter()
    Case $ahCheck[26]
    _CheckboxCounter()
    Case $ahCheck[27]
    _CheckboxCounter()
    Case $ahCheck[28]
    _CheckboxCounter()
    Case $ahCheck[29]
    _CheckboxCounter()
    Case $ahCheck[30]
    _CheckboxCounter()
    Case $ahCheck[31]
    _CheckboxCounter()
    Case $ahCheck[32]
    _CheckboxCounter()
    Case $ahCheck[33]
    _CheckboxCounter()
    Case $ahCheck[34]
    _CheckboxCounter()
    Case $ahCheck[35]
    _CheckboxCounter()
    Case $ahCheck[36]
    _CheckboxCounter()
    Case $ahCheck[37]
    _CheckboxCounter()
    Case $ahCheck[38]
    _CheckboxCounter()
    Case $ahCheck[39]
    _CheckboxCounter()
    Case $ahCheck[40]
    _CheckboxCounter()
    Case $ahCheck[41]
    _CheckboxCounter()
    Case $ahCheck[42]
    _CheckboxCounter()
    Case $ahCheck[43]
    _CheckboxCounter()
    Case $ahCheck[44]
    _CheckboxCounter()
    Case $ahCheck[45]
    _CheckboxCounter()
    Case $ahCheck[46]
    _CheckboxCounter()
    Case $ahCheck[47]
    _CheckboxCounter()
    Case $ahCheck[48]
    _CheckboxCounter()

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

    For $i = 0 to 48 step 1
    Case $ahCheck[$i]
    _CheckboxCounter()
    Next
    #ce
    Case $idrandom
    _Randoming()
    Case $idclean
    _Clear()
    Case $idsim
    _Start()

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

    EndSwitch

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

    WEnd

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

    Func _Randoming()

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

    For $i = 0 To 48
    GUICtrlSetState($ahCheck[$i],$GUI_DISABLE)
    GUICtrlSetState($ahCheck[$i],$GUI_UNCHECKED)
    Next
    Local $result,$zahl
    For $i = 1 to 6
    Do
    $zahl = Random(1,49,1)
    GUICtrlSetState($ahCheck[$zahl-1],$GUI_CHECKED)
    Until StringInStr($result,$zahl) = 0
    $result &= StringRight($zahl,stringlen($zahl)-1)

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

    Next
    GUICtrlSetState($idsim, $GUI_ENABLE)
    _CheckboxCounter()
    if $iCount <> 6 Then _Randoming()
    AdlibUnRegister()

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

    EndFunc

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

    Func _Break()
    $bBreak = True
    GUICtrlSetState($idsim, $GUI_DISABLE)
    GUICtrlSetState($idrandom,$GUI_ENABLE)
    GUICtrlSetState($idclean,$GUI_ENABLE)
    GUICtrlSetState($prozess,$GUI_HIDE)
    GUICtrlSetData($label1,' Start-Button anklicken!')
    EndFunc ;==>_Break

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

    Func _Clear()
    For $i = 0 To 48
    GUICtrlSetState($ahCheck[$i],$GUI_ENABLE)
    GUICtrlSetState($ahCheck[$i],$GUI_UNCHECKED)
    Next
    GUICtrlSetState($idsim, $GUI_DISABLE)
    GUICtrlSetData($label1,' 6 Zahlen auswählen!')
    EndFunc

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

    Func _Start()
    _CheckboxCounter()
    if $iCount <> 6 Then _Randoming()
    GUICtrlSetState($idrandom,$GUI_DISABLE)
    GUICtrlSetState($idclean,$GUI_DISABLE)
    GUICtrlSetState($idsim, $GUI_DISABLE)
    GUICtrlSetData($label3,0)
    GUICtrlSetData($label4,0)
    GUICtrlSetData($label5,0)
    GUICtrlSetData($label6,0)
    GUICtrlSetState($prozess,$GUI_SHOW)
    GUICtrlSetData($prozess,0)
    Local $aTip[6], $aDraw, $iWin = StringLeft(6, 1),$i3,$i4,$i5,$i6
    $iCount = 0
    For $i = 0 To 48
    If BitAND(GUICtrlRead($ahCheck[$i]), $GUI_CHECKED) Then
    $aTip[$iCount] = $i + 1
    $iCount += 1
    EndIf
    Next
    $iCount = 0
    GUICtrlSetData($label1,' Bitte warten...')

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

    $timer = TimerInit()
    AdlibRegister('_DisplayTimer', 500)
    Do

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

    $iCount += 1
    $aDraw = _Lottodraw()
    Switch _Win($aTip, $aDraw)

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

    Case 3
    $i3 += 1
    GUICtrlSetData($label3,$i3)
    If $i3 = 5 then GUICtrlSetData($prozess,1)
    If $i3 = 10 then GUICtrlSetData($prozess,2)
    If $i3 = 25 then GUICtrlSetData($prozess,3)
    If $i3 = 50 then GUICtrlSetData($prozess,4)
    If $i3 = 100 then GUICtrlSetData($prozess,5)
    If $i3 = 1000 then GUICtrlSetData($prozess,10)
    If $i3 = 2000 then GUICtrlSetData($prozess,15)
    If $i3 = 3000 then GUICtrlSetData($prozess,20)
    If $i3 = 5000 then GUICtrlSetData($prozess,30)
    If $i3 = 7500 then GUICtrlSetData($prozess,40)
    If $i3 = 10000 then GUICtrlSetData($prozess,50)
    If $i3 = 15000 then GUICtrlSetData($prozess,60)
    If $i3 = 20000 then GUICtrlSetData($prozess,70)
    If $i3 = 30000 then GUICtrlSetData($prozess,80)
    If $i3 = 50000 then GUICtrlSetData($prozess,90)
    If $i3 = 75000 then GUICtrlSetData($prozess,95)
    Case 4
    $i4 += 1
    GUICtrlSetData($label4,$i4)
    Case 5
    $i5 += 1
    GUICtrlSetData($label5,$i5)
    Case 6
    $i6 += 1
    GUICtrlSetData($prozess,100)
    $bBreak = True
    GUICtrlSetData($label6,$i6)
    GUICtrlSetData($label1,' Gewonnen!')
    MsgBox(0, 'Lottogewinn', 'Hurra, ' & $iWin & ' Richtige!' & @CRLF & 'Anzahl der Ziehungen: ' _
    & _NumberFormatThousand($iCount) & @CRLF & 'Benötigte Zeit: ' & _NumberFormatThousand(Round(TimerDiff($timer) / 1000)) & ' sek.')
    GUICtrlSetState($prozess,$GUI_HIDE)
    EndSwitch

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

    Until $bBreak
    $bBreak = False
    GUICtrlSetState($idclean, $GUI_ENABLE)
    GUICtrlSetState($idsim, $GUI_ENABLE)
    GUICtrlSetState($idrandom, $GUI_ENABLE)
    AdlibUnRegister()
    EndFunc ;==>_Start

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

    Func _DisplayTimer()
    GUICtrlSetData($label1,' Bitte warten... '& _NumberFormatThousand($iCount)&' Ziehungen')
    EndFunc ;==>_DisplayTimer

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

    Func _Lottodraw()
    Local $aTmp = $aLottoNum, $aDraw[6], $iTmp
    For $i = 0 To 5
    Local $iRandom = Random(0, 48 - $i, 1)
    $aDraw[$i] = $aTmp[$iRandom]
    $aTmp[$iRandom] = $aTmp[48 - $i]
    Next
    _ArraySort($aDraw)
    Return $aDraw
    EndFunc ;==>_Lottodraw

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

    Func _Win($aTip, $aDraw)
    Local $iCount = 0
    For $i = 0 To 5
    If $aTip[$i] = $aDraw[$i] Then $iCount += 1
    Next
    Return $iCount
    EndFunc ;==>_Win

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

    Func _CheckboxCounter()
    Global $iCount = 0
    For $i = 0 To 48
    $iCount += BitAND(GUICtrlRead($ahCheck[$i]), $GUI_CHECKED)
    Next
    GUICtrlSetData($label1,' '&6-$iCount & ' Zahlen auswählen!')
    If $iCount = 6 Then
    _CheckboxState($GUI_DISABLE)
    GUICtrlSetState($idsim, $GUI_ENABLE)
    GUICtrlSetData($label1,' Start-Button anklicken!')
    Else
    _CheckboxState($GUI_ENABLE)
    GUICtrlSetState($idsim, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_CheckboxCounter

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

    Func _CheckboxState($State)
    For $i = 0 To 48
    If BitAND(GUICtrlRead($ahCheck[$i]), $GUI_UNCHECKED) Then GUICtrlSetState($ahCheck[$i], $State)
    Next
    EndFunc ;==>_CheckboxState

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

    Func _NumberFormatThousand($vNumber, $ret='DE') ; bis 18 Vorkommastellen
    Local $sOut = '', $a = StringRegExp(StringReplace($vNumber, '.', ','), "(-?\d{1,3})(\d{3})?(\d{3})?(\d{3})?(\d{3})?(\d{3})?(?:\Z|(,\d+))", 3)
    For $i = 0 To UBound($a) -1
    If $a[$i] <> '' Then $sOut &= '.' & $a[$i]
    Next
    If $ret <> 'DE' Then Return StringTrimLeft(StringReplace(StringReplace($sOut, '.', ','), ',,', '.'), 1)
    Return StringTrimLeft(StringReplace($sOut, '.,', ','), 1)
    EndFunc

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

    Func __WinAPI_ShellExtractIcons($sIcon, $iIndex, $iWidth, $iHeight)
    Local $Ret = DllCall('shell32.dll', 'int', 'SHExtractIconsW', 'wstr', $sIcon, 'int', $iIndex, 'int', $iWidth, 'int', $iHeight, 'ptr*', 0, 'ptr*', 0, 'int', 1, 'int', 0)
    If (@error) Or ($Ret[0] = 0) Or ($Ret[5] = Ptr(0)) Then Return SetError(1, 0, 0)
    Return $Ret[5]
    EndFunc ;==>__WinAPI_ShellExtractIcons

    [/autoit]
  • Schleifen in Switch/Case?

    • Gremlin78
    • 17. Februar 2015 um 09:04

    Hallo Oscar,
    die Schleife geht eigentlich bis 48 und soll über nen Counter (in der Funktion) abgefragt werden ob sechs Zahlen gewählt wurden.
    Und so wird ein Lottozahlen-Generator draus.

    Gruß Gremlin

  • Schleifen in Switch/Case?

    • Gremlin78
    • 17. Februar 2015 um 07:46

    Hallo,
    ist es möglich, Schleifen in Switch/Case zu verwenden, so in dieser Art?

    [autoit]

    While 1
    Switch GUIGetMsg()
    For $i=0 to 20 step 1
    Case $conrol[$i]
    _funktion($i)
    next
    EndSwitch
    WEnd

    [/autoit]

    Gruß Gremlin

  • Checkbox GUI im Vordergrund

    • Gremlin78
    • 11. Februar 2015 um 20:49

    Danke @ Shadow667 & Teare, diese Möglichkeit war mir bisher unbekannt und funktioniert tadelos.

  • Checkbox GUI im Vordergrund

    • Gremlin78
    • 11. Februar 2015 um 19:22

    Hallo Leute,
    ich würde gern in mein Script eine Checkbox einbauen, mit der ich bei Bedarf die GUI in den Vordergrund setzen kann.
    Aber irgendwie funktionert es nicht. Seht ihr meinen Fehler?

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    GUICreate('TOPMOST',350,200,-1,-1,BitOR($WS_POPUP,$WS_BORDER))
    $check=GUICtrlCreateCheckbox('immer im Vordergrund',5,5,120,30)
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case -3
    ExitLoop
    Case $check
    if BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED then
    GUISetStyle(BitOR($WS_POPUP,$WS_BORDER,$DS_SETFOREGROUND))
    ;GUISetStyle(BitOR($WS_POPUP,$WS_BORDER),$WS_EX_TOPMOST) funktioniert auch nicht
    Else
    GUISetStyle(BitOR($WS_POPUP,$WS_BORDER))
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Drag and drop in ListView funktioniert nicht

    • Gremlin78
    • 5. Februar 2015 um 13:12

    Ich kann mich nur wiederholen, spitzen Arbeit, Danke Raupi.

  • Drag and drop in ListView funktioniert nicht

    • Gremlin78
    • 5. Februar 2015 um 11:26

    Vielen Dank Raupi,
    du bist Spitze. :thumbup:
    Ist es eigentlich auch möglich den gedroppten Inhalt nach Dateien und Ordnern zu überprüfen?
    Damit ich quasi für Dateien FileGetSize und für Ordner DirGetSize zum bestimmen der Größe nutzen kann.
    Gruß Gremlin

  • Drag and drop in ListView funktioniert nicht

    • Gremlin78
    • 5. Februar 2015 um 10:39

    Hallo Leute,
    in habe, wie ihr schon gelesen habt ein Problem mit dem drag and drop in ein ListView.

    Hier mein Quellcode

    Spoiler anzeigen
    [autoit]


    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <WinAPISys.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global Const $WM_DROPFILES = 0x0233
    Global $gaDropFiles[1], $str = ""
    $hGUI = GUICreate('Test',550,300,-1,-1, -1,$WS_EX_ACCEPTFILES)
    $idList=GUICtrlCreateListView('Datei|Größe|Hash',10,35,530,240,$ES_AUTOVSCROLL+$ES_READONLY+$WS_VSCROLL)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    _GUICtrlListView_SetColumnWidth($idList,0,390)
    _GUICtrlListView_SetColumnWidth($idList,1,100)
    _GUICtrlListView_SetColumnWidth($idList,2,250)
    GUIRegisterMsg(0x0233, "WM_DROPFILES")
    GUIRegisterMsg ($WM_DROPFILES, "WM_DROPFILES_FUNC")

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

    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $GUI_EVENT_DROPPED
    $str = ""
    For $i = 0 To UBound($gaDropFiles) - 1
    $str &= "|" & $gaDropFiles[$i]
    Next
    GUICtrlSetData($idList, $str)
    EndSwitch
    WEnd

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
    Local $nSize, $pFileName
    Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate("char[" & $nSize & "]")
    DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
    ReDim $gaDropFiles[$i+1]
    $gaDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>_WM_DROPFILES_FUNC

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

    Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam, $lParam
    Local $aFileList
    Switch $hWnd
    Case $hGUI
    $aFileList = _WinAPI_DragQueryFileEx($wParam)
    If IsArray($aFileList) Then
    For $A = 1 To $aFileList[0]
    ConsoleWrite($aFileList[$A] & @CRLF)
    Next
    EndIf
    _WinAPI_DragFinish($wParam)
    Return 0
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_DROPFILES

    [/autoit]


    Die Dateinamen werden bei mir in den Header des ListViews gepackt, warum? ?(?(
    Und warum erhalte ich den Fehler, dass die Konstante $WM_DROPFILES ( Zeile 8 ) bereits definiert ist?

    Gruß Gremlin

  • Icon in transparente GUI

    • Gremlin78
    • 22. Januar 2015 um 19:34

    Danke UEZ für deine Antwort,
    leider ist das Neuland für mich. Ich denke mal, damit kann ich das Icon aus der dll herauslösen,
    aber wie bekomme ich es als Hintergrund gesetzt?
    Hab es jetzt so versucht mit GDIPlus, aber zu sehen ist nichts.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPIShellEx.au3>
    #include <GDIPlus.au3>
    Global $GUI = GUICreate('',256,256,-1,-1,$WS_POPUP, $WS_EX_CONTROLPARENT+$WS_EX_LAYERED)
    Global $pic = _WinAPI_ShellExtractIcon("resource.dll", 5,256,256)
    _GDIPlus_Startup() ; lade und aktiviere GDI+
    Global $hImageGUIBK = _GDIPlus_ImageLoadFromFile($pic) ; lade Hintergrunddatei per GDI+
    SetBitmap($GUI, $hImageGUIBK, 255) ; setze Alpha vom Fenster des Bildes auf 255 (transparent)

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

    Global $GUIsub = GUICreate("", 256, 256, -1, -1, $WS_POPUP, $WS_EX_LAYERED+ $WS_EX_MDICHILD, $GUI)
    GUISetBkColor(0x585858) ; => hintergrund ebenfalls durchsichtig, damit die buttons direkt auf das Hintergrundbild gesetzt werden
    _WinAPI_SetLayeredWindowAttributes($GUIsub, 0x585858)

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

    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_SHOW, $GUIsub)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_SECONDARYUP
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    WEnd

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

    Global $AC_SRC_ALPHA = 1
    Func SetBitmap($hGUI, $hImage, $iOpacity) ; lade hintergrundbild und mache den hintergrund transparent
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    EndFunc

    [/autoit]

    Muss ich das Icon vorher noch zwischenspeichern (im TEMP o.ä.)?

    Gruß Gremlin

  • Icon in transparente GUI

    • Gremlin78
    • 21. Januar 2015 um 20:16

    Hallo Leute, ich mal wieder,

    heute quält mich folgendes Problem. Ich würde gern ein transparentes Icon, das in einer dll steckt, als Hintergrundbild für eine GUI nutzen, finde allerdings keine Lösung.
    Hab es bereits mit GDIPLUS versucht (da konnte ich keine dll benutzen) und mit dem Beispiel der schwebende Buttons sehe ich mein Bild leider auch nicht oder nicht transparent.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <WinAPI.au3>
    $gui = GUICreate("Test Windows regions", 256, 256, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
    $pic = GUICtrlCreateIcon("resource.dll", 5,0,0,256,256)
    GUISetState(@SW_SHOW)
    $pos = WinGetPos($gui)
    _GuiHole($gui, 0, 0, 150, 150)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_SECONDARYUP
    ExitLoop
    EndSwitch
    WEnd
    Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
    Local $outer_rgn, $inner_rgn, $combined_rgn
    $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    _WinAPI_DeleteObject($outer_rgn)
    _WinAPI_DeleteObject($inner_rgn)
    _AddCtrlRegion($combined_rgn, $pic)
    _WinAPI_SetWindowRgn($h_win, $combined_rgn)
    EndFunc ;==>_GuiHole
    Func _AddCtrlRegion($full_rgn, $ctrl_id)
    Local $ctrl_pos, $ctrl_rgn
    If IsArray($ctrl_id) Then
    For $i = 0 To UBound($ctrl_id) -1
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id[$i])
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    Next
    Else
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    EndIf
    EndFunc ;==>_AddCtrlRegion

    [/autoit]

    Ich hoffe ihr könnt mir ein wenig auf die Sprünge helfen,
    Gruß Gremlin

  • Icons aus ICL einbinden

    • Gremlin78
    • 13. November 2014 um 21:25

    Lottich: .icl ist eine Icon Libary, die mit Hilfe der meisten IconEditoren (z.B. IcoFX) erstellt werden können. Sorry, hatte vorausgesetzt, dass das den meisten bekannt wäre.
    @ funkey: Vielen Dank, die Funktion ist echt ne große Hilfe.

    Gruß Gremlin.

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™