Spoiler anzeigen
[autoit]
GUICtrlSetData($Combo, "")
[/autoit]GUICtrlSetData($Combo, "")
[/autoit]WM_COMMAND wird öfter als nur einmal aufgerufen wenn die Gui erstellt wird. So sollte es aber klappen.
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
GUICreate("Test", 300, 300)
[/autoit] [autoit][/autoit] [autoit]$combo = GUICtrlCreateCombo("Test", 10, 10, 200, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "Test 2|Test 3")
$combo_2 = GUICtrlCreateCombo("", 10, 50, 200, 25, $CBS_DROPDOWNLIST)
$combo_3 = GUICtrlCreateCombo("", 10, 90, 200, 25, $CBS_DROPDOWNLIST)
GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _WM_COMMAND()
If GUICtrlRead($combo) = "Test" Then
GUICtrlSetData($combo_2, "|Combo|Combo 2|Combo 3|Combo 4")
GUICtrlSetData($combo_3, "|Benutzer|Benutzer 2|Benutzer 3|Benutzer 4")
ElseIf GUICtrlRead($combo) = "Test 2" Then
GUICtrlSetData($combo_2, "|Auto|Auto 2|Auto 3|Auto 4")
GUICtrlSetData($combo_3, "|User|User 2|User 3|User 4")
Else
GUICtrlSetData($combo_2, "|PC|PC 2|PC 3|PC 4")
GUICtrlSetData($combo_3, "|Notebook|Notebook 2|Notebook 3|Notebook 4")
EndIf
EndFunc
Ich hab sie automatisch einordnen lassen von einem Skript: Skript zum Einordnen von MP3's
Das Format der Dateien sollte dann halt passen (Artist - Titel.mp3), oder du passt es an deine Bedürfnisse im Skript an.
Dafür muss man die MP3's allerdings alle in einen Ordner bringen, dann kann man auch gleich die doppelten überschreiben ![]()
So?
MsgBox(0, "Installiert?", _IsProductInstalled("{54E3707F-808E-4fd4-95C9-15D1AB077E5D}"))
[/autoit] [autoit][/autoit] [autoit]Func _IsProductInstalled($ProdCode)
Local $oMSI = ObjCreate("WindowsInstaller.Installer")
For $elements In $oMSI.Products
If $elements = $ProdCode Then Return True
Next
Return False
EndFunc ;==>_IsProductInstalled
EDIT: Sorry hab das mit den ALL USERS noch nicht!
@L0c4lh0sT: Hast du Scite4Autoit installiert? Verwendest du den Menüpunkt Tools|Compile ? Tools|Build startet den Wrapper nicht.
Das gibt es doch alles schon ![]()
Die GuiMenu.au3 kann das schon alles! Hier mal ein Beispiel mit Scite. Zum neuzeichnen der Menüs vielleicht einmal das Programm minimieren und dann wieder herstellen.
#include <GuiMenu.au3>
[/autoit] [autoit][/autoit] [autoit]$hwnd = WinGetHandle('')
$hmenu = _GUICtrlMenu_GetMenu($hwnd)
$hmenu_Datei = _GUICtrlMenu_GetItemSubMenu($hmenu, 0)
#Region Hauptmenüs
_GUICtrlMenu_SetItemText($hmenu, 0, '&Datei')
_GUICtrlMenu_SetItemText($hmenu, 1, '&Bearbeiten')
_GUICtrlMenu_SetItemText($hmenu, 2, '&Suchen')
_GUICtrlMenu_SetItemText($hmenu, 3, '&Ansicht')
_GUICtrlMenu_SetItemText($hmenu, 4, '&Tools')
_GUICtrlMenu_SetItemText($hmenu, 5, '&Optionen')
_GUICtrlMenu_SetItemText($hmenu, 6, 'S&prachen')
_GUICtrlMenu_SetItemText($hmenu, 7, '&Buffer')
_GUICtrlMenu_SetItemText($hmenu, 8, '&Hilfe')
#EndRegion
#Region Untermenü Datei
_GUICtrlMenu_SetItemText($hmenu_Datei, 0, '&Neu')
_GUICtrlMenu_SetItemText($hmenu_Datei, 1, 'Ö&ffnen')
_GUICtrlMenu_SetItemText($hmenu_Datei, 2, 'Öffne &gewählte Datei')
_GUICtrlMenu_SetItemText($hmenu_Datei, 3, '&Zurück')
_GUICtrlMenu_SetItemText($hmenu_Datei, 4, 'S&chließen')
_GUICtrlMenu_SetItemText($hmenu_Datei, 5, '&Speichern')
_GUICtrlMenu_SetItemText($hmenu_Datei, 6, 'Speichern &als')
_GUICtrlMenu_SetItemText($hmenu_Datei, 7, '&Kopie speichern')
_GUICtrlMenu_SetItemText($hmenu_Datei, 8, '&Entschlüsseln')
_GUICtrlMenu_SetItemText($hmenu_Datei, 9, 'E&xportieren')
#EndRegion
#Region Menupunkte sperren
_GUICtrlMenu_SetItemDisabled($hmenu, 2)
_GUICtrlMenu_SetItemDisabled($hmenu, 3)
#EndRegion
#Region Untermenüpunkte sperren
_GUICtrlMenu_SetItemDisabled($hmenu_Datei, 0)
_GUICtrlMenu_SetItemDisabled($hmenu_Datei, 1)
_GUICtrlMenu_SetItemDisabled($hmenu_Datei, 2)
_GUICtrlMenu_SetItemDisabled($hmenu_Datei, 3)
#EndRegion
Einfach eine Schleife bilden. So wird alle 2 Sekunden überprüft, ob die Datei existiert, und je nachdem das Icon gewählt. Programm wird über das TrayIcon beendet, oder du definierst dir einen Hotkey.
While 1
If FileExists("C:\Temp\analog_active.txt") Then
TraySetIcon('C:\@service\Skripte\283.ico')
Else
TraySetIcon('C:\@service\Skripte\284.ico')
EndIf
Sleep(2000)
WEnd
Da bräuchte man aber trotzdem zusätzlich noch sowas wie '_IsPressedByKeyBoard' oder sowas in der Art.
Das leigt nur am {numpadenter}. Wieso weiß ich nicht.
Wird die Datei wieder gelöscht wenn der digitale Ausgang gewählt wird?
[autoit]If FileExists(...) Then
TraySetIcon('Grün.ico')
Else
TraySetIcon('Rot.ico')
EndIf
Das ist aber bestimmt besser ins Skript einzufügen, wenn du es nicht über diese Datei machst, aber ich kenne dein Skript nicht.
Ich mach auch mit ;). War eigentlich schon fertig, aber wenn jetzt noch ein Flag hinzukommt, dann warte ich besser noch ein bischen! ![]()
Hab auch mal sowas gemacht ![]()
Zitat von Beta: 3.1.1.0- Added #757: Set defaults for MouseClick()'s x/y parameters.
![]()
SoundPlay(GUICtrlRead($beispiel),1);
[/autoit]Wiedereinmal ein Skript, das es schon einige Male gibt, aber ich will immer alles auf meine Art machen ![]()
Zuerst Bereich markieren, F9 für Screenshot, Esc für Ende.
Viel Spaß damit!
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $xStart = 0, $yStart = 0, $xStopp = 0, $yStopp = 0
Global $title = 'Screenshot markieren'
If Not IsDeclared("SM_VIRTUALWIDTH") Then Global Const $SM_VIRTUALWIDTH = 78
If Not IsDeclared("SM_VIRTUALHEIGHT") Then Global Const $SM_VIRTUALHEIGHT = 79
Global $VirtualDesktopWidth = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALWIDTH)
$VirtualDesktopWidth = $VirtualDesktopWidth[0]
Global $VirtualDesktopHeight = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALHEIGHT)
$VirtualDesktopHeight = $VirtualDesktopHeight[0]
GUICreate($title, $VirtualDesktopWidth, $VirtualDesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
GUIRegisterMsg(0x0201, '_WM_LBUTTONDOWN') ;$WM_LBUTTONDOWN
GUIRegisterMsg(0x0202, '_WM_LBUTTONUP') ;$WM_LBUTTONUP
;~ GUIRegisterMsg(0x0204, '_WM_RBUTTONDOWN') ;$WM_RBUTTONDOWN
WinSetTrans($title, "", 30)
[/autoit] [autoit][/autoit] [autoit]If Not FileExists(@ScriptDir & "\Screenshots") Then DirCreate(@ScriptDir & "\Screenshots")
Global $hGraphic = GUICtrlCreateGraphic(0, 0, $VirtualDesktopWidth, $VirtualDesktopHeight)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetGraphic(-1, $GUI_GR_PENSIZE, 2)
GUISetState()
HotKeySet('{F9}', '_Make_Screenshot')
HotKeySet('{ESC}', '_quit')
While 1
Sleep(100000)
WEnd
Func _quit()
Exit
EndFunc ;==>_quit
Func _WM_LBUTTONDOWN($hWnd, $msg, $wParam, $lParam)
Local $fwKeys = $wParam, $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
GUICtrlSetGraphic($hGraphic, $GUI_GR_COLOR, 0xffffff)
GUICtrlSetGraphic($hGraphic, $GUI_GR_RECT, $xStart, $yStart, $xStopp - $xStart, $yStopp - $yStart)
;~ GUICtrlSetGraphic($hGraphic, $GUI_GR_REFRESH)
$xStart = $xPos
$yStart = $yPos
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_LBUTTONDOWN
Func _WM_LBUTTONUP($hWnd, $msg, $wParam, $lParam)
Local $fwKeys = $wParam, $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
$xStopp = $xPos
$yStopp = $yPos
GUICtrlSetGraphic($hGraphic, $GUI_GR_COLOR, 0x0)
GUICtrlSetGraphic($hGraphic, $GUI_GR_RECT, $xStart, $yStart, $xStopp - $xStart, $yStopp - $yStart)
GUICtrlSetGraphic($hGraphic, $GUI_GR_REFRESH)
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_LBUTTONUP
;~ Func _WM_RBUTTONDOWN($hWnd, $msg, $wParam, $lParam)
;~ Local $fwKeys = $wParam, $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
;~ GUICtrlSetGraphic($hGraphic, $GUI_GR_COLOR, 0xffffff)
;~ GUICtrlSetGraphic($hGraphic, $GUI_GR_RECT, $xStart, $yStart, $xStopp - $xStart, $yStopp - $yStart)
;~ GUICtrlSetGraphic($hGraphic, $GUI_GR_REFRESH)
;~ Return $GUI_RUNDEFMSG
;~ EndFunc ;==>_WM_RBUTTONDOWN
Func _Make_Screenshot()
Local $x1, $x2, $y1, $y2
Select
Case $xStart < $xStopp
$x1 = $xStart
$x2 = $xStopp
Case $xStart > $xStopp
$x1 = $xStopp
$x2 = $xStart
EndSelect
Select
Case $yStart < $yStopp
$y1 = $yStart
$y2 = $yStopp
Case $yStart > $yStopp
$y1 = $yStopp
$y2 = $yStart
EndSelect
If $x1 > 0 And $x2 > 0 And $y1 > 0 And $y2 > 0 Then _ScreenCapture_Capture(@ScriptDir & "\Screenshots\Screenshot" & @YEAR & @MDAY & @WDAY & "_" & @HOUR & @MIN & @SEC & ".jpg", $x1, $y1, $x2, $y2, False)
EndFunc ;==>_Make_Screenshot
;~ MK_LBUTTONUP The left mouse button is up. --> 0x00
;~ MK_LBUTTON The user pressed the left mouse button. --> 0x01
;~ MK_RBUTTON The user pressed the right mouse button. --> 0x02
;~ MK_SHIFT The user pressed the SHIFT key. --> 0x04
;~ MK_CONTROL The user pressed the CTRL key. --> 0x08
;~ MK_MBUTTON The user pressed the middle mouse button. --> 0x10
FileSelectFolder
[/autoit]Ich habe eine Visualisierung für eine Anlage programmiert, auf der der Status von ungefähr 70 Motoren und 20 Analogwerten angezeigt wird. Die Analogwerte haben eine Trendaufzeichnung und diese Anzeige ist skalierbar. Somit gibt es ein Eingabefeld für Minimum der Trendanzeige und ein Eingabefeld für Maximum. Hier ist es schön wenn man Kommastellen verwenden kann, da sich manche Werte nur gering ändern. Bisher hatte ich $ES_NUMBER verwendet, aber das gefiel mir nie so richtig.
Danke peethebee für dieses Skript. Ich habe es heute in ein Projekt von mir eingebaut. Du hattest recht, $ES_NUMBER ist zu wenig. Ich habe es für Kommazahlen gebraucht.
Danke auch AutoBert für das 'Ausgraben' dieses Threads! Sonst hätte ich es wohl nie gefunden.
Alina: \. weil . für ein beliebiges Zeichen steht.
Prinzipiell so, aber man kann's ja nicht testen!
[autoit]_IEImgClick($oIE, "Email_Overview-Dateien/l_lupe.gif")
[/autoit]_IEAttach
[/autoit]