legolaas Posted August 6, 2013 Share Posted August 6, 2013 #RequireAdmin Opt('GUICloseOnESC', 1) $Form1 = GUICreate("UltraFlashPack v1", 260, 200, 192, 185) GUICtrlSetState(-1, 128) GUISetOnEvent(-3, '_End') $Checkbox1 = _SK_GUICtrlCreateCheckbox("1kur", 15, 20, 185) GUICtrlSetFont(2, 9, 400) $Checkbox2 = _SK_GUICtrlCreateCheckbox("2kur", 15, 40, 185) GUICtrlSetFont(2, 9, 400) $Checkbox3 = _SK_GUICtrlCreateCheckbox("3kur", 15, 60, 185) GUICtrlSetFont(2, 9, 400) $Checkbox4 = _SK_GUICtrlCreateCheckbox("4kur", 15, 80, 185) GUICtrlSetFont(2, 9, 400) $Checkbox5 = _SK_GUICtrlCreateCheckbox("5kur", 15, 100, 185) GUICtrlSetFont(2, 9, 400) $Button1 = GUICtrlCreateButton("Kurulumu Başlat", 45, 160, 163, 25) GUICtrlSetOnEvent(-1, '_MESSAGE') GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit EndSwitch WEnd Func _MESSAGE() If GUICtrlRead($Checkbox1)=1 then ShellExecute("1.exe") If GUICtrlRead($Checkbox2)=1 then ShellExecute("2.exe") If GUICtrlRead($Checkbox3)=1 then ShellExecute("3.exe") If GUICtrlRead($Checkbox4)=1 then ShellExecute("4.exe") If GUICtrlRead($Checkbox5)=1 then ShellExecute("5.exe") EndFunc ;==>_MESSAGE Func _SK_GUICtrlCreateCheckbox($_text, $_left, $_top, $_width) AutoItSetOption("GUIOnEventMode", 1) Local $mCheckbox = GUICtrlCreateCheckbox("", $_left, $_top, 13, 13) GUICtrlSetState(-1, 1) GUICtrlSetResizing(-1, 0x0300) Local $mLabel = GUICtrlCreateLabel($_text, $_left + 18, $_top, $_width - 18) GUICtrlSetOnEvent(-1, "_ControlCheckbox") GUICtrlSetBkColor(-1, -2) Return $mCheckbox EndFunc ;==>_SK_GUICtrlCreateCheckbox Func _ControlCheckbox() Local $CTRL_ID = @GUI_CtrlId - 1 GUICtrlSetState($CTRL_ID, __Iif(BitAND(GUICtrlRead($CTRL_ID), 1), 4, 1)) EndFunc ;==>_ControlCheckbox Func __Iif($fTest, $vTrueVal, $vFalseVal) If $fTest Then Return $vTrueVal Else Return $vFalseVal EndIf EndFunc ;==>__Iif Func _End() Exit 1 EndFunc ;==>_End Burada Kurulumu Başlat butonuna basınca progressbar eklemek istiyorum ancak ekleyemiyorum yardımcı olur musunuz. Şimdiden teşekkür ederim Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted August 6, 2013 Share Posted August 6, 2013 Bu progressbar zımbırtısı her zaman sorun olmuştur. Eğer işlemleri tam okuyamıyorsan ilerletmek zor olur.. Program kurulumlarında ben InstallTips öneririm. Sorunsuz çalışır hemde kurulurken kullanıcıya bilgi sağlar. Yinede sana ufak bir örnek verelim. Örneği kendine göre düzenlersin. #include <File.au3> Global $EXE_FILE = _TempFile() FileInstall("program1.exe", $EXE_FILE) _SET_PROGRESS($EXE_FILE, "Deneme", "Flash Player yüklenirken lütfen bekleyiniz...") FileDelete($EXE_FILE) FileInstall("program2.exe", $EXE_FILE, 1) _SET_PROGRESS($EXE_FILE, "Deneme", "Java yüklenirken lütfen bekleyiniz...") FileDelete($EXE_FILE) Func _SET_PROGRESS($GET_EXE_FILE, $GET_TITLE = "UltraFlashPack v1", $GET_MSG = "Program(lar) Yuklenirken Bekleyiniz.") ProgressOn($GET_TITLE, $GET_MSG, "0 Saniye") Local $PR_PID = Run($GET_EXE_FILE, @WorkingDir) Local $START_TIME[2] = [TimerInit(), 0] Local $SET_PROGRES While ProcessExists($PR_PID) If Round(TimerDiff($START_TIME[0])) > $START_TIME[1] Then $START_TIME[1] = Round(TimerDiff($START_TIME[0]) / 1000) $SET_PROGRES += 1 ProgressSet($SET_PROGRES, $START_TIME[1] & " Saniye") If $SET_PROGRES >= 100 Then $SET_PROGRES = 1 EndIf Sleep(50) WEnd ProgressSet(100, "Bilgi", "Kurulum Tamamlandi") EndFunc ;==>_SET_PROGRESS Ben burada Run kullandım sen istersen ShellExecute vs kullabilirsin buna ek olarak da parametre de ekleyebilirsin sana kalmış. Hayırlı geceler. Quote Link to comment Share on other sites More sharing options...
legolaas Posted August 7, 2013 Author Share Posted August 7, 2013 #include <WinAPI.au3> #include <Constants.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> $Form1 = GUICreate("Test", 250, 101, 192, 124) $Button1 = GUICtrlCreateButton("Başla", 8, 8, 65, 33) $Button2 = GUICtrlCreateButton("Dur", 80, 8, 57, 33) $Progress = GUICtrlCreateProgress(8, 50, 230, 33) GUICtrlSetColor(-1, 0xFF0000) GUISetBkColor(0xbab6b6) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 _ProgressMarquee_Start($Progress) Case $Button2 _ProgressMarquee_Stop($Progress, 1) EndSwitch WEnd Func _ProgressMarquee_Start($iControlID = -1) Local $aArray = GUICtrlGetStyle($iControlID) If Not BitAND($PBS_MARQUEE, $aArray[0]) Then GUICtrlSetStyle($iControlID, $PBS_MARQUEE) EndIf Return GUICtrlSendMsg($iControlID, $PBM_SETMARQUEE, 1, 50) EndFunc ;==>_ProgressMarquee_Start Func _ProgressMarquee_Stop($iControlID = -1, $iReset = 0) If $iReset Then Return GUICtrlSetStyle($iControlID, 0) EndIf Return GUICtrlSendMsg($iControlID, $PBM_SETMARQUEE, 0, 50) EndFunc ;==>_ProgressMarquee_Stop Func GUICtrlGetStyle($iControlID) Local $aArray[2] = [-1, -1], $hControl = GUICtrlGetHandle($iControlID) $aArray[0] = _WinAPI_GetWindowLong($hControl, $GWL_STYLE) $aArray[1] = _WinAPI_GetWindowLong($hControl, $GWL_EXSTYLE) Return $aArray EndFunc ;==>GUICtrlGetStyle Burdaki örneği başlat butonunun üstüne koyabilirmiyiz ve başlat butonuna basınca ilerlemeye başlasın? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.