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

  • Wie erstelle ich eine *.DLL?

    • BugFix
    • 1. Januar 2009 um 17:43
    Zitat von sl4y3r

    wie lade ich mit AutoIt eine .bmp aus einer .dll?


    Ich hab dir mal ein Muster erstellt:

    [autoit]

    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $ressource = "shell32.dll"
    Global $resID = 131
    Global $hGUI, $hInstance, $hBMP

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

    $hGUI = GUICreate('Test Bitmap from DLL', 500, 200)
    $hInstance = _WinAPI_LoadLibraryEx($ressource, $LOAD_LIBRARY_AS_DATAFILE)
    $hBMP = _WinAPI_LoadBitmap($hInstance, $resID)
    GUISetState()

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

    _ShowRessourceBMP($hGUI, $hBMP, 20, 20)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    _WinAPI_DeleteObject($hBMP)
    _WinAPI_FreeLibrary($hInstance)

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

    Func _ShowRessourceBMP($hGUI, $hBMP, $X, $Y)
    _GDIPlus_Startup ()
    Local $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
    Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, $X, $Y)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_ShutDown()
    EndFunc

    [/autoit]
  • eine Funktion mit "n" Parametern

    • BugFix
    • 1. Januar 2009 um 16:39
    Zitat von sir-gunny

    vorher in ein array übergeben will ich nicht, da ich wirklich einen eigenständige funktion haben will ohne das ich vorher ein array erstelle...

    Dann bleibt dir nur alle möglichen Parameter als optinal vorab zu definieren.

    Zitat von sir-gunny

    verlangsamt es das programm wenn ich zb _Code($CC_Mode, $CC_String, $CC_Param001 = "", $CC_Param002 = "", hier die weiteren 97 , $CC_Param100 = "") allles ausschreibe?

    Die optionalen Parameter an sich werden wohl nicht die Geschwindigkeit beeinträchtigen - aber du mußt ja in der Funktion überprüfen, ob diese belegt sind und ggf. darauf reagieren. Das wird natürlich Zeit kosten. Zumal ohne Array eine Schleifenbearbeitung nicht so toll zu realisieren ist.

  • Wie erstelle ich eine *.DLL?

    • BugFix
    • 1. Januar 2009 um 15:47

    Guckst du: http://ww3.cad.de/foren/ubb/Forum54/HTML/004527.shtml#000005

  • Infos zu Pic's

    • BugFix
    • 1. Januar 2009 um 15:25

    Nicht unbedingt mit _GUIImageList_GetImageInfoEx().

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form2", 413, 298, 281, 173)
    $Pic1 = GUICtrlCreatePic(@WindowsDir & "\Angler.bmp", 3, 3, 128, 128)
    $Button1 = GUICtrlCreateButton("Button1", 333, 270, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Pos = ControlGetPos($Form2, '', $Pic1) ;"Der String soll die Position des Pic1 ermitteln"
    MsgBox (0,"",'X: ' & $Pos[0] & ', Y: ' & $Pos[1] & ', Breite: ' & $Pos[2] & ', Höhe: ' & $Pos[3])
    EndSwitch
    WEnd

    [/autoit]
  • eine Funktion mit "n" Parametern

    • BugFix
    • 1. Januar 2009 um 14:39

    Ich denke mal, du meinst sowas:

    [autoit]

    Local $aParam[3] = [$FOREGROUND_RED,$FOREGROUND_GREEN,$FOREGROUND_BLUE]
    _BlaBla($hConsole, $aParam)

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

    Func _BlaBla($handle, ByRef $aParam)
    Local $iFlag = 0
    For $i = 0 To UBound($aParam) -1
    $iFlag = BitOR($iFlag, $aParam[$i])
    Next
    SetConsoleTextAttribute($handle, $iFlag)
    EndFunc

    [/autoit]

    @ jiyan006 : Überlege bitte, wie du die User hier ansprichst. Der Ton macht bekanntlich die Musik. ;)

  • String auftrennen

    • BugFix
    • 1. Januar 2009 um 14:30

    Warum mit Kanonen auf Spatzen schießen? Struktur ist für diesen Anwendungsfall m.E. die denkbar ungünstigste und aufwändigste Lösung.

  • _captcha

    • BugFix
    • 1. Januar 2009 um 11:46

    CAPTCHA

  • Frage bezüglich Radio-Button

    • BugFix
    • 1. Januar 2009 um 02:33
    Zitat von m-obi

    Aber im Prinzip wird ja nur der erste Radio-Button abgefragt und der zweite nicht, oder?


    Du hast ja nur zwei Radio-Button, also kann immer nur einer checked sein - der andere ist dann logischerweise unchecked.

    zu der Funktion:

    [autoit]

    Func _state1()
    For $i = 0 To 8 ; 0 bis 8 = 9 Elemente im ArrayLabel
    $iFlag = $GUI_HIDE ; das zu setzende Flag wird vorbelegt mit HIDE
    If $i = 0 Or $i = 3 Or $i = 6 Then $iFlag = $GUI_SHOW ; die Elemente(Label) 0,3 und 6 erhalten das Flag SHOW
    GUICtrlSetState($aLabel[$i], $iFlag) ; setzen des gewählten Status
    Next
    EndFunc

    [/autoit]

    Edit: Ich hab es nochmal etwas geändert, nun brauchst du nur noch eine Funktion um den Status zu setzen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $aLabel[9]
    GUICreate("Fund-Datenbank", 700, 500, -1, -1, BitOR($WS_CAPTION, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU))
    GUISetState(@SW_SHOW)
    GUICtrlCreateGroup("Geographische Daten", 10, 10, 300, 85)
    GUICtrlCreateLabel("Stadt:", 20, 30)
    GUICtrlCreateLabel("Bundesland/-staat/Kanton:", 20, 50)
    GUICtrlCreateLabel("Staat:", 20, 70)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUICtrlCreateGroup("Zeitliche Daten", 10, 120, 300, 120)
    $radio_1 = GUICtrlCreateRadio("Einzeltag", 30, 140, 80)
    GUICtrlSetState($radio_1, $GUI_CHECKED)
    $radio_2 = GUICtrlCreateRadio("Zeitraum", 110, 140, 80)
    $aLabel[0] = GUICtrlCreateLabel("Tag:", 20, 170)
    $aLabel[1] = GUICtrlCreateLabel("Anfangstag:", 20, 170)
    $aLabel[2] = GUICtrlCreateLabel("Endtag:", 170, 170)
    $aLabel[3] = GUICtrlCreateLabel("Monat:", 20, 190)
    $aLabel[4] = GUICtrlCreateLabel("Anfangsmonat:", 20, 190)
    $aLabel[5] = GUICtrlCreateLabel("Endmonat:", 170, 190)
    $aLabel[6] = GUICtrlCreateLabel("Jahr:", 20, 210)
    $aLabel[7] = GUICtrlCreateLabel("Anfangsjahr:", 20, 210)
    $aLabel[8] = GUICtrlCreateLabel("Endjahr:", 170, 210)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    _Radio()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $radio_1
    _Radio()
    Case $radio_2
    _Radio()
    EndSwitch
    WEnd

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

    Func _Radio()
    If BitAND(GUICtrlRead($radio_1), $GUI_CHECKED) Then
    _state($GUI_HIDE, $GUI_SHOW) ; Funktion _state() mit den Flags HIDE als Standard und SHOW für Label 0,3,6 aufrufen
    Else
    _state($GUI_SHOW, $GUI_HIDE) ; Funktion _state() mit den Flags SHOW als Standard und HIDE für Label 0,3,6 aufrufen
    EndIf
    EndFunc

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

    Func _state($iStat1, $iStat2)
    For $i = 0 To 8
    $iFlag = $iStat1
    If $i = 0 Or $i = 3 Or $i = 6 Then $iFlag = $iStat2
    GUICtrlSetState($aLabel[$i], $iFlag)
    Next
    EndFunc

    [/autoit]
  • Thumbshot für Bookmarks

    • BugFix
    • 31. Dezember 2008 um 19:00

    Hi,
    das ist mein letztes "Verbrechen" in diesem Jahr :D
    Es lassen sich in Vorschaubildern die Bookmarks anschauen. Es kann aber durchaus sein, dass noch keine Thumbshots für die entsprechende Seite erstellt wurden. Dann geht zumindest der Aufruf an thumbshots.de und bei einem späteren Aufruf liegt es dann (wahrscheinlich) vor.
    Es sind 3 Bilder übereinander, das aktuelle in der Mitte, drüber das vorige, drunter das nächste. Viel Spaß damit.
    Und Dank an https://autoit.de/www.thumbshots.de für den Service.

    Spoiler anzeigen
    [autoit]

    #include <StructureConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    Opt('MustDeclareVars', 1)

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

    ;#################### HIER DEN PFAD ZU EURER BOOKMARK-DATEI EINTRAGEN !!! #####################################
    Local $bookmarks = FileRead(@UserProfileDir & '\Anwendungsdaten\BROWSER\default\PROFIL\bookmarks.html') ;#
    ;#################################################################################################################

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

    If $bookmarks = -1 Then Exit MsgBox(0, 'FEHLER', 'Es wurde keine Bookmark-Datei gelesen!')
    Local $patternLink = '(?:(?:HREF|href)=")(https?://[\w\d\-/:?!=.,;(){}&#%~]*)(?>")'
    Local $gui, $GUIThumb_1, $GUIThumb_2, $GUIThumb_3
    Global $aBookmarks = StringRegExp($bookmarks, $patternLink, 3)
    Global $ListView, $hListView, $oIE_1, $oIE_2, $oIE_3, $slider, $msg

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

    $oIE_1 = _IECreateEmbedded()
    $oIE_2 = _IECreateEmbedded()
    $oIE_3 = _IECreateEmbedded()
    $gui = GUICreate('Bookmark ThumbShot', 600, 398, -1, -1, BitOR($WS_OVERLAPPEDWINDOW,$WS_VISIBLE,$WS_CLIPSIBLINGS,$WS_CLIPCHILDREN))
    $GUIThumb_1 = GUICtrlCreateObj($oIE_1, 10, 10, 166, 126)
    $GUIThumb_2 = GUICtrlCreateObj($oIE_2, 10, 136, 166, 126)
    $GUIThumb_3 = GUICtrlCreateObj($oIE_3, 10, 262, 166, 126)
    _IENavigate($oIE_1, 'about:blank')
    _IENavigate($oIE_2, 'about:blank')
    _IENavigate($oIE_3, 'about:blank')
    $slider = GUICtrlCreateSlider(186, 10, 20, 378, BitOR($TBS_VERT,$TBS_NOTICKS))
    GUICtrlSetBkColor(-1, 0x0000FF)
    GUICtrlSetLimit(-1, UBound($aBookmarks)-1)
    $ListView = GUICtrlCreateListView('Meine Bookmarks [' & UBound($aBookmarks) & ']', 216, 10, 374, 378, -1, BitOR($LVS_EX_FULLROWSELECT,$LVS_EX_GRIDLINES))
    $hListView = GUICtrlGetHandle($ListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 0 To UBound($aBookmarks) -1
    GUICtrlCreateListViewItem($aBookmarks[$i], $ListView)
    Next
    _GUICtrlListView_SetItemSelected($hListView, 0)
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    _setThumbs(0)

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

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $slider
    _sliderMoved()
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE
    Exit

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

    Func _sliderMoved()
    Local $index = GUICtrlRead($slider)
    _GUICtrlListView_EnsureVisible($hListView, $index)
    _GUICtrlListView_SetItemSelected($hListView, $index)
    _setThumbs($index)
    EndFunc

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

    Func _setThumbs($INDEX)
    Local $blank = '<html><head><title></title></head><body></body></html>'
    Select
    Case $INDEX = 0
    _IEBodyWriteHTML($oIE_1, $blank)
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_3, _sThumbShot($aBookmarks[$INDEX+1]))
    Else
    _IEBodyWriteHTML($oIE_3, $blank)
    EndIf
    Case $INDEX = UBound($aBookmarks) -1
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_1, _sThumbShot($aBookmarks[$INDEX-1]))
    Else
    _IEBodyWriteHTML($oIE_1, $blank)
    EndIf
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    _IEBodyWriteHTML($oIE_3, $blank)
    Case Else
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_1, _sThumbShot($aBookmarks[$INDEX-1]))
    Else
    _IEBodyWriteHTML($oIE_1, $blank)
    EndIf
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_3, _sThumbShot($aBookmarks[$INDEX+1]))
    Else
    _IEBodyWriteHTML($oIE_3, $blank)
    EndIf
    EndSelect
    EndFunc

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

    Func _sThumbShot($LINK)
    Local $sTitle = "'" & $LINK & "'"
    Return '<img src="http://www.thumbshots.de/cgi-bin/show.cgi?url=' & $LINK & _
    '" border="0" onload="if (this.width>50) this.border=1; this.alt=' & $sTitle & ';">'
    EndFunc

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

    Func _LeftClick($INDEX)
    GUICtrlSetData($slider, $INDEX)
    _sliderMoved()
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_CLICK
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _LeftClick(DllStructGetData($tInfo, "Index"))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    So sieht es aus:
    http://www.imgbox.de/?img=p6008t219.jpg

  • For...to...Next

    • BugFix
    • 31. Dezember 2008 um 14:06

    Da im Array der Index mit 0 beginnt kannst du immer nur bis UBound($ar)-1 adressieren! ;)

  • 3 Fragen; SQLite, Problem mit If-Anweisung, Resource Datein eins Programmes

    • BugFix
    • 31. Dezember 2008 um 13:19

    Erstmal zu 1.
    Zeichenketten werden mit & verknüpft!

    [autoit]

    _SQLite_Exec(-1,"Create table Config (Configtype text, Value text);" & _
    "Insert into Config values ('TrayTip','" & $Traytip & "');" & _
    "Insert into Config values ('BlockDesktop','" & $Blockdesktop & "');")

    [/autoit]

    zu 2.
    Schau dir mal meine Funktion CountDown an und die weiteren Beiträge in diesem Thread. Das sollte dir helfen.
    Bzw., um falsche Eingaben zu verhindern, kannst du doch bei Werten, die größer MaxWert sind automatisch den Maxwert einsetzen.

    zu 3.
    Was willst du denn einbinden?

  • Frage bezüglich Radio-Button

    • BugFix
    • 31. Dezember 2008 um 12:22

    Das solltest du so lösen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $aLabel[9]
    GUICreate("Fund-Datenbank", 700, 500, -1, -1, BitOR($WS_CAPTION, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU))
    GUISetState(@SW_SHOW)
    GUICtrlCreateGroup("Geographische Daten", 10, 10, 300, 85)
    GUICtrlCreateLabel("Stadt:", 20, 30)
    GUICtrlCreateLabel("Bundesland/-staat/Kanton:", 20, 50)
    GUICtrlCreateLabel("Staat:", 20, 70)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUICtrlCreateGroup("Zeitliche Daten", 10, 120, 300, 120)
    $radio_1 = GUICtrlCreateRadio("Einzeltag", 30, 140, 80)
    GUICtrlSetState($radio_1, $GUI_CHECKED)
    $radio_2 = GUICtrlCreateRadio("Zeitraum", 110, 140, 80)
    $aLabel[0] = GUICtrlCreateLabel("Tag:", 20, 170)
    $aLabel[1] = GUICtrlCreateLabel("Anfangstag:", 20, 170)
    $aLabel[2] = GUICtrlCreateLabel("Endtag:", 170, 170)
    $aLabel[3] = GUICtrlCreateLabel("Monat:", 20, 190)
    $aLabel[4] = GUICtrlCreateLabel("Anfangsmonat:", 20, 190)
    $aLabel[5] = GUICtrlCreateLabel("Endmonat:", 170, 190)
    $aLabel[6] = GUICtrlCreateLabel("Jahr:", 20, 210)
    $aLabel[7] = GUICtrlCreateLabel("Anfangsjahr:", 20, 210)
    $aLabel[8] = GUICtrlCreateLabel("Endjahr:", 170, 210)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    _Radio1()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $radio_1
    _Radio1()
    Case $radio_2
    _Radio2()
    EndSwitch
    WEnd

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

    Func _Radio1()
    If BitAND(GUICtrlRead($radio_1), $GUI_CHECKED) Then
    _state1()
    Else
    _state2()
    EndIf
    EndFunc

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

    Func _Radio2()
    If BitAND(GUICtrlRead($radio_2), $GUI_CHECKED) Then
    _state2()
    Else
    _state1()
    EndIf
    EndFunc

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

    Func _state1()
    For $i = 0 To 8
    $iFlag = $GUI_HIDE
    If $i = 0 Or $i = 3 Or $i = 6 Then $iFlag = $GUI_SHOW
    GUICtrlSetState($aLabel[$i], $iFlag)
    Next
    EndFunc

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

    Func _state2()
    For $i = 0 To 8
    $iFlag = $GUI_SHOW
    If $i = 0 Or $i = 3 Or $i = 6 Then $iFlag = $GUI_HIDE
    GUICtrlSetState($aLabel[$i], $iFlag)
    Next
    EndFunc

    [/autoit]

    Edit: Noch etwas optimiert, spart viel Code.

  • String auftrennen

    • BugFix
    • 30. Dezember 2008 um 23:13
    [autoit]

    $1 = '1|6|13|24'
    $a = StringSplit($1, '|')
    For $i = 1 To UBound($a) -1
    MsgBox(0, '', $a[$i])
    Next

    [/autoit]
  • Script Frage

    • BugFix
    • 30. Dezember 2008 um 22:41

    Ist mit Obfuscator bearbeitet. Was es genau macht, kann ich ohne weiteres nicht sehen - und testen werde ich es nicht.

  • GUIOnEventMode Beispiel - Ausführlich Kommentiert

    • BugFix
    • 30. Dezember 2008 um 21:59

    Du kannst das gewaltig kürzen, wenn du das Makro @GUI_CtrlId verwendest.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3> ;wird benötigt für GUI und GUI-Event
    Opt("GUIOnEventMode", 1) ;schaltet den GUIOnEventMode ein
    $GUI1 = "Test GUI 1" ;dient der Übersicht
    $GUI2 = "Test GUI 2" ;dient der Übersicht
    $GUI3 = "Test GUI 3" ;dient der Übersicht
    GUICreate ($GUI1,161,51,0,0) ;GUI 1 wird erstellt (1./oberste)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_SpecialEvents") ;$GUI_EVENT_CLOSE ist = "X" drücken - Wenn "X" gedrückt wird dann soll die Funktion _SpecialEvents aufgerufen werden
    $Button1 = GUICtrlCreateButton("Button 1",0,0,50,50) ;erstellt Button 1 in der 1./obersten GUI
    GUICtrlSetOnEvent($Button1,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId
    $Button2 = GUICtrlCreateButton("Button 2",55,0,50,50) ;erstellt Button 2 in der 1./obersten GUI
    GUICtrlSetOnEvent($Button2,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 2. Button gedrückt wird dann soll Funktion _Button2 aufgerufen werden
    $Button3 = GUICtrlCreateButton("Button 3",110,0,50,50) ;erstellt Button 3 in der 1./obersten GUI
    GUICtrlSetOnEvent($Button3,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 3. Button gedrückt wird dann soll Funktion _Button3 aufgerufen werden
    GUISetState(@SW_SHOW) ;Damit die GUI angezeigt wird. (Man könnte auch GUISetState(@SW_HIDE) benutzen um die GUI quasi unsichtbar zustarten)
    GUICreate ($GUI2,161,51,0,90) ;GUI 2 wird erstellt (2./mittlere)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_SpecialEvents") ;$GUI_EVENT_CLOSE ist = "X" drücken - Wenn "X" gedrückt wird dann soll die Funktion _SpecialEvents aufgerufen werden
    $Button4 = GUICtrlCreateButton("Button 1",0,0,50,50) ;erstellt Button 1 in der 2./mittleren GUI
    GUICtrlSetOnEvent($Button4,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 1. Button der mittleren GUI gedrückt wird dann soll Funktion _Button4 aufgerufen werden
    $Button5 = GUICtrlCreateButton("Button 2",55,0,50,50) ;erstellt Button 2 in der 2./mittleren GUI
    GUICtrlSetOnEvent($Button5,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 2. Button der mittleren GUI gedrückt wird dann soll Funktion _Button5 aufgerufen werden
    $Button6 = GUICtrlCreateButton("Button 3",110,0,50,50) ;erstellt Button 3 in der 2./mittleren GUI
    GUICtrlSetOnEvent($Button6,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 2. Button der mittleren GUI gedrückt wird dann soll Funktion _Button6 aufgerufen werden
    GUISetState(@SW_SHOW) ;Damit die GUI angezeigt wird. (Man könnte auch GUISetState(@SW_HIDE) benutzen um die GUI quasi unsichtbar zustarten)
    GUICreate ($GUI3,161,51,0,180) ;GUI 3 wird erstellt (3./unterste)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_SpecialEvents") ;$GUI_EVENT_CLOSE ist = "X" drücken - Wenn "X" gedrückt wird dann soll die Funktion _SpecialEvents aufgerufen werden
    $Button7 = GUICtrlCreateButton("Button 1",0,0,50,50) ;erstellt Button 1 in der 3./untersten GUI
    GUICtrlSetOnEvent($Button7,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 1. Button der untersten GUI gedrückt wird dann soll Funktion _Button7 aufgerufen werden
    $Button8 = GUICtrlCreateButton("Button 2",55,0,50,50) ;erstellt Button 2 in der 3./untersten GUI
    GUICtrlSetOnEvent($Button8,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 2. Button der untersten GUI gedrückt wird dann soll Funktion _Button8 aufgerufen werden
    $Button9 = GUICtrlCreateButton("Button 3",110,0,50,50) ;erstellt Button 3 in der 3./untersten GUI
    GUICtrlSetOnEvent($Button9,"_CtrlEvent") ; für alle Button wird die Funktion _CtrlEvent aufgerufen werden, die Unterscheidung erfolgt dann mit @GUI_CtrlId ;wenn auf den 3. Button der untersten GUI gedrückt wird dann soll Funktion _Button9 aufgerufen werden
    GUISetState(@SW_SHOW) ;Damit die GUI angezeigt wird. (Man könnte auch GUISetState(@SW_HIDE) benutzen um die GUI quasi unsichtbar zustarten)
    While 1 ;Anfang While - WEnd Schleife
    If WinGetState($GUI1) = 5 And WinGetState($GUI2) = 5 And WinGetState($GUI3) = 5 Then ;Da WinKill(WinGetTitle(@GUI_WinHandle)) nicht klappt habe ich es so gelöst.
    MsgBox (0,"","Alle 3 GUI's sind beendet wurden , das Programm wird sich nun beenden",2) ;MsgBox zu Vorführzwecken
    Exit ;Beendet die .au3/.exe
    EndIf
    Sleep (10) ;Um die CPU-Auslastung etwas zu entlasten
    WEnd ;Ende While - WEnd Schleife

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

    ;Hier stehen die Funktionen , ich denke nicht das man da großartig was erwähnen muss.
    ;BTW , @GUI_WinHandle liefert das Handle des zuletzt angeklickten Fensters zurück und mit WingetTitle() wandle ich das Handle quasi in einen Fesntertitel um! Falls sich manche jetzt fragen wofür das ist.
    Func _CtrlEvent()
    MsgBox (0,WinGetTitle(@GUI_WinHandle), ControlGetText('', '', @GUI_CtrlId) & " wurde gedrückt",2)
    EndFunc

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

    Func _SpecialEvents()
    WinSetState(WinGetTitle(@GUI_WinHandle),"",@SW_HIDE)
    MsgBox (0,"","Fenster " &WinGetTitle(@GUI_WinHandle) & " wurde beendet",2)
    EndFunc

    [/autoit]
  • Link Detector (Zwischenablage) - Fehler

    • BugFix
    • 30. Dezember 2008 um 21:31

    Warum das so ist, sagt dir die Hilfe ;)
    NOT hat eine höhere Wertigkeit als =

    Zitat

    From highest precedence to lowest:

    NOT
    ^
    * /
    + -
    &
    < > <= >= = <> ==
    AND OR

    Alles anzeigen
  • Link Detector (Zwischenablage) - Fehler

    • BugFix
    • 30. Dezember 2008 um 21:18
    [autoit]

    If Not $clip = $clip_old Then

    [/autoit]


    Entweder schreibst du:

    [autoit]

    If Not ($clip = $clip_old) Then

    [/autoit]


    oder gleich

    [autoit]

    If $clip <> $clip_old Then

    [/autoit]
  • Pic nicht doppelt

    • BugFix
    • 29. Dezember 2008 um 18:25
    Zitat von Jam00

    Das ist ganz schön Kompliziert! :(


    Ist doch jetzt nicht mehr kompliziert für dich. Für jedes Bild ein Array mit den Positionsdaten erstellen und die Funktion mit den Arrays aufrufen. Gibt es Überschneidungen, wird TRUE zurückgegeben, sonst FALSE.

  • Pic nicht doppelt

    • BugFix
    • 29. Dezember 2008 um 18:14

    Hier, kannst auch diese Funktion nutzen:

    [autoit]

    Local $pic1[4] = [0,0,100,50] ; x,y,Breite,Höhe
    Local $pic2[4] = [101,51,50,70]

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

    ConsoleWrite(_PosCompare($pic1,$pic2) & @CRLF)

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

    Func _PosCompare(ByRef $a1, ByRef $a2) ; by BugFix
    Local $oComp = ObjCreate("System.Collections.ArrayList")
    For $i = $a1[0] To $a1[0] + $a1[2]
    $oComp.Add($i)
    Next
    For $i = $a2[0] To $a2[0] + $a2[2]
    If $oComp.Contains($i) Then Return True
    Next
    $oComp.Clear
    For $i = $a1[1] To $a1[1] + $a1[3]
    $oComp.Add($i)
    Next
    For $i = $a2[1] To $a2[1] + $a2[3]
    If $oComp.Contains($i) Then Return True
    Next
    Return False
    EndFunc ;==>_PosCompare

    [/autoit]
  • Icon ändern

    • BugFix
    • 29. Dezember 2008 um 17:08

    Beim Kompilieren in SciTE kannst du doch den Pfad für ein eigenes Icon angeben.
    Oder du schreibst die Direktive selbst an den Skriptanfang:

    [autoit]

    #AutoIt3Wrapper_icon=..\..\Eigene Bilder\ICONS\MeinIcon.ico

    [/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™