@Tam0r
Nix andres macht mein Beispiel ![]()
- MainGUI mit Style $WS_MAXIMIZE
- SubGUI mit Ex-Style $WS_EX_TOPMOST
@Tam0r
Nix andres macht mein Beispiel ![]()
- MainGUI mit Style $WS_MAXIMIZE
- SubGUI mit Ex-Style $WS_EX_TOPMOST
Hier, eine MainGUI und mit Strg+S kannst du eine SubGUI öffnen:
[autoit]#include <GUIConstants.au3>
$MainGUI = GUICreate("Main", Default, Default, Default, Default, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZE))
$SubGUI = GUICreate("Sub", 867, 551, -1, -1, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_TOPMOST)
GUISetState(@SW_SHOW,$MainGUI)
HotKeySet("^s", "_StrgS")
While 1
$msg = GuiGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE
Select
Case $msg[1] = $MainGUI
ExitLoop
Case $msg[1] = $SubGUI
GUISetState(@SW_HIDE,$SubGUI)
EndSelect
EndSelect
WEnd
Exit
Func _StrgS()
GUISetState(@SW_SHOW,$SubGUI)
EndFunc
Alternativ kannst du auch mit Kontextmenü arbeiten.
Hier mal ein Beispiel zum Editieren und Löschen (auch von einzelnen Werten) in einem ListView.
#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <GuiList.au3>
Dim $arItem[8], $arChange
$Form1 = GUICreate("AForm1", 633, 265, -1, -1)
$ListView1 = GUICtrlCreateListView("1|2|3|4|5|6|7|8|9|10|11|12|13|14", 16, 16, 601, 225)
GUICtrlSendMsg($ListView1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
For $i = 0 To 7
$arItem[$i] = GUICtrlCreateListViewItem("",$ListView1)
For $k = 0 To 13
_GUICtrlListViewSetItemText($ListView1, $i, $k, "Zeile"&$i+1 & "/Spalte"&$k+1)
_GUICtrlListViewSetColumnWidth($ListView1, $k, 86)
Next
Next
$lvContext = GUICtrlCreateContextMenu($ListView1)
$conEdit = GUICtrlCreateMenuitem("Edit", $lvContext)
$conDelAll = GUICtrlCreateMenuItem("Lösche kpl. Eintrag", $lvContext)
; GUI für Edit
$Form2 = GUICreate("AForm2", 328, 432, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
$List1 = GUICtrlCreateList("", 20, 20, 285, 370, BitOR($WS_HSCROLL,$WS_BORDER))
$btnOK = GUICtrlCreateButton("OK", 196, 400, 109, 21, 0)
$lContext = GUICtrlCreateContextMenu($List1)
$conEdit_l = GUICtrlCreateMenuitem("Editieren", $lContext)
$conDel_l = GUICtrlCreateMenuitem("Löschen", $lContext)
GUISetState(@SW_SHOW, $Form1)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $conDelAll
_GUICtrlListViewDeleteItem($ListView1, _GUICtrlListViewGetSelectedIndices($ListView1))
Case $conEdit
$lvIndex = _GUICtrlListViewGetSelectedIndices($ListView1)
$arChange = _GUICtrlListViewGetItemTextArray($ListView1, $lvIndex)
For $i = 1 To $arChange[0]
_GUICtrlListAddItem($List1, $arChange[$i])
Next
GUISetState(@SW_SHOW, $Form2)
Case $btnOK
For $i = 0 To _GUICtrlListCount($List1) -1
_GUICtrlListViewSetItemText($ListView1, $lvIndex, $i, _GUICtrlListGetText($List1, $i))
Next
GUISetState(@SW_HIDE, $Form2)
Case $conEdit_l
$lIndex = _GUICtrlListGetCaretIndex($List1)
$var = InputBox("Eintrag ändern", "", _GUICtrlListGetText($List1, $lIndex))
_GUICtrlListReplaceString($List1, $lIndex, $var)
Case $conDel_l ; nicht wirklich löschen, sonst wär eine Spalte zu wenig
$lIndex = _GUICtrlListGetCaretIndex($List1)
_GUICtrlListReplaceString($List1, $lIndex, "")
EndSwitch
WEnd
Willst du wissen, welcher User an PC(x) oder PC(y) eingeloggt ist?
Von wo willst du das abfragen?
Bist du selbst User an PC(x) fehlen dir die Rechte zum Abfragen, bist du Admin im Netzwerk kannst du im Logon des Servers nachschauen.
:schild4:
Warum so komplizert?
MsgBox(0,"", @UserName)
[/autoit]Hi Vinschni,
also ich habe jetzt erstmal dein Script so angepaßt, dass auch in die Datei geschrieben werden kann. Einiges ist mir aber noch unklar. Lies mal meine Kommentare.
Wo ich Änderungen gemacht habe, habe ich es markiert mit ";########".
Wenn das erstmal funktioniert, können wir uns um das Editieren der Einträge kümmern.
#include <GuiConstants.au3>
#include <File.au3>
#Include <GuiStatusBar.au3>
#include <GuiListView.au3>
#NoTrayIcon
If Not FileExists(@ScriptDir & "\B.KO.-DATA") Then DirCreate(@ScriptDir & "\B.KO.-DATA") ;Prüft ob der Ordner in welchem der Pfad der aktuell editierten Code Datei und dieselbe existiert und erstellt ihn bei Bedarf.
$Datei = @ScriptDir & "\B.KO.-DATA\BeepCode.bc" ;Öffnet und oder erstellt die Datei in welche später alle <Beep(...)> , <Sleep(...)> Befehle geschrieben werden.
$Codedateipfad = @ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini" ;Öffnet und oder erstellt die Datei in welcher der Pfad zur <BeepCode.bc> verzeichnet ist, um später in verschiedene Dateien zu schreiben.
IniWrite($Codedateipfad, "File", "Path", @ScriptDir & "\B.KO.-DATA\BeepCode.bc");Schreibt den aktuellen Pfad der <BeepCode.bc> in <BeepCodePfad.ini>.
;############# $Datei gleich im Schreibmodus öffnen (anhängen) ################################################
Dim $fh = FileOpen($Datei, 1)
;~ ########### Sollte $Datei im Programm irgendwann einen anderen Wert bekommen mußt du UNBEDINGT so vorgehen:
; als erstes $Datei schließen mit: FileClose($fh)
; dann neuen Wert zuweisen: $Datei = "neuer Wert"
; jetzt $Datei mit neuem Wert zum Schreiben öffnen: $fh = FileOpen($Datei, 1)
;##############################################################################################################
Local $hauptfenster, $StatusBar1, $msg
Local $Lange[1] = [536]
Local $Statusbartextvor[1] = ["GD: " & $Datei]
;GUI
$hauptfenster = GUICreate("Beep Komponist 1.7", 536, 398, -1, -1)
GUISetBkColor(0xFFFFFF)
$quit = GUICtrlCreateButton("Schließen", 354, 340, 118, 28)
$GroupAbspielen = GUICtrlCreateGroup("Abspielen", 144, 256, 193, 113)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$abspielen = GUICtrlCreateButton("Aktuelles Abspielen", 151, 277, 176, 28)
$incode = GUICtrlCreateButton("In Code umwandeln", 152, 334, 176, 20)
$dateiabspielen = GUICtrlCreateButton("Andere .bk Datei abspielen", 152, 312, 177, 17)
$GroupIni = GUICtrlCreateGroup("B.KO.-DATA Management", 352, 216, 169, 121)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$BKOloeschen = GUICtrlCreateButton("Diverse B.KO.-Datei löschen", 360, 240, 153, 17, 0)
$neueBeepcodedatei = GUICtrlCreateButton("Neue <BeepCode.bc>", 360, 264, 153, 17, 0)
$neueBeepCodePfadDatei = GUICtrlCreateButton("Neue <BeepCodePfad.ini>", 360, 288, 153, 17, 0)
$anderecodedateiwahlen = GUICtrlCreateButton("Andere Code-Datei wählen", 360, 312, 153, 17, 0)
$GroupPausen = GUICtrlCreateGroup("Pausen", 8, 232, 129, 137)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$ganzepause = GUICtrlCreateButton("Ganze Pause", 16, 248, 113, 17, 0)
$halbepause = GUICtrlCreateButton("Halbe Pause", 16, 272, 113, 17, 0)
$viertelpause = GUICtrlCreateButton("Viertel Pause", 16, 296, 113, 17, 0)
$achtelpause = GUICtrlCreateButton("Achtel Pause", 16, 320, 113, 17, 0)
$sechzentelpause = GUICtrlCreateButton("Sechzentel Pause", 16, 344, 113, 17, 0)
$Groupnotenlangen = GUICtrlCreateGroup("Notenlängen", 8, 8, 129, 217)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$ganzenote = GUICtrlCreateRadio("Ganze Note", 16, 32, 89, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$halbenote = GUICtrlCreateRadio("Halbe Note", 16, 80, 89, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$viertelnote = GUICtrlCreateRadio("Viertel Note", 16, 128, 73, 17)
GUICtrlSetState($viertelnote, $GUI_CHECKED)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$achtelnote = GUICtrlCreateRadio("Achtel Note", 16, 176, 97, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$sechzentelnote = GUICtrlCreateRadio("Sechzentel Note", 16, 200, 113, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$punktierteviertel = GUICtrlCreateRadio("Punktierte Viertel", 16, 104, 105, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$punktiertehalbe = GUICtrlCreateRadio("Punktierte Halbe", 16, 56, 113, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$punktierteachtelnote = GUICtrlCreateRadio("Punkierte Achtel", 16, 152, 113, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$List = GUICtrlCreateListView("Noten", 352, 16, 169, 171)
_GUICtrlListViewSetColumnWidth(-1, 0,$LVSCW_AUTOSIZE_USEHEADER)
$notenlistloeschen = GUICtrlCreateButton("x", 503, 193, 19, 19)
$korrigieren = GUICtrlCreateCheckbox("Eingegebenes korrigieren", 357, 193, 145, 17)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$ueber = GUICtrlCreateButton("Über...", 478, 340, 44, 28, 0)
$ToeneTab = GUICtrlCreateTab(144, 14, 193, 233)
$ToeneTabSheet1 = GUICtrlCreateTabItem("Töne von c' - h'")
$Statusbar = _GUICtrlStatusBarCreate($hauptfenster,$Lange,$Statusbartextvor)
_GUICtrlStatusBarSetIcon($Statusbar, 0, "shell32.dll", 70)
$c1 = GUICtrlCreateButton("c'", 148, 46, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$cis1 = GUICtrlCreateButton("cis'/des'", 148, 78, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$dis1 = GUICtrlCreateButton("dis'/es'", 148, 142, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$e1 = GUICtrlCreateButton("e'", 148, 174, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$f1 = GUICtrlCreateButton("f'", 148, 206, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$g1 = GUICtrlCreateButton("g'", 244, 78, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$gis1 = GUICtrlCreateButton("gis'/as'", 244, 110, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$a1 = GUICtrlCreateButton("a'", 244, 142, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$ais1 = GUICtrlCreateButton("ais'/b'", 244, 174, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$h1 = GUICtrlCreateButton("h'", 244, 206, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$d1 = GUICtrlCreateButton("d'", 148, 110, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$fis1 = GUICtrlCreateButton("fis'/ges'", 244, 46, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$ToeneTabSheet2 = GUICtrlCreateTabItem("Töne von c'' - h''")
$h2 = GUICtrlCreateButton("h''", 244, 206, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$ais2 = GUICtrlCreateButton("ais''/b''", 244, 174, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$a2 = GUICtrlCreateButton("a''", 244, 142, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$gis2 = GUICtrlCreateButton("gis''/as''", 244, 110, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$g2 = GUICtrlCreateButton("g''", 244, 78, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$c2 = GUICtrlCreateButton("c''", 148, 46, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$cis2 = GUICtrlCreateButton("cis''/des''", 148, 78, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$d2 = GUICtrlCreateButton("d''", 148, 110, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$dis2 = GUICtrlCreateButton("dis''/es''", 148, 142, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$e2 = GUICtrlCreateButton("e''", 148, 174, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$f2 = GUICtrlCreateButton("f''", 148, 206, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$fis2 = GUICtrlCreateButton("fis''/ges''", 244, 46, 80, 20, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $c1
_write(262) ;Jeweilige Frequenz wird an die _write Funktion übergeben.
_Listwrite("c'") ;Ton wird an _Listwrite übergeben, das angezeigt werden kann auf was geklickt wurde.
Case $msg = $cis1
_write(277)
_Listwrite("cis'/des'")
Case $msg = $d1
_write(293)
_Listwrite("d'")
Case $msg = $dis1
_write(311)
_Listwrite("dis'/es'")
Case $msg = $e1
_write(330)
_Listwrite("e'")
Case $msg = $f1
_write(349)
_Listwrite("f'")
Case $msg = $fis1
_write(370)
_Listwrite("fis'/ges'")
Case $msg = $g1
_write(392)
_Listwrite("g'")
Case $msg = $gis1
_write(415)
_Listwrite("gis'/as'")
Case $msg = $a1
_write(440)
_Listwrite("a'")
Case $msg = $ais1
_write(466)
_Listwrite("ais'/b'")
Case $msg = $h1
_write(493)
_Listwrite("h'")
Case $msg = $c2
_write(523)
_Listwrite("c''")
Case $msg = $cis2
_write(554)
_Listwrite("cis''/des''")
Case $msg = $d2
_write(587)
_Listwrite("d''")
Case $msg = $dis2
_write(622)
_Listwrite("dis''/es''")
Case $msg = $e2
_write(659)
_Listwrite("e''")
Case $msg = $f2
_write(698)
_Listwrite("f''")
Case $msg = $fis2
_write(740)
_Listwrite("fis''/ges''")
Case $msg = $g2
_write(784)
_Listwrite("g''")
Case $msg = $gis2
_write(831)
_Listwrite("gis''/as''")
Case $msg = $a2
_write(880)
_Listwrite("a''")
Case $msg = $ais2
_write(932)
_Listwrite("ais''/b''")
Case $msg = $h2
_write(988)
_Listwrite("h''")
Case $msg = $ganzepause
FileWrite($fh, "Sleep(1000)" & @CRLF) ;############ Bei Klick auf gewünschte Pausenlänge wird der dazugehörige <Sleep(...)> Befehl in die <BeepCode.bc> geschrieben.
GUICtrlCreateListViewItem("Ganze Pause",$List) ;Um zu sehen was man für eine Pausenlänge gedrückt hat wird hier der jeweilige Eintrag in ein Listview gepackt.
Case $msg = $halbepause
FileWrite($fh, "Sleep(500)" & @CRLF) ;############
GUICtrlCreateListViewItem("Halbe Pause",$List)
Case $msg = $viertelpause
FileWrite($fh, "Sleep(250)" & @CRLF) ;############
GUICtrlCreateListViewItem("Viertel Pause",$List)
Case $msg = $achtelpause
FileWrite($fh, "Sleep(125)" & @CRLF) ;############
GUICtrlCreateListViewItem("Achtel Pause",$List)
Case $msg = $sechzentelpause
FileWrite($fh, "Sleep(62)" & @CRLF) ;############
GUICtrlCreateListViewItem("Sechzentel Pause",$List)
Case $msg = $quit
Exit
Case $msg = $notenlistloeschen;Löscht nur die Liste mit den angeklickten Tonhöhen und den Notenlängen.
_GUICtrlListViewDeleteAllItems($List)
Case $msg = $incode ;Hier lässt sich eine <BeepCode.bc> in eine Beep Komposition umwandeln (eigentlich werden nur Namen und Dateiendung geändert, *.bk soll aber das Beep Komponist Dateiformat sein.)
$NamederBeepKomposition = InputBox("Meldung", "Geben sie hier ihrer Komposition einen Namen:")
Global $Codedat = @ScriptDir & "\Beep Komposition-" & $NamederBeepKomposition & ".bk"
FileCopy($Datei, @ScriptDir & "\Beep Komposition-" & $NamederBeepKomposition & ".bk")
_FileWriteToLine($Codedat, 0, ";Code erstellt durch Beep Komponist 1.6")
Case $msg = $BKOloeschen ;Hier lässt sich eine Beep komponist Datei aus dessen Ordner löschen.
$loeschDatei = FileOpenDialog("Eine Beep-Datei zum Löschen wählen:", @ScriptDir & "\B.KO.-DATA", "Beep Kompositionen (*.bk;*.bc)")
If FileExists($loeschDatei) Then FileDelete($loeschDatei)
Case $msg = $abspielen ;Hier wird die aktuell geöffnete <BeepCode.bc> abgespielt.
$Abspielpfad = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
If FileExists($Abspielpfad) Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $Abspielpfad & '"', '', @SW_HIDE);Wenn diese Datei existiert wird sie dann abgespielt.
Case $msg = $dateiabspielen ;Hier lässt sich eine beliebige *.bc oder *.bk Datei abspielen.
$abspieldatei = FileOpenDialog("Eine Beep komposition zum abspielen wählen:", @ScriptDir, "Beep Kompositionen (*.bk;*.bc)");Hier lassen sich beliebige *.bc (bearbeitete Codedateien) oder *.bk (fertige, schon umgewandelte Beep Kompositionen) abspielen.
If FileExists($abspieldatei) Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $abspieldatei & '"', '', @SW_HIDE)
Case $msg = $neueBeepcodedatei;Hier kann man eine neue BeepCodeDatei erstellen + die alte löschen.
$AlteCodeDatei = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
If FileExists($AlteCodeDatei) Then FileDelete($AlteCodeDatei)
$Datei = @ScriptDir & "\B.KO.-DATA\BeepCode.bc"
Case $msg = $anderecodedateiwahlen ;Hier kann man den Pfad zur aktuellen Code Datei ändern.
$PfadzurCodeDatei = IniRead(@ScriptDir & "\B.KO.-DATA\BeepCodePfad.ini", "File", "Path", "Konnte nicht gefunden werden!")
$Pfad = InputBox("Ini bearbeiten", "Hier können sie den aktuellen Pfad bearbeiten:", $PfadzurCodeDatei)
If FileExists($Pfad) Then
; ########### Wenn du $Datei hier einen anderen Wert zuweist, gilt das für deine _write() Funktion - ist das gewollt ?
;~ ########### $Datei = IniWrite($Codedateipfad, "File", "Path", $Pfad) ; geht so nicht, IniWrite gibt 0 oder 1 zurück, das wär dann in $Datei
;~ ########### Was soll hier passieren ? IniWrite - OK, aber welchen Wert soll $Datei bekommen ?
Else
MsgBox(16, "Error", "Die von ihnen angegebene Datei existiert nicht, und lässt sich so nicht bearbeiten!",4)
EndIf
Case $msg = $ueber
MsgBox(64, "Über...", "Programm Name: Beep Komponist" & @CRLF & "Programm Version : 1.7" & @CRLF & @CRLF & "Autor: Vinschni")
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
;;;
EndSelect
WEnd
FileClose($fh) ; Datei schließen bei Programmende ############
Exit
Func _write($note) ;Funktion die beim Klicken auf eine Note gestartet wird. Sie legt zusätzlich zur gewählten Tonhöhe die mit den Radiobuttons festgelegte Tonlänge fest und schreibt beides in <Beep(...)> Befehl, und dann in die aktuell bearbeitete <BeepCode.bc> welchen Pfad in der <BeepCodePfad.ini> steht.
Select
Case GUICtrlRead($ganzenote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",1000)" & @CRLF) ;############
Beep($note, 1000)
Case GUICtrlRead($punktiertehalbe) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",750)" & @CRLF) ;############
Beep($note, 750)
Case GUICtrlRead($halbenote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",500)" & @CRLF) ;############
Beep($note, 500)
Case GUICtrlRead($punktierteviertel) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",375)" & @CRLF) ;############
Beep($note, 375)
Case GUICtrlRead($viertelnote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",250)" & @CRLF) ;############
Beep($note, 250)
Case GUICtrlRead($punktierteachtelnote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",188)" & @CRLF) ;############
Beep($note, 188)
Case GUICtrlRead($achtelnote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",125)" & @CRLF) ;############
Beep($note, 125)
Case GUICtrlRead($sechzentelnote) = $GUI_CHECKED
FileWrite($fh, "Beep(" & $note & ",63)" & @CRLF) ;############
Beep($note, 63)
EndSelect
EndFunc
Func _Listwrite($Note) ; Zweite Funktion die beim Klicken auf eine Note gestartet wird. Sie sorgt dafür das die angeklickte Note mit ihrem richtigem Namen und der Notenlänge (nicht den Zahlen für den Beep() Befehl) in das Listview geschrieben wird.
Select
Case GUICtrlRead($ganzenote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Ganze Note",$List)
Case GUICtrlRead($punktiertehalbe) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Punktierte Halbe Note",$List)
Case GUICtrlRead($halbenote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Halbe Note",$List)
Case GUICtrlRead($punktierteviertel) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Punktierte Viertel Note",$List)
Case GUICtrlRead($viertelnote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Viertel Note",$List)
Case GUICtrlRead($punktierteachtelnote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Punktierte Achtel Note",$List)
Case GUICtrlRead($achtelnote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Achtel Note",$List)
Case GUICtrlRead($sechzentelnote) = $GUI_CHECKED
GUICtrlCreateListViewItem($Note & " , Sechzentel Note",$List)
EndSelect
EndFunc
Hab noch mal kurz drüber geschaut.
Eines ist mir aufgefallen:
FileOpen(@ScriptDir & "\B.KO.-DATA\LetzterBeepPath.ini",0)
[/autoit]
Das ist nicht vollständig. Du mußt ein Filehandle zuweisen um damit arbeiten zu können:
$fh = FileOpen($datei, modus)
[/autoit]
Alle folgenden Befehle beziehen sich jetzt auf das Filehandle, z.B.:
MsgBox(0, "Das steht in Zeile 1", FileReadLine($fh, 1)
[/autoit]
Zum Schluß, wichtig besonders wenn man mit mehreren Dateien arbeitet:
FileClose($fh)
[/autoit]EDIT
So, hab erst mal hundert Leerzeilen aus deinem Proggi entfernt, damit man es auch lesen kann
.
Außer in der oben angeführten Zeile, wo du kein Filehandle zuweist, hast du niemals eine Datei zum Schreiben geöffnet. Du verwendest immer den Befehl: FileWrite($Datei, "Beep.... ). Da $Datei aber nicht zum Schreiben geöffnet ist, geht der Befehl ins Leere.
EDIT2
Hab schon mal ein paar kleine Änderungen durchgeführt:
[autoit]If Not FileExists(@ScriptDir & "\B.KO.-DATA") Then DirCreate(@ScriptDir & "\B.KO.-DATA")
[/autoit][autoit]
$List = GUICtrlCreateListView("Noten", 352, 16, 169, 185)
_GUICtrlListViewSetColumnWidth(-1, 0,$LVSCW_AUTOSIZE_USEHEADER)
Case $msg = $notenlistloeschen
_GUICtrlListViewDeleteAllItems($List)
Die einzigen Dateien die erstellt werden, sind die mit INIWrite() erzeugten (Gründe siehe oben).
Da mir nicht ganz klar ist, was wann wohin geschrieben werden soll, (du verwendest z.B. für $Datei unterschiedliche Werte) überlasse ich diese Korrekturen dir.
Label als Button
Mit der Funktion von rakudave habe ich hier mal ein Bsp. erstellt, wie man farbige Button erstellen kann.
Ich habe die Funktion noch etwas erweitert, damit ich auch den Schriftstyle verändern kann.
Für die meisten Anwendungen sollte dies ausreichen.
Was nicht geht: Verändern der Buttoneigenschaften (Beschriftung, Farbe, Style) zur Laufzeit.
#include <GUIConstants.au3>
Dim $steelblue = 0xB0C4DE, $khaki = 0xF0E68C, $violet = 0x800080, $rot = 0xFF0000, $gelb = 0xFFFF00
Dim $aqua = 0x00FFFF, $crimson = 0xDC143C
$Form1 = GUICreate("Colored Button", 504, 186, -1, -1)
GUISetBkColor($steelblue)
; die Erzeugung des Buttons gibt eine Array-Variable zurück
$ret1 = _GUICtrlCreateColorButton("Button1", 25, 75, 85, 25, $khaki, $violet)
; an Position [0] des Arrays ist das Handle, über das der Button abgefragt werden kann
$btn1 = $ret1[0]
$ret2 = _GUICtrlCreateColorButton("Button2", 143, 75, 85, 25, $aqua, $rot, 10, 600, 0, "Verdana")
$btn2 = $ret2[0]
$ret3 = _GUICtrlCreateColorButton("Button3", 267, 75, 85, 25, $crimson, $gelb, 12, 600, 2, "Courier")
$btn3 = $ret3[0]
$ret4 = _GUICtrlCreateColorButton("Button4", 393, 75, 85, 25, $gelb, $crimson, 11, 400, 0, "Arial Narrow")
$btn4 = $ret4[0]
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btn1
GUICtrlSetStyle($btn1, $SS_ETCHEDFRAME) ; Button im Gedrückt-Zustand
Sleep(150) ; Verweildauer im Gedrückt-Zustand
GUICtrlSetStyle($btn1, $SS_NOTIFY + $SS_GRAYRECT) ; Button ungedrückt
Sleep(100) ; Pause um Vorgang optisch wahrzunehmen
; ab hier der Code für ButtonClick
MsgBox(0, '', "Standardschrift u. -größe" & @LF & "violett auf khaki")
Case $btn2
GUICtrlSetStyle($btn2, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btn2, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
MsgBox(0, '', "Verdana 10, 600 breit" & @LF & "rot auf aqua")
Case $btn3
GUICtrlSetStyle($btn3, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btn3, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
MsgBox(0, '', "Courier 12, kursiv, 600 breit" & @LF & "gelb auf crimson")
Case $btn4
GUICtrlSetStyle($btn4, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btn4, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
MsgBox(0, '', "Arial Narrow 11" & @LF & "crimson auf gelb")
EndSwitch
WEnd
;=============================================================================
;
; Function Name: _GUICtrlCreateColorButton()
;
; Description: Creates a colored Button
;
; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor] _
; [,$fontsize][,$fontweight][,$fontattrib][,$fontname])
;
; Parameter(s); $text = The text of the control
; $left = The left side of the control
; $top = The top of the control
; $width = The width of the control
; $height = The height of the control
; $bkcolor = Backgroundcolor of the control
; $fontcolor = [optional] Fontcolor of the control
; $fontsize = [optional] Schriftgröße (default 9)
; $fontweight = [optional] Zeichenbreite (default 400)
; $fontattrib = [optional] Schriftattribut
; (kursiv:2 unnterstrichen:4 durchgestrichen:8)
; $fontname = [optional] Schriftfont
;
; Return Value(s): array[1] = used to change colors
; array[0] = notifies GUIGetMsg if user clicks
;
; Author: rakudave <[email='rakudave@gmx.net'][/email]>
; Erweiterung $fontsize, $fontweight, $fontattrib, $fontname von BugFix
;==========================================================================================
Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1, _
$fontsize = 9, $fontweight = 400, $fontattrib = "default", $fontname = "default")
Local $colbut[2]
If $fontcolor == -1 Then $fontcolor = 0x000000
$colbut[0] = GUICtrlCreateLabel("", $left, $top, $width, $height, $SS_BLACKRECT)
GUICtrlCreateLabel("", $left, $top, $width - 1, $height - 1, $SS_WHITERECT)
GUICtrlCreateLabel("", $left + 1, $top + 1, $width - 2, $height - 2, $SS_GRAYRECT)
$colbut[1] = GUICtrlCreateLabel($text, $left + 1, $top + 1, $width - 3, $height - 3, $SS_NOTIFY & $SS_CENTER)
GUICtrlSetBkColor(-1, $bkcolor)
GUICtrlSetColor(-1, $fontcolor)
GUICtrlSetFont(-1, $fontsize, $fontweight, $fontattrib, $fontname)
Return $colbut
EndFunc ;==>_GUICtrlCreateColorButton
Kann ich nicht nachvollziehen, bei mir bleibts versteckt.
@pee
Dank angekommen, ich wars ![]()
Also ich bin kein Spezialist in Prozeßfragen. Aber vom Grundverständnis her denke ich, dass das nicht möglich ist. (lasse mich hier aber gerne korrigieren)
Meiner Meinung nach ist die Systemleistung pro Prozeß auch dann zwischenzeitlich = 0, wenn der Prozeß noch läuft. Denn kein Prozeß hat 100% Priorität. Insofern hast du ein Schwanken bis 0, bevor der Prozeß abgelaufen ist. Die Priorität eines Prozesses kannst du zwar abfragen, aber nicht die momentane Last.
EDIT
Schnapszahl, das war mein 444. Post ![]()
ZitatWie kann ich denn "die jüngste" eingeben?
Vergleiche 2 Dateien mit unterschiedlichem Erstellungsdatum/-zeit. Die "jüngste" ist natürlich die zuletzt erstellte.
Ich habe dein Bsp. mal etwas zusammengefaßt. Da ich die PsInfo nicht habe kann ich den Teil nicht testen.
Aber etwas soll ja auch für dich bleiben. ![]()
#include <GUIConstants.au3>
#include <file.au3>
#Include <GuiListView.au3>
#include <Process.au3>
Dim $complete = 0, $i, $array, $text = ""
$Form1 = GUICreate("AForm1", 427, 201, -1, -1, BitOR($WS_POPUPWINDOW,$WS_BORDER))
GUISetBkColor (0x4682B4)
$inPC = GUICtrlCreateInput("", 160, 34, 225, 21)
$inUser = GUICtrlCreateInput("", 160, 70, 225, 21)
$inPW = GUICtrlCreateInput("", 160, 106, 225, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$Label1 = GUICtrlCreateLabel("Remote PC", 20, 37, 58, 17)
$Label2 = GUICtrlCreateLabel("Remote Username", 20, 72, 92, 17)
$Label3 = GUICtrlCreateLabel("Remote Password", 20, 109, 90, 17)
$btnOK = GUICtrlCreateButton("OK", 304, 145, 81, 21, 0)
$GUI_Info = GUICreate("PC Info", 420, 320, -1, -1, Default, $WS_EX_ACCEPTFILES)
GUISetBkColor (0x4682B4)
$listview = GuiCtrlCreateListView ("Systeminfo|Ergebnis",10,10,400,300)
_GUICtrlListViewSetColumnWidth ($listview, 0, 150)
_GUICtrlListViewSetColumnWidth ($listview, 1, 246)
GUISetState(@SW_SHOW, $Form1)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnOK
$remote_pc = GUICtrlRead($inPC)
If $remote_pc = "" Then $complete += 1
$remote_admin = GUICtrlRead($inUser)
If $remote_admin = "" Then $complete += 1
$remote_password = GUICtrlRead($inPW)
If $remote_password = "" Then $complete += 1
If $complete <> 0 Then
MsgBox(262192,"Angaben unvollständig!","Bitte Angaben vervollständigen.")
$complete = 0
Else
GUISetState(@SW_HIDE, $Form1)
$psinfo = "psinfo \\"& $remote_pc &" -u "& $remote_admin &" -p "& $remote_password &" > psinfo.txt"
RunWait(@ComSpec & " /c " & ''& $psinfo &'', "", @SW_HIDE)
GUISetState(@SW_SHOW, $GUI_Info)
If Not _FileReadToArray("psinfo.txt",$array) Then
MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
Exit
EndIf
For $i = 1 To UBound($array) - 1
$text = StringStripWS( $array[$i], 4 )
$text = StringReplace($text, ": ", "|")
$text = StringReplace($text, "System information for \\", "PC-Name|")
$text = StringReplace($text, ": ", "|")
$item = GuiCtrlCreateListViewItem($text, $listview)
Next
EndIf
EndSwitch
WEnd
Exit
Hier, geht einwandfrei. Ist etwas angepaßt, geht jetzt nur für 1 User.
#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]$user = "Standard" ; oder wer auch immer
$var = StringSplit(myGetSID($user), @TAB)
MsgBox(0, 'SID von ' & $user, $var[1])
Func myGetSID($User=@UserName, $Host=@ComputerName, $NurEiner=True)
Local $wbemFlagReturnImmediately=0x10, $wbemFlagForwardOnly=0x20, $colItems=""
Local $JaNein[2]=[True, False], $Gesucht="", $Output, $i, $s
If $User="" Then $User=@UserName
If StringInstr($Host, "\\")=1 Then $Host=StringMid($Host, 3)
If $Host="" Then $Host="."
$NurEiner=$JaNein[$NurEiner=False]
$objWMIService=ObjGet("winmgmts:\\" &$Host &"\root\CIMV2")
If IsObj($objWMIService) Then
$colItems=$wbemFlagReturnImmediately+$wbemFlagForwardOnly
$colItems=$objWMIService.ExecQuery("SELECT * FROM Win32_AccountSID", "WQL", $colItems)
If IsObj($colItems) Then
For $objItem In $colItems
$s=$objItem.Setting
$s=StringMid($s, StringInStr($s, "SID=")+4) &@Tab
$s&=StringMid($objItem.Element, StringInStr($objItem.Element, "Name=")+5)
If StringInstr($s, Chr(34) &$User &Chr(34)) Then $Gesucht&=$s
$OutPut&=StringReplace($s, Chr(34), "") &@Cr
Next
If $NurEiner Then Return StringReplace($Gesucht, Chr(34), "")
Else
Return "Keine WMI-Objekte gefunden für Klasse: Win32_AccountSID"
Endif
Else
Return $Host &" ist nicht in diesem Netz.."
EndIf
EndFunc
Hi,
falls ihr ab und an dBase-Dateien in Excel laden wollt und ihr bekommt 'ne Fehlermeldung: "..unbekanntes Datenformat.." oder ähnlich, dann kann die Ursache dafür in einer fehlerhaften Einstellung der Borland Database Engine liegen.
Z.B. sind Telefonbuch-CD's mit steinalten BDE-Versionen ausgestattet, die bei jedem Start die BDE-Einstellungen zerschießen.
Hatte das Problem in der Firma, dass ich aus meiner Fachanwendung plötzlich keine Reports in Excel öffnen konnte und hab ewig gesucht, bis ich heraus gefunden habe, dass fehlerhafte BDE-Einstellungen die Ursache waren.
Entstanden ist daraus dieses Tool:
#include <GUIConstants.au3>
#Include <GuiListView.au3>
Dim $type = "REG_SZ", $succ = 0, $succComp = 0
Dim $keyVersion = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\INIT"
Dim $valNameVersion = "VERSION"
Dim $valVersion = "4.0"
Dim $keyLang = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\INIT"
Dim $valNameLang = "LANGDRIVER"
Dim $valLang = "DB850DE0"
Dim $keyLevel = "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\DBASE\TABLE CREATE"
Dim $valNameLevel = "LEVEL"
Dim $valLevel = "5"
Dim $arStatusReg[3], $status
Dim $steelblue = 0xB0C4DE, $khaki = 0xF0E68C, $violet = 0x800080, $rot = 0xFF0000
Dim $txt = @LF & @LF & "Sollten sich dBase-Dateien nicht im Excel öffnen lassen"& @LF & "(..unbekanntes Datenformat..), " & _
"so ist vermutlich eine fehlerhafte Einstellung der Borland Database Engine die Ursache." & @LF & @LF & _
"Dieses Programm überprüft die Einstellungen und paßt sie ggf. an."
Dim $txtChg = "Es müssen Einstellungen geändert werden."
Dim $txtNoChg = "Die Einstellungen sind korrekt. - Keine Änderungen."
; Start GUI
$Form1 = GUICreate("AForm1", 356, 257, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
GUISetBkColor($steelblue)
$Input1 = GUICtrlCreateInput("Konfiguration der Borland Database Engine", 8, 8, 340, 22, BitOR ($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetFont(-1, 9, 800, 0, "Verdana")
GUICtrlSetColor(-1, $violet)
GUICtrlSetBkColor(-1, $khaki)
$Label1 = GUICtrlCreateLabel($txt, 8, 45, 340, 120, BitOR($SS_CENTER,$SS_SUNKEN))
GUICtrlSetBkColor(-1, $khaki)
$ret1 = _GUICtrlCreateColorButton("Weiter", 8, 180, 90, 25, $khaki, $violet)
$btnRun = $ret1[0]
$ret2 = _GUICtrlCreateColorButton("Abbrechen", 258, 180, 90, 25, $khaki, $violet)
$btnEnd = $ret2[0]
$Input2 = GUICtrlCreateInput("© BugFix 2007 ( Colored Button by rakudave )", 8, 226, 340, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlSetBkColor(-1, $khaki)
GUICtrlSetFont(-1, 9, 550, 0, "Verdana")
GUICtrlSetColor(-1, $violet)
; GUI Settings
$Form2 = GUICreate("AForm2", 365, 201, -1, -1, BitOR($WS_POPUP,$WS_BORDER))
GUISetBkColor($steelblue)
$ListView1 = GUICtrlCreateListView("Parameter|IST - Wert|SOLL - Wert", 12, 11, 337, 105, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES))
GUICtrlSetBkColor(-1, $khaki)
_GUICtrlListViewSetColumnWidth(-1, 0, 111)
_GUICtrlListViewSetColumnWidth(-1, 1, 108)
_GUICtrlListViewSetColumnWidth(-1, 2, 108)
$ListView1_0 = GUICtrlCreateListViewItem("VERSION", $ListView1)
$ListView1_1 = GUICtrlCreateListViewItem("", $ListView1)
$ListView1_2 = GUICtrlCreateListViewItem("LANGDRIVER", $ListView1)
$ListView1_3 = GUICtrlCreateListViewItem("", $ListView1)
$ListView1_4 = GUICtrlCreateListViewItem("LEVEL", $ListView1)
$Label2 = GUICtrlCreateLabel("", 12, 129, 337, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE,$SS_SUNKEN))
GUICtrlSetBkColor(-1, $khaki)
GUICtrlSetColor(-1, $rot)
GUICtrlSetFont(-1, 9, 550, 0, "Verdana")
$ret3 = _GUICtrlCreateColorButton("Weiter", 12, 164, 90, 25, $khaki, $violet)
$btnWeiter = $ret3[0]
$ret4 = _GUICtrlCreateColorButton("Abbrechen", 260, 164, 90, 25, $khaki, $violet)
$btnEsc = $ret4[0]
GUISetState(@SW_SHOW, $Form1)
GUICtrlSetState(8, $GUI_FOCUS)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $btnEnd
GUICtrlSetStyle($btnEnd, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btnEnd, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
Exit
Case $btnRun
GUICtrlSetStyle($btnRun, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btnRun, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
_readReg()
ExitLoop
EndSwitch
WEnd
GUIDelete($Form1)
GUISetState(@SW_SHOW, $Form2)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $btnEsc
GUICtrlSetStyle($btnEsc, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btnEsc, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
Exit
Case $btnWeiter
GUICtrlSetStyle($btnWeiter, $SS_ETCHEDFRAME)
Sleep(150)
GUICtrlSetStyle($btnWeiter, $SS_NOTIFY + $SS_GRAYRECT)
Sleep(100)
If $status <> 0 Then _writeReg($arStatusReg[0], $arStatusReg[1], $arStatusReg[2])
ExitLoop
EndSwitch
WEnd
Exit
Func _readReg()
Dim $var
$var = RegRead($keyVersion, $valNameVersion)
_GUICtrlListViewSetItemText($ListView1, 0, 1, $var)
_GUICtrlListViewSetItemText($ListView1, 0, 2, $valVersion)
If $var = $valVersion Then
$arStatusReg[0] = 0
Else
$arStatusReg[0] = 1
EndIf
$var = RegRead($keyLang, $valNameLang)
_GUICtrlListViewSetItemText($ListView1, 2, 1, $var)
_GUICtrlListViewSetItemText($ListView1, 2, 2, $valLang)
If $var = $valLang Then
$arStatusReg[1] = 0
Else
$arStatusReg[1] = 1
EndIf
$var = RegRead($keyLevel, $valNameLevel)
_GUICtrlListViewSetItemText($ListView1, 4, 1, $var)
_GUICtrlListViewSetItemText($ListView1, 4, 2, $valLevel)
If $var = $valLevel Then
$arStatusReg[2] = 0
Else
$arStatusReg[2] = 1
EndIf
$status = $arStatusReg[0] + $arStatusReg[1] + $arStatusReg[2]
If $status = 0 Then
GUICtrlSetData($Label2, $txtNoChg)
Else
GUICtrlSetData($Label2, $txtChg)
EndIf
EndFunc
Func _writeReg($ver=1, $lang=1, $level=1)
Select
Case $ver = 1
$succComp += 1
If RegWrite($keyVersion, $valNameVersion, $type, $valVersion) = 1 Then $succ += 1
Case $lang = 1
$succComp += 1
If RegWrite($keyLang, $valNameLang, $type, $valLang) = 1 Then $succ += 1
Case $level = 1
$succComp += 1
If RegWrite($keyLevel, $valNameLevel, $type, $valLevel) = 1 Then $succ += 1
EndSelect
If $succ = $succComp Then
MsgBox(262208, "Borland Database Settings", "Änderungen erfolgreich übernommen.")
Else
MsgBox(262160, "Borland Database Settings", "Fehler, Änderungen konnten nicht übernommen werden!" & @LF & _
"Bitte überprüfen Sie, ob Ihr Account über ausreichende Berechtigungen zum Ändern der Registry verfügt.")
EndIf
EndFunc
;=============================================================================
;
; Function Name: _GUICtrlCreateColorButton()
;
; Description: Creates a colored Button
;
; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor])
;
; Parameter(s); $text = The text of the control
; $left = The left side of the control
; $top = The top of the control
; $width = The width of the control
; $height = The height of the control
; $bkcolor = Backgroundcolor of the control
; $fontcolor = [optional] Fontcolor of the control
;
; Return Value(s): array[1] = used to change colors
; array[0] = notifies GUIGetMsg if user clicks
;
; Author: rakudave <[email='rakudave@gmx.net'][/email]>
;=============================================================================
Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1)
Local $colbut[2]
If $fontcolor == -1 Then $fontcolor = 0x000000
$colbut[0] = GUICtrlCreateLabel("", $left, $top, $width, $height, $SS_BLACKRECT)
GUICtrlCreateLabel("", $left, $top, $width - 1, $height - 1, $SS_WHITERECT)
GUICtrlCreateLabel("", $left + 1, $top + 1, $width - 2, $height - 2, $SS_GRAYRECT)
$colbut[1] = GUICtrlCreateLabel($text, $left + 1, $top + 1, $width - 3, $height - 3, $SS_NOTIFY & $SS_CENTER)
GUICtrlSetBkColor(-1, $bkcolor)
GUICtrlSetColor(-1, $fontcolor)
GUICtrlSetFont(-1, 9, 600, 0, "Verdana")
Return $colbut
EndFunc ;==>_GUICtrlCreateColorButton
Dann wird die Bedingung (Fenstertitel + Text) nicht übereinstimmen mit dem Zustand im Programm.
Zum Prüfen häng mal
MsgBox(0,"Text", WinGetText("Primavera 5.0 Service Pack 2 - InstallShield Wizard"))
[/autoit]an und schau nach welcher Text dir zurückgegeben wird.
Edit:
ZitatHabt irh noch nen paar gute Tips (Bücher, Sites) wo ich mich über sämtliche Funktionen einlesen kann ??
JA, zum einen die Hilfe selbst, zum andren das Tutorial (oben links im Boardmenü).
Ich würde ganz auf den Aufruf mit Adlib verzichten.
Bsp.:
While 1
If WinExists("Primavera 5.0 Service Pack 2 - InstallShield Wizard","Yes, I want to resta") Then
WinActivate("Primavera 5.0 Service Pack 2 - InstallShield Wizard","Yes, I want to resta")
Send("{DOWN}{ENTER}")
ExitLoop
ElseIf WinExists("Primavera 5.0 Service Pack 2 - InstallShield Wizard","InstallShield Wizard Complete") Then
WinActivate("Primavera 5.0 Service Pack 2 - InstallShield Wizard","InstallShield Wizard Complete")
Send("{ENTER}")
ExitLoop
EndIf
Sleep(500)
WEnd
Exit
Aber prüf mal mit dem "AutoIt Window Info" - Tool, ob du nicht direkt mit ControlClick() auf die Controls zugreifen kannst, z.B. per classname.
Kann mir nicht vorstellen, dass das möglich ist. Aber wenn du in den Systemeinstellungen von Windows die Ruheeinstellung deaktivierst, sollte das doch dein Problem lösen - oder?