Jump to content

Guıctrlcreateprogress Ekleyemiyorum


legolaas
 Share

Recommended Posts

#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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

#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?

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...