Andruxakonst
Новичок
- Сообщения
- 21
- Репутация
- 0
Уперся в тупик и не могу пока понять как действовать дальше.
В окне DriveGetDrive("REMOVABLE") заполняем GUICtrlCreateCombo циклически. т.к. необходимо при включенной программе отследить подключение флешки и вывести метку диска в Label. Но в моем скрипте, когда одна флешка вроде все норм, а вот когда 2, не получается, Combo открывается и начинает перескакивать с диска на диск "мерцая". Подскажите, может как по другому пути пойти?!
В окне DriveGetDrive("REMOVABLE") заполняем GUICtrlCreateCombo циклически. т.к. необходимо при включенной программе отследить подключение флешки и вывести метку диска в Label. Но в моем скрипте, когда одна флешка вроде все норм, а вот когда 2, не получается, Combo открывается и начинает перескакивать с диска на диск "мерцая". Подскажите, может как по другому пути пойти?!
Код:
$Form1 = GUICreate("Копирование ПО ПФР на USB Flash v.1.4 (for куроторав!)", 500, 450, 193, 125,"", $WS_EX_COMPOSITED)
$Combo_Flesh = GUICtrlCreateCombo("", 24, 35, 50, 25)
$Label_Text = GUICtrlCreateLabel("Выберите устройство для копирования ", 30, 5, 403, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label_Text_Vibor = GUICtrlCreateLabel("Вы выбрвли диск: ", 90, 40, 100, 28)
$Label_Text_Lable = GUICtrlCreateLabel("", 200, 40, 150, 28)
$Button_EXIT = GUICtrlCreateButton("ВЫХОД", 380, 380, 107, 30, 0)
GUISetState(@SW_SHOW)
While 1
Sleep(1000)
$nMsg = GUIGetMsg()
$Massive_Drive = DriveGetDrive("REMOVABLE")
$i = $Massive_Drive[0]
$j = $Massive_Drive[1]
$s = 1
If $j = "a:" Then ; исключаем диск А
$s += 1
For $D = $s to $i
GUICtrlSetData($Combo_Flesh, $Massive_Drive[$D])
Next
IF $i <= 1 Then
GUICtrlSetData($Label_Text_Lable, "Устнойств не найдено")
Else
;MsgBox(1,"", "Else")
;MsgBox(1,"", "Выбор - "& $Combo_Flesh)
$Bukva_diska = GUICtrlRead($Combo_Flesh)
;MsgBox(1,"", "Буква- "& $Bukva_diska)
$Lable_diska = DriveGetLabel ($Bukva_diska)
If $Lable_diska = "" Then
GUICtrlSetData($Label_Text_Lable, "Устройство без метки")
EndIf
GUICtrlSetData($Label_Text_Lable, $Lable_diska) ; выводит метку диска
;MsgBox(1,"", "Lable - "&$Lable_diska)
EndIf
Else
;MsgBox(1,"", "Else")
For $D = $s to $i
GUICtrlSetData($Combo_Flesh, $Massive_Drive[$D],$Massive_Drive[$s])
Next
;MsgBox(1,"", "Else")
;MsgBox(1,"", "Выбор - "& $Combo_Flesh)
$Bukva_diska = GUICtrlRead($Combo_Flesh)
;MsgBox(1,"", "Буква- "& $Bukva_diska)
$Lable_diska = DriveGetLabel ($Bukva_diska)
If $Lable_diska = "" Then
GUICtrlSetData($Label_Text_Lable, "Устройство без метки")
EndIf
GUICtrlSetData($Label_Text_Lable, $Lable_diska) ; выводит метку диска
;MsgBox(1,"", "Lable - "&$Lable_diska)
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button_EXIT
Exit
EndSwitch
WEnd