Beiträge von Falke_34
-
-
Wow
Vielen Dank!!
Es sieht genauso aus wie meins nur ist das script komplett anders......da werde ich mich erstmal reinfinden müssen
Vielen Vielen Dank dafür!
Nachtrag:
Das erstellen des Images hat noch nicht funktioniert - der kleine Fehler wurde gefunden und behoben - statt "MB" nur "M"
Hier noch einmal das leicht abgeänderte Script mit behobenen Fehlerchen:
C
Alles anzeigen#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> Global $bInOneGui = False _main() Func _guiCreate() Local Const $arBtnDefs = [ _ ["Pegasos 2", "pics/PegasosII.ico", "Pegasos_II.bat", true, Default], _ ["AmigaOne", "pics/AmigaOne.ico", "AmigaOne.bat", true, "Example.txt"], _ ["Sam460ex", "pics/Sam460ex.ico", "Sam460.bat", true, Default] _ ] Local $mGui[], $arButtonCtrlIds[UBound($arBtnDefs)][3] $mGui.btnDef = $arBtnDefs Local $iWidth = 300, $iHeight = 130+UBound($arBtnDefs)*50 $mGui.hGui = GUICreate("AmigaNG Starter v0.2", $iWidth, $iHeight) GuiSetIcon("pics/amigaos.ico", 0) ;BACKGROUND PIC ;GuiCtrlCreatePic("pics/boingball.jpg", -1, -1, 300, 280) Local $sName = FileGetVersion( "qemu-system-ppc.exe", "ProductName") GUICtrlCreateLabel($sName<>""?$sName:"QEMU", 112, 15, 71, 31) Local $sVersion = FileGetVersion( "qemu-system-ppc.exe", "ProductVersion") GUICtrlCreateLabel($sVersion<>""?$sVersion:"- Not installed", 149, 15, 71, 31) ; start create vm buttons For $i=0 to UBound($arBtnDefs)-1 Step 1 Local $iTop = 50*($i+1) $arButtonCtrlIds[$i][0] = GUICtrlCreateButton($arBtnDefs[$i][0], 15, $iTop, 164, 34, $BS_ICON) GUICtrlSetImage($arButtonCtrlIds[$i][0], $arBtnDefs[$i][1]) If $arBtnDefs[$i][3] Then $arButtonCtrlIds[$i][1] = GUICtrlCreateButton ("Edit", 185, $iTop+2, 50, 30) If $arBtnDefs[$i][4]<>Default Then $arButtonCtrlIds[$i][2] = GUICtrlCreateButton ("Example", 237, $iTop+2, 50, 30) Next $mGui.buttons = $arButtonCtrlIds ; end create vm buttons ;Start Create Image Buttons If $bInOneGui Then Local $iImageTop = $iHeight-50 GUICtrlCreateLabel("Create HDD Image:", 25, $iImageTop-20) $mGui.inputRam = GUICtrlCreateInput('2048', 25, $iImageTop, 50, 20) GUICtrlCreateLabel("MB", 80, $iImageTop+5) $mGui.inputPathQemu = GUICtrlCreateInput('', 115, $iImageTop, 50, 20) $mGui.buttonPath = GUICtrlCreateButton("...", 170, $iImageTop, 40, 20) $mGui.buttonOk = GUICtrlCreateButton("OK", 215, $iImageTop, 40, 20) Else $mGui.buttonImageGui = GUICtrlCreateButton("Create Image", 10, $iHeight-55, $iWidth-20, 25) Local $iGuiImageWidth = 400, $iGuiImageHeight = 80, $mImageGui[] $mImageGui.hGui = GUICreate("Create HDD Image", $iGuiImageWidth, $iGuiImageHeight) ; create controls on the new gui now Local $iTop = 10 $mImageGui.inputRam = GUICtrlCreateInput('2048', 10, $iTop, 50, 20) GUICtrlCreateLabel("MB", 65, $iTop+5) $iTop+=30 $mImageGui.inputPathQemu = GUICtrlCreateInput('hdf\amiga.img', 10, $iTop, $iGuiImageWidth-120, 20) $mImageGui.buttonPath = GUICtrlCreateButton("...", $iGuiImageWidth-100, $iTop, 40, 20) $mImageGui.buttonOk = GUICtrlCreateButton("OK", $iGuiImageWidth-50, $iTop, 40, 20) $mGui.imageGui = $mImageGui GUISwitch($mGui.hGui) ; Create controls after this line on the main gui again EndIf ;End Create Image Buttons $mGui.menuFile = GUICtrlCreateMenu("&QEmu") $mGui.menuExit = GUICtrlCreateMenuItem("Exit", $mGui.menuFile) $mGui.menuHelp = GUICtrlCreateMenu("?") $mGui.menuInfo = GUICtrlCreateMenuItem("Info", $mGui.menuHelp) GUISetState(@SW_SHOW, $mGui.hGui) return $mGui EndFunc Func _main() Local $mGui = _guiCreate() Local $iMsg = 0 While 1 $arMsg = GUIGetMsg(1) ; Handle input on the main gui If $arMsg[1] = $mGui.hGui Then Switch $arMsg[0] Case $GUI_EVENT_CLOSE, $mGui.menuExit ExitLoop Case $mGui.menuInfo MsgBox($MB_SYSTEMMODAL, "Info", "AmigaNG Starter v0.2" & @CRLF & @CRLF & "by Falke_34") Case $mGui.buttonPath GUICtrlSetData($mGui.imageGui.inputPathQemu, _imageSelectPath($mGui.hGui)) Case $mGui.buttonImageGui GUISetState(@SW_SHOW, $mGui.imageGui.hGui) Case $mGui.buttonOk _imageCreate(Int(GUICtrlRead($mGui.inputRam)), GUICtrlRead($mGui.inputPathQemu)) If @error Then MsgBox(16, "Error creating image", "Error: "&@error&" Ext: "&@extended) EndSwitch ; Check if one of the buttons from our array was clicked and handle that If $arMsg[0]<>0 Then For $i=0 to UBound($mGui.buttons)-1 Step 1 For $j=0 to UBound($mGui.buttons, 2)-1 Step 1 If $arMsg[0]=$mGui.buttons[$i][$j] Then Local $subIndex = ($j=0 or $j=1)?2:4 If $j=0 Then _run($mGui.btnDef[$i][$subIndex]) If $j=1 Then _edit($mGui.btnDef[$i][$subIndex]) If $j=2 Then _edit($mGui.btnDef[$i][$subIndex]) Local $iError = @error Local $iExt = @extended If $iError Then MsgBox(16, "Error executing code", "Error running/editing/showing """&$mGui.btnDef[$i][$subIndex]&""" Error: "&$iError&" Ext: "&$iExt) ExitLoop EndIf Next Next EndIf EndIf ; Handle input on the image gui If $arMsg[1] = $mGui.imageGui.hGui Then Switch $arMsg[0] Case $GUI_EVENT_CLOSE GUISetState(@SW_HIDE, $mGui.imageGui.hGui) GUICtrlSetData($mGui.imageGui.inputPathQemu, "") Case $mGui.imageGui.buttonPath GUICtrlSetData($mGui.imageGui.inputPathQemu, _imageSelectPath($mGui.imageGui.hGui)) Case $mGui.imageGui.buttonOk _imageCreate(Int(GUICtrlRead($mGui.imageGui.inputRam)), GUICtrlRead($mGui.imageGui.inputPathQemu)) If @error Then MsgBox(16, "Error creating image", "Error: "&@error&" Ext: "&@extended) Else GUISetState(@SW_HIDE, $mGui.imageGui.hGui) GUICtrlSetData($mGui.imageGui.inputPathQemu, "") EndIf EndSwitch EndIf WEnd EndFunc Func _run($sFile) Run($sFile) If @error Then return SetError(1, @error, False) return True EndFunc Func _edit($sFile) Run("notepad.exe "&$sFile) If @error Then return SetError(1, @error, False) return True EndFunc Func _imageSelectPath($hGui = 0, $sStartFolder=@ScriptDir) Local $sFolder = FileSelectFolder("Select folder", $sStartFolder, 0, "", $hGui) If @error or $sFolder="" Then return SetError(1, 0, "") return $sFolder EndFunc Func _imageCreate($iRam, $sPath) If $iRam<1 Then return SetError(1, 0, False) If $sPath="" Then return SetError(2, 0, False) Local $sCommand = 'qemu-img.exe create -f raw "'&$sPath&'" '&$iRam&'M' ConsoleWrite("Execute: "&$sCommand&@crlf) Run($sCommand, @ScriptDir) If @error Then Return SetError(3, @extended, False) return True EndFunc
-
Vielen dank für deine Antwort.
Aber hier muß ich mir doch eingestehen das das für mich viel zu kompliziert wird
Ich habe das für mich erstmal schon so gelöst:
C
Alles anzeigen#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> Global $QEmu, $Pegasos2, $Pegasos2Edit, $AmigaOne, $AmigaOneEdit, $Example, $Sam460ex, $Sam460exEdit, $PathQemu, $BtnPath, $sAnswer, $idFilemenu, $idExititem, $idHelpmenu, $idInfoitem Global $version = FileGetVersion( "qemu-system-ppc.exe", "ProductVersion") Global $name = FileGetVersion( "qemu-system-ppc.exe", "ProductName") Func _guiCreate() ;GUI GUICreate("AmigaNG Starter v0.1", 300, 280, -1, -1) ;ICON GuiSetIcon("pics/amigaos.ico", 0) ;BACKGROUND PIC ;GuiCtrlCreatePic("pics/boingball.jpg", -1, -1, 300, 280) $QEmu = GUICtrlCreateLabel($name, 112, 15, 71, 31) $QEmu = GUICtrlCreateLabel($version, 149, 15, 71, 31) ;BUTTONS $Pegasos2 = GUICtrlCreateButton("Pegasos 2", 15, 50, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/PegasosII.ico",-1) $Pegasos2Edit = GUICtrlCreateButton ("Edit", 185, 52, 50, 30) $AmigaOne = GUICtrlCreateButton("AmigaOne", 15, 100, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/AmigaOne.ico",-1) $AmigaOneEdit = GUICtrlCreateButton ("Edit", 185, 102, 50, 30) $Example = GUICtrlCreateButton ("Example", 237, 102, 50, 30) $Sam460ex = GUICtrlCreateButton("Sam460ex", 15, 150, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/Sam460ex.ico",-1) $Sam460exEdit = GUICtrlCreateButton ("Edit", 185, 152, 50, 30) ;Start Create Image Buttons GUICtrlCreateLabel("Create HDD Image:", 25, 205) $RAM = GUICtrlCreateInput('2048', 25, 225, 50, 20) GUICtrlCreateLabel("MB", 80, 228) $PathQemu = GUICtrlCreateInput('', 115, 225, 50, 20) $BtnPath = GUICtrlCreateButton("...", 170, 225, 40, 20) $BtnOk = GUICtrlCreateButton("OK", 215, 225, 40, 20) ;End Create Image Buttons $idFilemenu = GUICtrlCreateMenu("&QEmu") $idExititem = GUICtrlCreateMenuItem("Exit", $idFilemenu) $idHelpmenu = GUICtrlCreateMenu("?") $idInfoitem = GUICtrlCreateMenuItem("Info", $idHelpmenu) EndFunc _main() Func _main() _guiCreate() GUISetState(@SW_SHOWNORMAL) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idExititem ExitLoop Case $Pegasos2 Run("Pegasos_II.bat") Case $Pegasos2Edit Run("notepad.exe Pegasos_II.bat") Case $AmigaOne Run("AmigaOne.bat") Case $AmigaOneEdit Run("notepad.exe AmigaOne.bat") Case $Example Run("notepad.exe Example.txt") Case $Sam460ex Run("Sam460.bat") Case $Sam460exEdit Run("notepad.exe Sam460.bat") Case $idInfoitem MsgBox($MB_SYSTEMMODAL, "Info", "AmigaNG Starter v0.1" & @CRLF & @CRLF & "by Falke_34") Case Else ; EndSwitch WEnd EndFunc
Somit habe ich erstmal schon die Buttons - fehlt nur noch irgendwie die Funktion - da scheitere ich aber wieder kläglich
-
Guten Tag
Ich habe mir für QEmu PPC ein kleines einfaches GUI mit AutoIt gebastelt.
Es ist mit Sicherheit nicht perfekt aber es funktioniert soweit ganz gut .....
Für eine neue Funktion muß ich, mangels Kenntnisse, um Hilfe bitten:
- möchten gern einen neuen Button hinzufügen welcher ein neues fenster öffnet indem ich nun die Größe des virtuellen Images eingeben kann und mittels klick auf "erstellen" sollte nun in einen auswählbaren ordner ein Image erstellt werden.
Example Qemu script wäre: qemu-img create -f raw c:test.img 1G
Hier möchte ich euch mein kleines GUI vorstellen (sollte hier jemand noch Verbesserungsvorschläge haben, darf er sie natürlich gerne äußern):
Screenshot:
AmigaNG-Starter.au3:
C
Alles anzeigen#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> Global $QEmu, $Pegasos2, $Pegasos2Edit, $AmigaOne, $AmigaOneEdit, $Example, $Sam460ex, $Sam460exEdit, $idFilemenu, $idExititem, $idHelpmenu, $idInfoitem Global $version = FileGetVersion( "qemu-system-ppc.exe", "ProductVersion") Global $name = FileGetVersion( "qemu-system-ppc.exe", "ProductName") Func _guiCreate() ;GUI GUICreate("AmigaNG Starter v0.1", 300, 280, -1, -1) ;ICON GuiSetIcon("pics/amigaos.ico", 0) ;BACKGROUND PIC ;GuiCtrlCreatePic("pics/boingball.jpg", -1, -1, 300, 280) $QEmu = GUICtrlCreateLabel($name, 112, 15, 71, 31) $QEmu = GUICtrlCreateLabel($version, 149, 15, 71, 31) ;BUTTONS $Pegasos2 = GUICtrlCreateButton("Pegasos 2", 15, 50, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/PegasosII.ico",-1) $Pegasos2Edit = GUICtrlCreateButton ("Edit", 185, 52, 50, 30) $AmigaOne = GUICtrlCreateButton("AmigaOne", 15, 100, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/AmigaOne.ico",-1) $AmigaOneEdit = GUICtrlCreateButton ("Edit", 185, 102, 50, 30) $Example = GUICtrlCreateButton ("Example", 237, 102, 50, 30) $Sam460ex = GUICtrlCreateButton("Sam460ex", 15, 150, 164, 34, $BS_ICON) GUICtrlSetImage (-1, "pics/Sam460ex.ico",-1) $Sam460exEdit = GUICtrlCreateButton ("Edit", 185, 152, 50, 30) $idFilemenu = GUICtrlCreateMenu("&QEmu") $idExititem = GUICtrlCreateMenuItem("Exit", $idFilemenu) $idHelpmenu = GUICtrlCreateMenu("?") $idInfoitem = GUICtrlCreateMenuItem("Info", $idHelpmenu) EndFunc _main() Func _main() _guiCreate() GUISetState(@SW_SHOWNORMAL) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idExititem ExitLoop Case $Pegasos2 Run("Pegasos_II.bat") Case $Pegasos2Edit Run("notepad.exe Pegasos_II.bat") Case $AmigaOne Run("AmigaOne.bat") Case $AmigaOneEdit Run("notepad.exe AmigaOne.bat") Case $Example Run("notepad.exe Example.txt") Case $Sam460ex Run("Sam460.bat") Case $Sam460exEdit Run("notepad.exe Sam460.bat") Case $idInfoitem MsgBox($MB_SYSTEMMODAL, "Info", "AmigaNG Starter v0.1" & @CRLF & @CRLF & "by Falke_34") Case Else ; EndSwitch WEnd EndFunc
Download (in den QEmu Ordner entpacken): AmigaNG Starter.zip