Talvez te sirva de referencia, esto lo hice hace un tiempo, puede que haya algun error, lo puedes modificar a tu gusto.
Código: Seleccionar todo
#cs
Desarrollador por yasmany [Yasmany Curimilma]
#ce
#NoTrayIcon
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiConstantsEx.au3>
#include <EditConstants.au3>
#include <GuiButton.au3>
#include <StaticConstants.au3>
Global $unidad, $cbUnidades, $sText, $resultado, $var, $val, $i, $dato, $count
$interfaz = GUICreate("Actualizar combo", 250, 140, -1, -1)
$btnObtenerUnidad = GUICtrlCreateButton("Obtener Unidad", 95, 100, 80, 25)
$cbUnidades = GUICtrlCreateCombo("", 25, 15, 193, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $CBS_UPPERCASE))
_GUICtrlComboBox_SetCueBanner($cbUnidades, "BUSCAR UNIDAD..")
GUISetState(@SW_SHOW)
While 1
actualizarComboDeUnidades()
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If $nMsg = $GUI_EVENT_CLOSE Then
Exit
EndIf
Case $btnObtenerUnidad
obtenerLetraDeUnidad()
EndSwitch
WEnd
Func actualizarComboDeUnidades()
For $i = 0 To _GUICtrlComboBox_GetCount($cbUnidades) - 1
$dato = _GUICtrlComboBox_GetLBText($cbUnidades, $i, $sText)
If $sText <> "BUSCAR UNIDAD..." Then
valordefinido()
If DriveStatus($unidad) <> "READY" Then
If GUICtrlRead($cbUnidades) = $sText Then
GUICtrlSetState($btnObtenerUnidad, $GUI_DISABLE)
_GUICtrlComboBox_DeleteString($cbUnidades, $i)
deshabilitarEncerar()
Else
_GUICtrlComboBox_DeleteString($cbUnidades, $i)
EndIf
EndIf
EndIf
Next
$val = DriveGetDrive("removable")
If Not @error Then
For $count = 1 To $val[0]
If DriveStatus($val[$count]) <> "READY" Then
Else
$resultado = StringUpper(DriveGetLabel($val[$count]) & "(" & $val[$count] & ")")
If _GUICtrlComboBox_FindStringExact($cbUnidades, $resultado) = "-1" Then
_GUICtrlComboBox_ShowDropDown($cbUnidades,False)
_GUICtrlComboBox_AddString($cbUnidades, $resultado)
ConsoleWrite($resultado&@CRLF)
EndIf
EndIf
Next
EndIf
EndFunc ;==>actualizarComboDeUnidades
Func deshabilitarEncerar()
GUICtrlSetState($btnObtenerUnidad, $GUI_DISABLE)
EndFunc ;==>deshabilitarEncerar
Func valordefinido()
$contenidocombo1 = StringReplace($sText, "(", "<unidad>")
$contenidocombo = StringReplace($contenidocombo1, ")", "</unidad>")
$unidad1 = StringRegExp($contenidocombo, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
$unidad = $unidad1[0]
EndFunc ;==>valordefinido
Func obtenerLetraDeUnidad()
If GUICtrlRead($cbUnidades) <> "BUSCAR UNIDAD..." Then
$contenidocombo = StringReplace(GUICtrlRead($cbUnidades), "(", "<unidad>")
$contenidocombo = StringReplace($contenidocombo, ")", "</unidad>")
$unidad = StringRegExp($contenidocombo, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
$unidad = $unidad[0]
MsgBox(64, "Mensaje", "La unidad es " & $unidad)
EndIf
EndFunc ;==>obtenerLetraDeUnidad
lugar donde lo publiqué: Publicacion :
http://www.emesn.com/autoitforum/viewto ... f=4&t=4110
Saludos
