So vielleicht?
[autoit]
Local $ANTWORT_BYTE12 = DllStructGetData($struct, 1,2)
Local $Return = Call( $ANTWORT_BYTE12 )
[/autoit]So vielleicht?
[autoit]
Local $ANTWORT_BYTE12 = DllStructGetData($struct, 1,2)
Local $Return = Call( $ANTWORT_BYTE12 )
[/autoit]Das Teilproblem das sich die Slider mit verschieben habe ich mit untenstehendem Code gelöst. Dafür habe ich die Schleife aus der Funktion EQAddFreq() in eine eigene Funktion ausgelagert.Kann sein das die Teillösung für die Komplettlösung des Problems nicht passt. Vielleicht hilft dir das hier aber schon weiter. Ich suche dann mal weiter.
Die Lösung des Problems:
#include <GUIConstants.au3>
#include <custom/GUIScrollbars_Ex.au3>
#include <Array.au3>
Opt("GUIOnEventMode", True)
[/autoit] [autoit][/autoit] [autoit]Global $hGUIEQItemInput[0], $hGUIEQItemSlider[0], $MainGui_Width = @DesktopWidth, $MainGui_Height = @DesktopHeight
[/autoit] [autoit][/autoit] [autoit]$hGUIEQ = GUICreate("EQTest", GUIx(105), GUIy(660))
$hGUIEQContext = GUICtrlCreateContextMenu()
$hGUIEQContextAdd = GUICtrlCreateMenuItem("Add Frequency", $hGUIEQContext)
GUICtrlSetOnEvent(-1, "EQAddFreq")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
_GUIScrollBars_Generate($hGUIEQ, 0, GUIy(5))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]For $i = 0 To 99 Step +1
EQAddFreq()
Next
PosItems( ); ########### Photon ##################
[/autoit] [autoit][/autoit] [autoit]; GUISetState habe ich hier hin verlegt damit das Programm schneller
; startet und es nicht so komisch aussieht wenn die ganzen Steuerelemente erzeugt werden.
GUISetState(); ########### Photon ##################
While 1
; Das Sleep habe ich eingefügt damit die CPU nicht so ausgelastet wird.
; Mein Lüfter dankt es mir.
Sleep( 3000 ); ########### Photon ##################
;ConsoleWrite(_GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1]&@CRLF)
WEnd
Func _Exit()
Exit
EndFunc ;==>_Exit
Func EQAddFreq()
_ArrayAdd($hGUIEQItemInput, GUICtrlCreateInput("0", GUIx( 5 ), GUIy( 5 ) + UBound( $hGUIEQItemInput ) * GUIy( 50 ), GUIx( 30 ), GUIy( 40 ) ) )
_ArrayAdd($hGUIEQItemSlider, GUICtrlCreateSlider( GUIx( 5 + 30 ), GUIy( 5 ) + UBound( $hGUIEQItemInput ) * GUIy( 50 ), GUIx( 60 ), GUIy( 40 ), $TBS_HORZ) )
$ScrollHeight = GUIy(5 + UBound($hGUIEQItemInput) * 50)
[/autoit] [autoit][/autoit] [autoit]_GUIScrollBars_Generate($hGUIEQ, 0, $ScrollHeight)
[/autoit] [autoit][/autoit] [autoit];For $i = 0 To UBound($hGUIEQItemInput) - 1 Step +1
; GUICtrlSetPos($hGUIEQItemInput[$i], GUIx(5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1] + GUIy(5 + $i * 50), GUIx(30), GUIy(40))
; GUICtrlSetPos($hGUIEQItemSlider[$i], GUIx(5 + 30 + 5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1] + GUIy(5 + $i * 50), GUIx(60), GUIy(40))
;Next
EndFunc ;==>EQAddFreq
Func PosItems( ); ########### Photon ##################
For $i = 0 To UBound($hGUIEQItemInput) - 1 Step +1
GUICtrlSetPos($hGUIEQItemInput[$i], GUIx(5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1] + GUIy(5 + $i * 50), GUIx(30), GUIy(40))
GUICtrlSetPos($hGUIEQItemSlider[$i], GUIx(5 + 30 + 5), _GUIScrollBars_Locate_Ctrl($hGUIEQ, 0, 0)[1] + GUIy(5 + $i * 50), GUIx(60), GUIy(40))
Next
EndFunc
#cs
Func EQSortFreqs()
Local $aHelpList [UBound($hGUIEQItemInput)][2]
for $i = 0 to UBound($hGUIEQItemInput)-1 step +1
$aHelpList[$i] = $hGUIEQItemInput[$i]
EndFunc
#ce
Func GUIx($Number)
Return $MainGui_Width / 1000 * $Number
EndFunc ;==>GUIx
Func GUIy($Number)
Return $MainGui_Height / 1000 * $Number
EndFunc ;==>GUIy
Ich hätte schwören können das die Inputboxen noch die falsche Größe hatten.
Da war ich wohl eingenickt und hatte nen schlechten Traum.
Ein Glück bin ich wieder wach.
Hatte vor einiger Zeit das selbe Problem.
Rechtsklick auf die Hilfe.chm > Eigenschaften > Im Tabreiter "Allgemein" ist dann, wenn ich mich recht erinner, ein "Zulassen" Knopf. Den drücken und es sollte funktionieren.
Ist wohl ein ein Rechteproblem.
Eine Googlesuche nach "chm leer" bestätigt nochmals meine Lösung.
Im ersten Ergebnis nach "Inhalt von Hilfeseiten wird nicht angezeigt" suchen.
Hallo,mir ist gerade beim Stöbern in den Signaturen aufgefallen das jeder Link, der auf einen Post/Thread auf Autoit.de zeigt, mich auf die autoit.de Startseite weiterleitet.
ZitatBitte erst die bereits bekannten Probleme lesen. Es macht keine Sinn die selben Fehler doppelt und dreifach zu melden:
Bekannte Probleme
Asche auf mein Haupt.
Habe nur den ersten Teilsatz gelesen und bin dann weiter gesprungen.
Entschuldigt.
Gruß
Photon
Probier doch mal das Beisipiel in der Hilfe zu _FileWriteToLine aus.
Ich hab dein Script mal getestet und bei mir funktioniert es.
Kann dir nicht direkt helfen aber hier ein paar Tipps:
In der Hilfe gibt es eine UDF namens ScreenCapture Management.
Ist zwar nur für einzelne Bilder aber ist ein Anfang.
Für eine weitere Suche kannst du die Forensuche(im Borwserfenster oben rechts) oder eine Suchmaschine deiner Wahl nutzen.
Schlagwörter dafür wären sicherlich: AutoIt ScreenCapture, AutoIt ScreenCapture Video, AutoIt Video, ...
Um zum Beispiel mit Google effektiver suchen zu können informier dich über "Google Hacks". Diese "Hacks" funktionieren evtl. auch bei anderen Suchmaschinen.
Ist dieser "Snippet Holder" nur in der 3.2.0?
Weil in der 3.3.0 hab ich diesen noch nicht gefunden.
Frag mich aber nicht woher ich den SCITE her hab. Ist schon ne Weile her als ich mir den angeschafft habe.
Entschuldige. Die Antwort hat etwas gedauert.
Ich hab dir den Quelltext mal für die RadioButtons abgeändert. Jetzt kannst du mit den Werten weiterarbeiten.
Versuch das mit den Editboxen nochmal selber.
Dabei kannst du dich an der Lösung für die Radiobuttons orientieren.
Um zu sehen was geändert wurde kannst du z.B. ein Programm wie Winmerge nutzen.
Viel Erfolg.
#include <Excel.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $x, $wert_edit, $radio_x1, $radio_x2, $radio_x3, $radio_x4,$radio_x5,$radio_x6
Local $avArray[1]
GUICreate("",@DesktopWidth,@DesktopHeight,0,0, $WS_OVERLAPPEDWINDOW) ; will create a dialog box that when displayed is centered
$TL_Combo = GUICtrlCreateCombo("",600, 100,100,20) ; create first item
$Label_1 = GUICtrlCreateLabel("Feedback an die Teamleitung und das Qualitätsmanagement",260,30,@DesktopWidth,50)
GUICtrlSetFont($Label_1,22,120, 0, "Arial")
GUICtrlSetData($TL_Combo, "Teamleiter1|Teamleiter2|Teamleiter3|Teamleiter4|Teamleiter5", "Teamleiter1") ; add other item snd set a new default
;----------erste spalte ----------------------------------------------
$top_1 = 190
$top_2 = 420
$top_3 = 640
$left_s1 = 100
$left_s2 = 510
$left_s3 = 920
$group_w = 350
$group_h = 200
$group_ht = 150
Global $RadioButtonGroups[7][6]
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("1. Objektivität / Fairness ", 70, 150, $group_w, $group_h)
$RadioButtonGroups[0][0] = GUICtrlCreateRadio( "1", $left_s1 + 00,$top_1, 30, 20, $WS_GROUP)
$RadioButtonGroups[0][1] = GUICtrlCreateRadio( "2", $left_s1 + 30,$top_1, 30, 20)
$RadioButtonGroups[0][2] = GUICtrlCreateRadio( "3", $left_s1 + 60,$top_1, 30, 20)
$RadioButtonGroups[0][3] = GUICtrlCreateRadio( "4", $left_s1 + 90,$top_1, 30, 20)
$RadioButtonGroups[0][4] = GUICtrlCreateRadio( "5", $left_s1 + 120,$top_1, 30, 20)
$RadioButtonGroups[0][5] = GUICtrlCreateRadio( "6", $left_s1 + 150,$top_1, 30, 20)
$edit1 = GUICtrlCreateEdit("", 90, 235, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("2. Kompetenz in seiner Aufgabe ", 70, 380, $group_w, $group_h)
$RadioButtonGroups[1][0] = GUICtrlCreateRadio("1",$left_s1 + 00, $top_2, 30, 20, $WS_GROUP)
$RadioButtonGroups[1][1] = GUICtrlCreateRadio("2",$left_s1 + 30, $top_2, 30, 20)
$RadioButtonGroups[1][2] = GUICtrlCreateRadio("3",$left_s1 + 60, $top_2, 30, 20)
$RadioButtonGroups[1][3] = GUICtrlCreateRadio("4",$left_s1 + 90, $top_2, 30, 20)
$RadioButtonGroups[1][4] = GUICtrlCreateRadio("5",$left_s1 + 120, $top_2, 30, 20)
$RadioButtonGroups[1][5] = GUICtrlCreateRadio("6",$left_s1 + 150, $top_2, 30, 20)
$edit2 = GUICtrlCreateEdit("", 90, 465, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("3. Verständnis für Anliegen/Probleme ", 70, 610, $group_w, $group_h)
$RadioButtonGroups[2][0] = GUICtrlCreateRadio("1",$left_s1 + 00, $top_3, 30, 20, $WS_GROUP)
$RadioButtonGroups[2][1] = GUICtrlCreateRadio("2",$left_s1 + 30, $top_3, 30, 20)
$RadioButtonGroups[2][2] = GUICtrlCreateRadio("3",$left_s1 + 60, $top_3, 30, 20)
$RadioButtonGroups[2][3] = GUICtrlCreateRadio("4",$left_s1 + 90, $top_3, 30, 20)
$RadioButtonGroups[2][4] = GUICtrlCreateRadio("5",$left_s1 + 120, $top_3, 30, 20)
$RadioButtonGroups[2][5] = GUICtrlCreateRadio("6",$left_s1 + 150, $top_3, 30, 20)
$edit3 = GUICtrlCreateEdit("", 90, 690, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
;----------zweite spalte ----------------------------------------------
GUICtrlCreateGroup("4. Hilfsbereitschaft ", 475, 150, $group_w, $group_h)
$RadioButtonGroups[3][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_1, 30, 20, $WS_GROUP)
$RadioButtonGroups[3][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_1, 30, 20)
$RadioButtonGroups[3][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_1, 30, 20)
$RadioButtonGroups[3][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_1, 30, 20)
$RadioButtonGroups[3][4] = GUICtrlCreateRadio("5", $left_s2 + 120, $top_1, 30, 20)
$RadioButtonGroups[3][5] = GUICtrlCreateRadio("6", $left_s2 + 150, $top_1, 30, 20)
$edit4 = GUICtrlCreateEdit("", 495, 235, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("5. Loyalität ", 475, 380, $group_w, $group_h)
$RadioButtonGroups[4][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_2, 30, 20, $WS_GROUP)
$RadioButtonGroups[4][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_2, 30, 20)
$RadioButtonGroups[4][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_2, 30, 20)
$RadioButtonGroups[4][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_2, 30, 20)
$RadioButtonGroups[4][4] = GUICtrlCreateRadio("5", $left_s2 + 120,$top_2, 30, 20)
$RadioButtonGroups[4][5] = GUICtrlCreateRadio("6", $left_s2 + 150,$top_2, 30, 20)
$edit5 = GUICtrlCreateEdit("", 495, 465, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("6. Fähigkeit zum Vermitteln von Zusammenhängen ", 475, 610, $group_w, $group_h)
$RadioButtonGroups[5][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_3, 30, 20, $WS_GROUP)
$RadioButtonGroups[5][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_3, 30, 20)
$RadioButtonGroups[5][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_3, 30, 20)
$RadioButtonGroups[5][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_3, 30, 20)
$RadioButtonGroups[5][4] = GUICtrlCreateRadio("5", $left_s2 + 120,$top_3, 30, 20)
$RadioButtonGroups[5][5] = GUICtrlCreateRadio("6", $left_s2 + 150,$top_3, 30, 20)
$edit6 = GUICtrlCreateEdit("", 495, 690, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
;----------dritte spalte ----------------------------------------------
GUICtrlCreateGroup("7. Motivation ", 880, 150, $group_w, $group_h)
$RadioButtonGroups[6][0] = GUICtrlCreateRadio("1", $left_s3 + 00, $top_1, 30, 20, $WS_GROUP)
$RadioButtonGroups[6][1] = GUICtrlCreateRadio("2", $left_s3 + 30, $top_1, 30, 20)
$RadioButtonGroups[6][2] = GUICtrlCreateRadio("3", $left_s3 + 60, $top_1, 30, 20)
$RadioButtonGroups[6][3] = GUICtrlCreateRadio("4", $left_s3 + 90, $top_1, 30, 20)
$RadioButtonGroups[6][4] = GUICtrlCreateRadio("5", $left_s3 + 120, $top_1, 30, 20)
$RadioButtonGroups[6][5] = GUICtrlCreateRadio("6", $left_s3 + 150, $top_1, 30, 20)
$edit7 = GUICtrlCreateEdit("", 900, 235, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
Global $CheckedRadioButtonsNum[7] ; Hinzugefügt
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("8. Was ist aus deiner Sicht besonders positiv? ", 880, 380, $group_w, $group_ht)
$edit8 = GUICtrlCreateEdit("", 900, 410, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("9. Was ist aus deiner Sicht besonders negativ? ", 880, 560, $group_w, $group_ht)
$edit9 = GUICtrlCreateEdit("", 900, 590, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("10. weitere Anmerkungen! ", 880, 740, $group_w, $group_ht)
$edit10 = GUICtrlCreateEdit("", 900, 770, 310, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
$Button_1 = GUICtrlCreateButton( "Formular Absenden",@DesktopWidth * (50 /100) -50,900,130,30, 0x0C00 )
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
[/autoit] [autoit][/autoit] [autoit]Case $GUI_EVENT_CLOSE
Exit
Case $TL_Combo
[/autoit] [autoit][/autoit] [autoit]Case $Button_1
;$wert_edit = ""
Local $avArray[1] ;wenn nicht alle Felder gefüllt sind erstelle leeres Array ...
; Wozu ein leeres Array? In Zeile 7 hast verwendest du den Namen bereits für ein Array.
If _pruefen( $RadioButtonGroups, $CheckedRadioButtonsNum ) = True Then
MsgBox(0,"1 alles ok", ":)" )
$wert_TL = GUICtrlRead($TL_Combo)
_ArrayDisplay( $CheckedRadioButtonsNum, "Gesetzte Radio Button Nummern Liste" )
;_ArrayAdd($avArray, $wert_TL) ; Wie du siehst braucht man nicht unbedingt _ArrayAdd um die Werte in einem Array zu speichern
;_ArrayDisplay($avArray)
Exit
Else
MsgBox(0,"Info","Bitte alle Felder ausfüllen")
EndIf
EndSwitch
WEnd
;
; Hier musst du natürlich noch die Überprüfung der Editboxen rein machen.
;
Func _pruefen( $RadBtnGrps, ByRef $ChckdRadBtnsNums )
Local $AllNeededDataFound = False
[/autoit] [autoit][/autoit] [autoit]If _get_all_Radio_Buttons_Group_State( $RadBtnGrps, $ChckdRadBtnsNums ) = True Then
$AllNeededDataFound = True
Else
$AllNeededDataFound = False
Return $AllNeededDataFound
EndIf
Return $AllNeededDataFound
EndFunc
;
; Prüft >>> alle <<< Radio Button Gruppen ob ein RadioButton gesetzt ist.
;
Func _get_all_Radio_Buttons_Group_State( $RadBtnGrps, ByRef $ChckdRadBtnsNums )
Local $SizeOfRadBtnArr = UBound( $RadBtnGrps )
Local $RadioButtonChecked = False
Local $TempRes = -1
[/autoit] [autoit][/autoit] [autoit]For $GroupNr = 0 To $SizeOfRadBtnArr - 1
$TempRes = _get_Radio_Button_Of_Group_Checked( $RadBtnGrps, $GroupNr, $ChckdRadBtnsNums )
If $TempRes > -1 Then
$ChckdRadBtnsNums[$GroupNr] = $TempRes
$RadioButtonChecked = True
Else
$RadioButtonChecked = False
ExitLoop
EndIf
Next
Return $RadioButtonChecked
EndFunc
;
; Prüft in einer Gruppe von Radio Buttons ob einer gesetzt ist und gibt die Nummer des gesetzten zurück.
;
Func _get_Radio_Button_Of_Group_Checked( $RadioButtonArray, $GroupNr, ByRef $CheckedButtons )
Local $SizeOfArray = UBound( $RadioButtonArray, 2 )
Local $NumOfCheckedRadBtn = -1
For $BtnNr = 0 To $SizeOfArray - 1
If GUICtrlRead( $RadioButtonArray[$GroupNr][$BtnNr] ) = $GUI_CHECKED Then
$NumOfCheckedRadBtn = $BtnNr ; Wenn du hier $BtnNr + 1 machst erhältst du die Nummer des Buttons wie sie in der GUI angezeigt wird.
; Also nicht 0,1,2,3,4,5 sonder 1,2,3,4,5,6. Probiers einfach aus.
ExitLoop
EndIf
Next
Return $NumOfCheckedRadBtn
EndFunc
Ist die Timer Funktion nicht vll. einfach ein Wrapper der QueryPerformanceCounter oder einer ähnlichen WinApi Funtkion?
http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx
Also ich hab dein Script mit dem Windows Taschenrechner und Notepad getestet. Bei mir funktioniert es.
Vll. falscher Fenstertitel?
While ProcessExists("calc.exe") <> 0 ; Du hattest hier kein String übergeben.
if WinExists ("Unbenannt - Editor") = 1 then
Msgbox (0,"Hinweis","Fenster geöffnet")
exit
EndIf
WEnd
Msgbox (0,"Hinweis","Prozess beendet")
Schau dir mal das Programm Au3Info.exe(wird in der AutoIt Installation mitgeliefert) an.
Dann probiers nochmal mit WinExists. Wenn es damit nicht klappt kannst du es auch mit WinWaitActive versuchen.
Um Enter zu ersetzen kannst du dir mal ControlClick anschauen.
Die Beiträge zu löschen ist die einfachste Lösung.
Du wirst von der NSA überwacht und machst dir um deine Ausweisnummer gedanken?
Nur weil die NSA alles überwacht soll man jetzt den Datenschutz vernachlässigen?
Uhrzeit ausgegraut als TrayItem:
[autoit]
Global $Test = TrayCreateItem( "" & @HOUR & ":" & @MIN & ":" & @SEC )
TrayItemSetState( $Test, $TRAY_DISABLE )
Ich hab ein bischen rumprobiert. Hab aber noch keine Möglichkeit gefunden eine Funktion auf ein deaktiviertes TrayItem zu legen.
Was ich ehrlich gesagt auch für unschön halte. Denn welcher Nutzer ahnt schon das ein ausgegrauter Menupunkt eine Funktion hat.
Mach lieber ein Untermenu unter dem Hauptmenupunkt "Kürzliche Backups" oder so ähnlich. Z.B kannst du in dem Untermenu zu jedem Backup ein TrayItem anlegen. Man sollte die Anzahl an Untermenupunkten allerdings begrenzen.
Du solltest in Z. 15 vor FileGetTime noch prüfen ob der Ordner U:\Backup überhaupt existiert. Andernfalls kann es dir passieren das dieser Fehler auftaucht
(16) : ==> Subscript used with non-Array variable.:
Local $BackupZeit = $Zeit[2] & "." & $Zeit[1] & "." & $Zeit[0] & " " & $Zeit[3] & ":" & $Zeit[4]
Local $BackupZeit = $Zeit^ ERROR
Noch eine Frage. Warum rufst du deine ganzen Funktionen mit Call auf?
Hallo gmmg,
ich würde es wie im Spoiler unten lösen. Habe aber noch nicht alles von jetzt überflüssigen Variablen gesäubert. Mach ich vielleicht noch in einem Edit.
Noch ein, zwei Tipps.
Du solltes so wenig wie möglich globale Variablen nutzen.
Desweiteren sollte man für die Variablendeklaration DIM nicht mehr nutzen.
#include <Excel.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $x, $wert_edit, $radio_x1, $radio_x2, $radio_x3, $radio_x4,$radio_x5,$radio_x6
Local $avArray[1]
GUICreate("",@DesktopWidth,@DesktopHeight,0,0, $WS_OVERLAPPEDWINDOW) ; will create a dialog box that when displayed is centered
$TL_Combo = GUICtrlCreateCombo("",600, 100,100,20) ; create first item
$Label_1 = GUICtrlCreateLabel("Feedback an die Teamleitung und das Qualitätsmanagement",260,30,@DesktopWidth,50)
GUICtrlSetFont($Label_1,22,120, 0, "Arial")
GUICtrlSetData($TL_Combo, "Teamleiter1|Teamleiter2|Teamleiter3|Teamleiter4|Teamleiter5", "Teamleiter1") ; add other item snd set a new default
;----------erste spalte ----------------------------------------------
$top_1 = 190
$top_2 = 420
$top_3 = 640
$left_s1 = 110
$left_s2 = 530
Global $RadioButtonGroups[6][6]
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("1. Objektivität / Fairness 1 ", 90, 150, 400, 200)
[/autoit] [autoit][/autoit] [autoit]$RadioButtonGroups[0][0] = GUICtrlCreateRadio( "1", $left_s1 + 00,$top_1, 30, 20, $WS_GROUP)
$RadioButtonGroups[0][1] = GUICtrlCreateRadio( "2", $left_s1 + 30,$top_1, 30, 20)
$RadioButtonGroups[0][2] = GUICtrlCreateRadio( "3", $left_s1 + 60,$top_1, 30, 20)
$RadioButtonGroups[0][3] = GUICtrlCreateRadio( "4", $left_s1 + 90,$top_1, 30, 20)
$RadioButtonGroups[0][4] = GUICtrlCreateRadio( "5", $left_s1 + 120,$top_1, 30, 20)
$RadioButtonGroups[0][5] = GUICtrlCreateRadio( "6", $left_s1 + 150,$top_1, 30, 20)
$edit11 = GUICtrlCreateEdit("", 110, 235, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("2. Objektivität / Fairness 2 ", 90, 380, 400, 200)
$RadioButtonGroups[1][0] = GUICtrlCreateRadio("1",$left_s1 + 00, $top_2, 30, 20, $WS_GROUP)
$RadioButtonGroups[1][1] = GUICtrlCreateRadio("2",$left_s1 + 30, $top_2, 30, 20)
$RadioButtonGroups[1][2] = GUICtrlCreateRadio("3",$left_s1 + 60, $top_2, 30, 20)
$RadioButtonGroups[1][3] = GUICtrlCreateRadio("4",$left_s1 + 90, $top_2, 30, 20)
$RadioButtonGroups[1][4] = GUICtrlCreateRadio("5",$left_s1 + 120, $top_2, 30, 20)
$RadioButtonGroups[1][5] = GUICtrlCreateRadio("6",$left_s1 + 150, $top_2, 30, 20)
$edit21 = GUICtrlCreateEdit("", 110, 465, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("3. Objektivität / Fairness 3 ", 90, 610, 400, 200)
$RadioButtonGroups[2][0] = GUICtrlCreateRadio("1",$left_s1 + 00, $top_3, 30, 20, $WS_GROUP)
$RadioButtonGroups[2][1] = GUICtrlCreateRadio("2",$left_s1 + 30, $top_3, 30, 20)
$RadioButtonGroups[2][2] = GUICtrlCreateRadio("3",$left_s1 + 60, $top_3, 30, 20)
$RadioButtonGroups[2][3] = GUICtrlCreateRadio("4",$left_s1 + 90, $top_3, 30, 20)
$RadioButtonGroups[2][4] = GUICtrlCreateRadio("5",$left_s1 + 120, $top_3, 30, 20)
$RadioButtonGroups[2][5] = GUICtrlCreateRadio("6",$left_s1 + 150, $top_3, 30, 20)
$edit31 = GUICtrlCreateEdit("", 110, 690, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
;----------zweite spalte ----------------------------------------------
GUICtrlCreateGroup("4. Objektivität / Fairness 4 ", 510, 150, 400, 200)
$RadioButtonGroups[3][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_1, 30, 20, $WS_GROUP)
$RadioButtonGroups[3][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_1, 30, 20)
$RadioButtonGroups[3][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_1, 30, 20)
$RadioButtonGroups[3][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_1, 30, 20)
$RadioButtonGroups[3][4] = GUICtrlCreateRadio("5", $left_s2 + 120, $top_1, 30, 20)
$RadioButtonGroups[3][5] = GUICtrlCreateRadio("6", $left_s2 + 150, $top_1, 30, 20)
$edit41 = GUICtrlCreateEdit("", 530, 235, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("5. Objektivität / Fairness 5 ", 510, 380, 400, 200)
$RadioButtonGroups[4][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_2, 30, 20, $WS_GROUP)
$RadioButtonGroups[4][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_2, 30, 20)
$RadioButtonGroups[4][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_2, 30, 20)
$RadioButtonGroups[4][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_2, 30, 20)
$RadioButtonGroups[4][4] = GUICtrlCreateRadio("5", $left_s2 + 120,$top_2, 30, 20)
$RadioButtonGroups[4][5] = GUICtrlCreateRadio("6", $left_s2 + 150,$top_2, 30, 20)
$edit51 = GUICtrlCreateEdit("", 530, 465, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
GUICtrlCreateGroup("6. Objektivität / Fairness 6 ", 510, 610, 400, 200)
$RadioButtonGroups[5][0] = GUICtrlCreateRadio("1", $left_s2 + 00, $top_3, 30, 20, $WS_GROUP)
$RadioButtonGroups[5][1] = GUICtrlCreateRadio("2", $left_s2 + 30, $top_3, 30, 20)
$RadioButtonGroups[5][2] = GUICtrlCreateRadio("3", $left_s2 + 60, $top_3, 30, 20)
$RadioButtonGroups[5][3] = GUICtrlCreateRadio("4", $left_s2 + 90, $top_3, 30, 20)
$RadioButtonGroups[5][4] = GUICtrlCreateRadio("5", $left_s2 + 120,$top_3, 30, 20)
$RadioButtonGroups[5][5] = GUICtrlCreateRadio("6", $left_s2 + 150,$top_3, 30, 20)
$edit61 = GUICtrlCreateEdit("", 530, 690, 360, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
$Button_1 = GUICtrlCreateButton( "Formular Absenden",@DesktopWidth * (50 /100) -50,200,130,30, 0x0C00 )
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
[/autoit] [autoit][/autoit] [autoit]Case $GUI_EVENT_CLOSE
Exit
Case $TL_Combo
[/autoit] [autoit][/autoit] [autoit]Case $Button_1
If _pruefen( $RadioButtonGroups ) = True Then
MsgBox(0,"1 alles ok", ":)" )
Exit
Else
MsgBox(0,"Info","Bitte alle Felder ausfüllen")
EndIf
EndSwitch
WEnd
;
; Hier musst du natürlich noch die Überprüfung der Editboxen rein machen.
;
Func _pruefen( $RadBtnGrps )
Local $AllNeededDataFound = False
[/autoit] [autoit][/autoit] [autoit]If _check_all_Radio_Buttons_State( $RadBtnGrps ) = True Then
$AllNeededDataFound = True
Else
$AllNeededDataFound = False
Return $AllNeededDataFound
EndIf
Return $AllNeededDataFound
EndFunc
;
; Prüft >>> alle <<< Radio Button Gruppen ob ein RadioButton gesetzt ist.
;
Func _check_all_Radio_Buttons_State( $RadBtnGrps )
Local $SizeOfRadBtnArr = UBound( $RadBtnGrps )
Local $RadioButtonChecked = False
For $Lc = 0 To $SizeOfRadBtnArr - 1
If _is_Radio_Button_Of_Group_Checked( $RadBtnGrps, $Lc ) = True Then
$RadioButtonChecked = True
Else
$RadioButtonChecked = False
ExitLoop
EndIf
Next
Return $RadioButtonChecked
EndFunc
;
; Prüft ob innerhalb einer RadioButton Gruppe ein Radio Button gestzt ist.
;
Func _is_Radio_Button_Of_Group_Checked( $RadioButtonArray, $GroupNr )
Local $SizeOfArray = UBound( $RadioButtonArray, 2 )
Local $RadioButtonChecked = False
For $Lc = 0 To $SizeOfArray - 1
If GUICtrlRead( $RadioButtonArray[$GroupNr][$Lc] ) = $GUI_CHECKED Then
$RadioButtonChecked = True
ExitLoop
EndIf
Next
Return $RadioButtonChecked
EndFunc
Ein Problem könnte sein, dass du annimmst das die PID immer gleich 1 ist.
Die PID allerdings ändert sich mit jedem Start des Programms. In der Regel.
Schau dir mal GUICtrlRead an und für eine Tabelle mit Variablen für den Status eines Controls GUICtrlSetState.
Du musst wohl jedes Control einzeln prüfen wie dessen Status ist.
Für die RadioButtons würde ich am besten pro Gruppe deren Handle/Identifizierer in ein Array speichern. Somit kannst du mittels einer
Schleife den Status prüfen und musst nicht für jeden Radio Button eine If-Abfrage erstellen.
Und bei den Editboxen einfach den Inhalt prüfen ob leer oder/und ob min. Anz. an Zeichen erreicht. Auch wieder denkbar mit einem Array.
Edit:
Was ich noch erwähnen wollte, wenn ich dein Programm starte dann geht die GUI über meinen unteren Bildschirmrand. Ich sehe nur noch den Pfeil nach unten des Scrollbalkens von den letzten beiden Editboxen (3,6).
Den Knopf "Formular Absenden" sehe ich somit nichtmehr.
Meine Auflösung ist 1366x768.
Aus der Hilfe zu Run:
After running the requested program the script continues. To pause execution of
the script until the spawned program has finished use the RunWait function
instead.
Solltest dir also mal RunWait anschauen.
mit "setsysvolume 0 Lautsprecher" wird trotzdem der Line1 geregelt.
mit "setsubunitvolumedb Lautsprecher Wave 0" passiert nichts
Aus der Hilfe von NirCmd:
setdefaultsounddevice "Line In"
setdefaultsounddevice "Microphone" 2
setsubunitvolumedb "Speakers" "Line In" -25
setsubunitvolumedb "Speakers" "Microphone" -10
Jetzt noch das nircmd davor setzten und nochmal probieren.
Also z.B.:
nircmd setsubunitvolumedb "Speakers" "Microphone" -10
Du könntest das Control, in dem Fall die Schieberegler deren Wert du ändern möchtest, über ControlSend ansprechen. Das Problem ist aber das richtige Control erst mal zu finden.
Denn man muss davon ausgehen das z.B. der Lautstärkeregler(Control) der Klinke nicht immer die selbe Instanznummer hat. [CLASS:msctls_trackbar32; INSTANCE:1] (Instanznummer) (Ausgelesen mit dem Au3Info Tool)
Auslesen der aktuellen Werte der Lautstärkeregler kannst du mit folgendem Codeschnipsel von Bugfix:
http://pastebin.com/PXTdVg2A
Beachten musst du das die Ausgabe des Codeschnipsels genau das Gegenteil ist was der Regler anzeigt. Will heißen, steht der Lautstärkeregler in Windows auf 60 gibt der Codeschnipsel 40 zurück.
Eine weitere Möglichkeit wäre noch mittels der Winapi die Lautstärkeeinstellung zu manipulieren.
Ich vermute mal das hier etwas dabei sein könnte: http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx
Befasst habe ich mich damit noch nicht.