da fehlt doch:
#Include <GDIPlus.au3>
Stimmt - das war die Trainingsaufgabe, ob ihr auch schön mitdenkt. ![]()
da fehlt doch:
#Include <GDIPlus.au3>
Stimmt - das war die Trainingsaufgabe, ob ihr auch schön mitdenkt. ![]()
naja ich wollte schon mehrere Zeilen:)
Ja, das geht natürlich auch mit Strg+Q - entsprechende Zeilen markieren und damit in einem Rutsch auskommentieren oder auch wieder aufheben.
Allerdings arbeite ich bei größerer Zeilenzahl dann doch lieber mit #cs - #ce
Oder am Laptop (hat man ja kein Num-Block), Cursor in die Zeile und Strg+Q.
also ich hab mir die Funktion entwas vereinfacht
Vereinfacht würde ich nicht unbedingt sagen, du hast die Variablendeklaration entfernt. Für einen guten Programmierstil sollte man sich aber angewöhnen, die Variablen zu deklarieren. ![]()
wie lade ich mit AutoIt eine .bmp aus einer .dll?
Ich hab dir mal ein Muster erstellt:
#include <WinAPI.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
Global $ressource = "shell32.dll"
Global $resID = 131
Global $hGUI, $hInstance, $hBMP
$hGUI = GUICreate('Test Bitmap from DLL', 500, 200)
$hInstance = _WinAPI_LoadLibraryEx($ressource, $LOAD_LIBRARY_AS_DATAFILE)
$hBMP = _WinAPI_LoadBitmap($hInstance, $resID)
GUISetState()
_ShowRessourceBMP($hGUI, $hBMP, 20, 20)
[/autoit][autoit][/autoit][autoit]Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($hBMP)
_WinAPI_FreeLibrary($hInstance)
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
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.
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.
Nicht unbedingt mit _GUIImageList_GetImageInfoEx().
[autoit]#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#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 ###
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
Ich denke mal, du meinst sowas:
[autoit]Local $aParam[3] = [$FOREGROUND_RED,$FOREGROUND_GREEN,$FOREGROUND_BLUE]
_BlaBla($hConsole, $aParam)
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
@ jiyan006 : Überlege bitte, wie du die User hier ansprichst. Der Ton macht bekanntlich die Musik. ![]()
Warum mit Kanonen auf Spatzen schießen? Struktur ist für diesen Anwendungsfall m.E. die denkbar ungünstigste und aufwändigste Lösung.
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
Edit: Ich hab es nochmal etwas geändert, nun brauchst du nur noch eine Funktion um den Status zu setzen:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
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)
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()
While True
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $radio_1
_Radio()
Case $radio_2
_Radio()
EndSwitch
WEnd
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
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
Hi,
das ist mein letztes "Verbrechen" in diesem Jahr ![]()
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.
#include <StructureConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <IE.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
;#################### HIER DEN PFAD ZU EURER BOOKMARK-DATEI EINTRAGEN !!! #####################################
Local $bookmarks = FileRead(@UserProfileDir & '\Anwendungsdaten\BROWSER\default\PROFIL\bookmarks.html') ;#
;#################################################################################################################
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
$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)
Do
$msg = GUIGetMsg()
Switch $msg
Case $slider
_sliderMoved()
EndSwitch
Until $msg = $GUI_EVENT_CLOSE
Exit
Func _sliderMoved()
Local $index = GUICtrlRead($slider)
_GUICtrlListView_EnsureVisible($hListView, $index)
_GUICtrlListView_SetItemSelected($hListView, $index)
_setThumbs($index)
EndFunc
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
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
Func _LeftClick($INDEX)
GUICtrlSetData($slider, $INDEX)
_sliderMoved()
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
$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
So sieht es aus:
http://www.imgbox.de/?img=p6008t219.jpg
Da im Array der Index mit 0 beginnt kannst du immer nur bis UBound($ar)-1 adressieren! ![]()
Erstmal zu 1.
Zeichenketten werden mit & verknüpft!
_SQLite_Exec(-1,"Create table Config (Configtype text, Value text);" & _
"Insert into Config values ('TrayTip','" & $Traytip & "');" & _
"Insert into Config values ('BlockDesktop','" & $Blockdesktop & "');")
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?
Das solltest du so lösen:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
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)
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()
While True
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $radio_1
_Radio1()
Case $radio_2
_Radio2()
EndSwitch
WEnd
Func _Radio1()
If BitAND(GUICtrlRead($radio_1), $GUI_CHECKED) Then
_state1()
Else
_state2()
EndIf
EndFunc
Func _Radio2()
If BitAND(GUICtrlRead($radio_2), $GUI_CHECKED) Then
_state2()
Else
_state1()
EndIf
EndFunc
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
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
Edit: Noch etwas optimiert, spart viel Code.
$1 = '1|6|13|24'
$a = StringSplit($1, '|')
For $i = 1 To UBound($a) -1
MsgBox(0, '', $a[$i])
Next
Ist mit Obfuscator bearbeitet. Was es genau macht, kann ich ohne weiteres nicht sehen - und testen werde ich es nicht.
Du kannst das gewaltig kürzen, wenn du das Makro @GUI_CtrlId verwendest.
#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
;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
Func _SpecialEvents()
WinSetState(WinGetTitle(@GUI_WinHandle),"",@SW_HIDE)
MsgBox (0,"","Fenster " &WinGetTitle(@GUI_WinHandle) & " wurde beendet",2)
EndFunc
Warum das so ist, sagt dir die Hilfe ![]()
NOT hat eine höhere Wertigkeit als =
ZitatAlles anzeigenFrom highest precedence to lowest:
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR