Al igual revisa si la unidades que constan en el combo estan READY "legibles/existen" si no existen la elimina del combo basandose en el index.
El problema está en que cuando quiero expulsar una unidad desde la bandeja de notificaciones no me lo permite en la mayoría de veces (90 de 100) debido a que se está ocupando, ciertamente lo es. ya que mi aplicación lo hace.
¿Como podría solucionar el problema?
Espero su pronta ayuda, gracias.
Ubico el code de la funcion: ésta la llamo constatemente en el bucle que captura los eventos dentro de la GUI. (While and WEnd)
Código: Seleccionar todo
Func actualizarComboDeUnidades()
Local $i, $var, $dato, $count, $val, $resultado, $state
For $i = 0 To _GUICtrlComboBox_GetCount($cbUnidades) - 1
$dato = _GUICtrlComboBox_GetLBText($cbUnidades, $i, $sText)
If $sText <> "BUSCAR UNIDAD..." Then
valordefinido2()
If DriveStatus($unidad) <> "READY" Then
If GUICtrlRead($cbUnidades) = $sText Then
_GUICtrlComboBox_DeleteString($cbUnidades, $i)
ActualizarGui()
Else
_GUICtrlComboBox_DeleteString($cbUnidades, $i)
EndIf
EndIf
EndIf
Next
If GUICtrlRead($chbxUnidades) = $GUI_CHECKED Then; si está checkeado
$val = DriveGetDrive("ALL")
Else
$val = DriveGetDrive("REMOVABLE")
EndIf
If Not @error Then
For $count = 1 To $val[0]
If DriveStatus($val[$count]) <> "READY" Then
Else
If GUICtrlRead($chbxHomeDrive) = $GUI_UNCHECKED Then
$valHomeDrive = @HomeDrive
Else
$valHomeDrive = ""
EndIf
If $val[$count] <> $valHomeDrive Then; Or $val[$count] <> $valHomeDrive Then
$resultado = StringUpper(DriveGetLabel($val[$count]) & "(" & $val[$count] & ")")
If _GUICtrlComboBox_FindStringExact($cbUnidades, $resultado) = "-1" Then
_GUICtrlComboBox_ShowDropDown($cbUnidades, False)
_GUICtrlComboBox_AddString($cbUnidades, $resultado)
valordefinido3($resultado)
escaner()
If $valor <> 0 Then
$valor = ""
TrayTip("Avy Antivirus", "Unidad reciente" & @CRLF & $resultado & @CRLF & "Se a encontrado algunos registros.", 1, 2)
_GUICtrlComboBox_SelectString($cbUnidades, $resultado)
Clic_combo()
Clic_Analizar()
If GUICtrlRead($chekboxdsa) <> $GUI_CHECKED Then
$state = WinGetState("Avy Antivirus ", "")
If BitAND($state, 16) Then; si la ventana esta minimizada
WinSetState("Avy Antivirus ", "", @SW_RESTORE)
ElseIf BitAND($state, 2) Then; Si es visible no hacer nada
ElseIf BitAND($state, 4) Then
GUISetState(@SW_SHOW)
gui()
ExitLoop
EndIf
ElseIf GUICtrlRead($chekboxdsa) = $GUI_CHECKED Then
If DriveGetType($unidad) = "Removable" Then; solo a las unidades removibles desinfecto de forma automática
Clic_Desinfectar()
EndIf
EndIf
Else
$tray = TrayTip("Avy Antivirus", "Unidad reciente" & @CRLF & $resultado & @CRLF & "UNIDAD LIMPIA, NO SE ENCONTRARON REGISTROS.", 1, 1)
GUICtrlSetBkColor($tray, 0x00ff00)
EndIf
Else
EndIf
EndIf
EndIf
Next
EndIf
EndFunc ;==>actualizarComboDeUnidades