Что нового

Модель флешки + буква флешки

k790

Новичок
Сообщения
239
Репутация
1
Здравствуйте, а подскажите пожалуйста, как узнать модель флешки (именно флешки, так как для проги не нужны жёсткие диски) + букву флехи (при чём флешка может быть не одна, то есть массив)


P.S.
Нашёл
Код:
Dim $aDisk[1][2] = [[0]]

$oService = ObjGet('winmgmts:\\.\root\cimv2')

If IsObj($oService) Then
    $oItems = $oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')
    If IsObj($oItems) Then
        For $Property In $oItems
            $aDisk[0][0] += 1
            ReDim $aDisk[$aDisk[0][0] + 1][2]
            $aDisk[$aDisk[0][0]][0] = $Property.Model
            $aDisk[$aDisk[0][0]][1] = $Property.Size
        Next
    EndIf
EndIf

For $i = 1 To $aDisk[0][0]
    If $aDisk[$i][0] Then
        MsgBox(4096, $aDisk[$i][0], $aDisk[$i][1])
    EndIf
Next

Но не могу найти как узнать букву диска, я полагаю это указывается в $Property.***, но что именно писать?
Я уже думал по серийнику узнавать букву диска, но это же глупо? :stars:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Свойства этого объекта перечислены тут.


Добавлено:
Сообщение автоматически объединено:

Пример:

Код:
$objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
$colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")

For $objDrive In $colDiskDrives
	ConsoleWrite("Physical Disk: " & $objDrive.Caption & " -- " & $objDrive.DeviceID & " (Size: " & $objDrive.Size & " bytes)" & @LF)
	
	$strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
	$colPartitions = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' & $strDeviceID & '"} WHERE AssocClass = Win32_DiskDriveToDiskPartition')
	
	For $objPartition In $colPartitions
		ConsoleWrite(@TAB & "Disk Partition: " & $objPartition.DeviceID & @LF)
		
		$colLogicalDisks = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="' & $objPartition.DeviceID & '"} WHERE AssocClass = Win32_LogicalDiskToPartition')
		
		For $objLogicalDisk In $colLogicalDisks
			ConsoleWrite(@TAB & "Logical Disk: " & $objLogicalDisk.DeviceID & @LF)
		Next
	Next
	
	ConsoleWrite(@LF)
Next
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
Спасибо, но как мне убрать жёсткий диск и оставить только REMOVABLE drivers?


Добавлено:
Сообщение автоматически объединено:

Смысл программы будет в том, что она должна пару простых вещей сделать на флешке, которую нужно выбрать через combo, вот пока единственная проблема в фильтрации типов носителей и моделей
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
k790 [?]
как мне убрать жёсткий диск и оставить только REMOVABLE drivers?
Тебе нужно приобрести терпение если хочешь научиться программировать.
Я дал ссылку, там есть свойство InterfaceType:

InterfaceType


Data type: string
Access type: Read-only


Interface type of physical disk drive.

The values are:

SCSI
HDC
IDE
USB
1394

Кроме этого, по букве диска можно узнать его тип (DriveGetType).
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
k790
Такая тема ничем не поможет?
http://autoit-script.ru/index.php?topic=2301.0
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
Скажите пожалуйста, как можно этот код оптимизировать, особенно процесс нахождения флешек (просто один код вставлен два раза):
Код:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 489, 117, 288, 227)
$Combo1 = GUICtrlCreateCombo("", 16, 24, 364, 25, BitOR($GUI_SS_DEFAULT_COMBO,$CBS_SIMPLE,$CBS_AUTOHSCROLL))
$Button1 = GUICtrlCreateButton("Обновить", 391, 22, 87, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


$objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
$colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
For $objDrive In $colDiskDrives
    ConsoleWrite("Physical Disk: " & $objDrive.Caption & @LF)
    
    $strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
    $colPartitions = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' & $strDeviceID & '"} WHERE AssocClass = Win32_DiskDriveToDiskPartition')
    
    For $objPartition In $colPartitions
;        ConsoleWrite(@TAB & "Disk Partition: " & $objPartition.DeviceID & @LF)
        
        $colLogicalDisks = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="' & $objPartition.DeviceID & '"} WHERE AssocClass = Win32_LogicalDiskToPartition')
        For $objLogicalDisk In $colLogicalDisks
        If DriveGetType ( $objLogicalDisk.DeviceID ) = "Removable" then
            ConsoleWrite(@TAB & "Logical Disk: " & $objLogicalDisk.DeviceID & @LF)
            
            
;узнаём объём флехи
        $TotalMemL=DriveSpaceTotal ( $objLogicalDisk.DeviceID ) 
        $TotalMem = Round ($TotalMemL) 
;узнаём файловую систему
        $FileSystem=DriveGetFileSystem ( $objLogicalDisk.DeviceID )

;узнаём свободное места на флешке флешке
        $FreeMemL=DriveSpaceFree ( $objLogicalDisk.DeviceID )
        $FreeMem = Round ($FreeMemL) 
        $DriveM=StringReplace ( $objDrive.Caption, " USB Device", "") 

  		_GUICtrlComboBox_AddString($Combo1, $objLogicalDisk.DeviceID & " " & $DriveM & " (" & $TotalMem & "MB Total)" & " (" & $FileSystem & ")" & " (" & $FreeMem & "MB Free)")
        endif
        Next
    Next
    
    ConsoleWrite(@LF)
Next

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
        			Exit
 
        Case $Button1
            GUICtrlDelete ($Combo1)
            $Combo1 = GUICtrlCreateCombo("", 16, 24, 364, 25, BitOR($GUI_SS_DEFAULT_COMBO,$CBS_SIMPLE,$CBS_AUTOHSCROLL))
            $objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
            $colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")

            For $objDrive In $colDiskDrives
    ConsoleWrite("Physical Disk: " & $objDrive.Caption & @LF)
    
    $strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
    $colPartitions = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' & $strDeviceID & '"} WHERE AssocClass = Win32_DiskDriveToDiskPartition')
    
    For $objPartition In $colPartitions
;        ConsoleWrite(@TAB & "Disk Partition: " & $objPartition.DeviceID & @LF)
        
        $colLogicalDisks = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="' & $objPartition.DeviceID & '"} WHERE AssocClass = Win32_LogicalDiskToPartition')
        
        For $objLogicalDisk In $colLogicalDisks
               If DriveGetType ( $objLogicalDisk.DeviceID ) = "Removable" then
            ConsoleWrite(@TAB & "Logical Disk: " & $objLogicalDisk.DeviceID & @LF)
            
            
;узнаём объём флехи
        $TotalMemL=DriveSpaceTotal ( $objLogicalDisk.DeviceID ) 
        $TotalMem = Round ($TotalMemL) 
;узнаём файловую систему
        $FileSystem=DriveGetFileSystem ( $objLogicalDisk.DeviceID )

;узнаём свободное места на флешке флешке
        $FreeMemL=DriveSpaceFree ( $objLogicalDisk.DeviceID )
        $FreeMem = Round ($FreeMemL) 
        $DriveM=StringReplace ( $objDrive.Caption, " USB Device", "") 

  		_GUICtrlComboBox_AddString($Combo1, $objLogicalDisk.DeviceID & " " & $DriveM & " (" & $TotalMem & "MB Total)" & " (" & $FileSystem & ")" & " (" & $FreeMem & "MB Free)")
        endif

        Next
    Next
    
    ConsoleWrite(@LF)
Next


	EndSwitch
WEnd
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
ты это имел ввиду?

Код:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>

#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 489, 117, 288, 227)
$Combo1 = GUICtrlCreateCombo("", 16, 24, 364, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE, $CBS_AUTOHSCROLL))
$Button1 = GUICtrlCreateButton("Обновить", 391, 22, 87, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

_flesh_search()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_flesh_search()
	EndSwitch
WEnd

Func _flesh_search()
	$objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
	$colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
	For $objDrive In $colDiskDrives
		ConsoleWrite("Physical Disk: " & $objDrive.Caption & @LF)
		$strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
		$colPartitions = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' & $strDeviceID & '"} WHERE AssocClass = Win32_DiskDriveToDiskPartition')
		For $objPartition In $colPartitions
			;        ConsoleWrite(@TAB & "Disk Partition: " & $objPartition.DeviceID & @LF)
			$colLogicalDisks = $objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="' & $objPartition.DeviceID & '"} WHERE AssocClass = Win32_LogicalDiskToPartition')
			For $objLogicalDisk In $colLogicalDisks
				If DriveGetType($objLogicalDisk.DeviceID) = "Removable" Then
					ConsoleWrite(@TAB & "Logical Disk: " & $objLogicalDisk.DeviceID & @LF)
					;узнаём объём флехи
					$TotalMemL = DriveSpaceTotal($objLogicalDisk.DeviceID)
					$TotalMem = Round($TotalMemL)
					;узнаём файловую систему
					$FileSystem = DriveGetFileSystem($objLogicalDisk.DeviceID)
					;узнаём свободное места на флешке флешке
					$FreeMemL = DriveSpaceFree($objLogicalDisk.DeviceID)
					$FreeMem = Round($FreeMemL)
					$DriveM = StringReplace($objDrive.Caption, " USB Device", "")
					_GUICtrlComboBox_AddString($Combo1, $objLogicalDisk.DeviceID & " " & $DriveM & " (" & $TotalMem & "MB Total)" & " (" & $FileSystem & ")" & " (" & $FreeMem & "MB Free)")
				EndIf
			Next
		Next
		ConsoleWrite(@LF)
	Next
EndFunc   ;==>_flesh_search
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
А из справки пример чем не подошёл?

Код:
$sDrive = DriveGetDrive('REMOVABLE') 
For $i = 1 To $sDrive[0]
	ConsoleWrite($sDrive[$i] & @CRLF)
Next
 

Twilight_Wolf

Новичок
Сообщения
16
Репутация
0
Добрый день!
Разрешите вернуться к вопросу идентификации флешек в системе)
Выполнив этот код
Код:
run('wmic /output:clipboard path Win32_USBHub where name="запоминающее устройство для usb"', '', @SW_HIDE)

для ДВУХ флешек получаем примерно такой результат:
Запоминающее устройство для USB USB\VID_058F&PID_6387\CWFOVJSJ
Запоминающее устройство для USB USB\VID_8564&PID_1000\24Y2RAZQRVCWG8Z9
А выполнив такой код:
Код:
$sDrive = DriveGetDrive('REMOVABLE') 
For $i = 1 To $sDrive[0]
    ConsoleWrite($sDrive[$i] & @CRLF)
 Next

получаем e: и f:

Так вот собственно сам вопрос: как определить по DeviceID букву этого диска, которую присвоила ему система т. е. точно определить кто есть кто?)

Изначально задача у меня следующая: отследить момент появления конкретной флешки в системе и скопировать с нее рекурсивно все файлы по маске, допустим все картинки.
Вопросы с определением момента установки нужной флешки по DeviceID решил (взял часть кода с этого форума), с рекурсивным копированием по маске тоже разобрался и когда флешка одна - все работает как часики.
Остался только один момент отработать: случай, когда в компе более одной флешки воткнуто и нужно "узнать" свою)
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Twilight_Wolf сказал(а):
случай, когда в компе более одной флешки воткнуто и нужно "узнать" свою)
Я не задумывался над этим и делал такие действия:
назначить своей флешке метку, например: "MYFLASH123"
И по метке определять:
Код:
$ListFlash = DriveGetDrive("REMOVABLE")
$sFL = "MYFLASH123"
$founded = 0
For $c = 0 To $ListFlash[0]
$sLabel = DriveGetLabel($ListFlash[$c])
If @error = 0 Then
If $sLabel = $sFL Then
$founded = 1
MsgBox(0, "Наша флешка найдена", "Это флешка с нашей меткой.")
ExitLoop
EndIf
EndIf
Next
If $founded Then
MsgBox(64, "Флешка найдена", "Флешка в компьютере")
Else
MsgBox(64, "Флешка не найдена", "Такой флешки в компьютере нет")
EndIf

А назначить метку можно функцией
Код:
DriveSetLabel
или Мой компьютер > наша флешка (ПКМ) > Свойства...
 

Twilight_Wolf

Новичок
Сообщения
16
Репутация
0
, спасибо за ответ!
Маркировку метками Я рассматривал - вариант хороший, но если две флешки имеют одинаковые метки или не имеют их вовсе, а так же если нам заранее метки неизвестны (не наши флешки), но каким-либо образом ранее удалось узнать DeviceID искомой флешки и выловили ее появление в системе по событию, например так:
Код:
$objService = ObjGet("WinMgmts:\\.\root\cimv2")
$objEventSource = $objService.ExecNotificationQuery _
            ("SELECT * FROM __InstanceCreationEvent " & _
             "WITHIN 5 WHERE (TargetInstance ISA 'Win32_USBHub' " & _
              "AND TargetInstance.deviceid='USB\\VID_8564&PID_1000\\24Y2RAZQRVCWG8Z9') ")
While 1
  $objEvent = $objEventSource.NextEvent
ExitLoop
WEnd

В этот момент может-быть можно как-то узнать какая буква диска в системе появилась?) Мож тоже какое событие есть или где в реестре запись отметилась или где-то еще?)
Решил свою задачу пока так (может не совсем рационально, но работает и вдруг кому пригодится):
Код:
; рекурсивное копирование всех файлов  jpg с вставленной флешки, которую мы заранее приметили.
#include <Array.au3>
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$objService = ObjGet("WinMgmts:\\.\root\cimv2")
$objEventSource = $objService.ExecNotificationQuery _
            ("SELECT * FROM __InstanceCreationEvent " & _
             "WITHIN 5 WHERE (TargetInstance ISA 'Win32_USBHub' " & _
              "AND TargetInstance.deviceid='USB\\VID_8564&PID_1000\\24Y2RAZQRVCWG8Z9') ") ; USB\\VID_8564&PID_1000\\24Y2RAZQRVCWG8Z9 - наша флешка
While 1
  $objEvent = $objEventSource.NextEvent
ExitLoop
WEnd

$sDrive = DriveGetDrive('REMOVABLE') 
$i = $sDrive[0]

If $i = 1 Then 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$aReturn = _FileDirList($sDrive[1]&"\", "*.jpg") 
Dim $q = 0
Dim $r = $aReturn[0]
For $q = 1 To $r
FileCopy($aReturn[$q],"D:\333\" & $q & "_" & "*.*")
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Else
  For $k = 1 To  $sDrive[0] 
	 $o = DriveGetSerial($sDrive[$k])
	 If $o = 1892906450 Then ; 1892906450 - серийный номер нашей флешки
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$aReturn = _FileDirList($sDrive[$k]&"\", "*.jpg") 
Dim $q = 0
Dim $r = $aReturn[0]
For $q = 1 To $r
FileCopy($aReturn[$q],"D:\333\" & $q & "_" & "*.*")
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   EndIf
ExitLoop
   Next
EndIf

  
  Func _FileDirList($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0)
    Local $sOutBin, $sOut, $aOut, $aMasks, $sRead, $hDir, $sAttrib, $sFiles
    
    If Not StringInStr(FileGetAttrib($sPath), "D") Then
        Return SetError(1, 0, 0)
    EndIf
    
    If $iSubDir = 1 Then
        $sAttrib &= ' /S'
    EndIf
    
    If $iSort = 1 Then
        $sAttrib &= ' /O:N'
    EndIf
    
    Switch $iFlag
        Case 1
            $sAttrib &= ' /A-D'
        Case 2 
            $sAttrib &= ' /AD'
        Case Else 
            $sAttrib &= ' /A'
    EndSwitch
	$sOut = StringToBinary('0' & @CRLF, 2)
    $sPath = StringRegExpReplace($sPath, '\\+$', '')
    $sFileMask = StringRegExpReplace($sFileMask, '^;+|;+$', '')
    $sFileMask = StringRegExpReplace($sFileMask, ';{2,}', ';')
    $aMasks = StringSplit($sFileMask, ';')
    
    For $i = 1 To $aMasks[0]
        If StringStripWS($aMasks[$i], 8) = "" Then
            ContinueLoop
        EndIf
        
        $sFiles &= '"' & $sPath & '\' & $aMasks[$i] & '"'
        
        If $i < $aMasks[0] Then
            $sFiles &= ';'
        EndIf
    Next
    
    $hDir = Run(@ComSpec & ' /U /C DIR ' & $sFiles & ' /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
    
    While ProcessExists($hDir)
        $sRead = StdoutRead($hDir, False, True)
        
        If @error Then
            ExitLoop
        EndIf
        
        If $sRead <> "" Then
            $sOut &= $sRead
        EndIf
    Wend
    
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
    
    If @error Or UBound($aOut) < 2 Then
        Return SetError(2, 0, 0)
    EndIf
    
    $aOut[0] = UBound($aOut)-1
    Return $aOut
EndFunc

 

$oMyError = 0
Func MyErrFunc()
    MsgBox(4096, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext)
    Exit 1
 EndFunc   ;==>MyErrFunc

Правда тут вместо метки диска использовал серийный номер (как выяснилось, меняется после форматирования в windows!!!)
Выходит, только по метке можно узнать свою флешку?
 

joker85

Новичок
Сообщения
2
Репутация
0
Здравствуйте. Помогите начин. изменить код под мои задачи
Что нужно: Есть флешка с определенной меткой (321). Нужно проверить есть ли она в ПК, и если она вставлена и имеет метку 321 запустить Блокнот, если же такой флешки нету в ПК вывести соотв. инфо. окно, что нет флешки .
Когда соотв. флешка с меткой 321 вставлена, код работает, но когда ее нету выдает ошибку.
Помогите пожалуйста.

Код:
$ListFlash = DriveGetDrive("REMOVABLE")
$sFL = "321"
$founded = 0
For $c = 0 To $ListFlash[0]
$sLabel = DriveGetLabel($ListFlash[$c])
If @error = 0 Then
If $sLabel = $sFL Then
$founded = 1
$ok=1
MsgBox(64, "Флешка найдена", "Флешка в компьютере")
If $ok Then
   Run(@WindowsDir & "\notepad.exe", "", @SW_MAXIMIZE)
Else
   Exit
   EndIf
ExitLoop
EndIf
EndIf
Next
If $founded Then
;MsgBox(64, "Флешка найдена", "Флешка в компьютере")
Else
MsgBox(48, "Флешка не найдена", "Такой флешки в компьютере нет")
EndIf
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
ну так и будет ошибка, флешки же нет. по сути, нужна реакция на подключение флешки, а когда ее нет, то код в ожидании подключения
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
но когда ее нету выдает ошибку.
Я так понимаю вы об ошибке "Subscript used on non-accessible variable.", когда флешек нет совсем...
Код:
;~ AutoIt Version: 3.3.14.5
;~ Author:         Tempo

Global Const $DRIVE_LABEL = '321'

Global $bFounded = False
Global $aDrives = DriveGetDrive('REMOVABLE')
If Not @error Then
    For $i = 0 To $aDrives[0]
        If DriveGetLabel($aDrives[$i]) = $DRIVE_LABEL Then
            $bFounded = True
            ExitLoop
        EndIf
    Next
EndIf

If $bFounded Then
    Run(@WindowsDir & '\notepad.exe', '', @SW_MAXIMIZE)
Else
    MsgBox(48, 'Флешка не найдена', 'Такой флешки в компьютере нет')
EndIf
 

joker85

Новичок
Сообщения
2
Репутация
0
Я так понимаю вы об ошибке "Subscript used on non-accessible variable.", когда флешек нет совсем...
Код:
;~ AutoIt Version: 3.3.14.5
;~ Author:         Tempo

Global Const $DRIVE_LABEL = '321'

Global $bFounded = False
Global $aDrives = DriveGetDrive('REMOVABLE')
If Not @error Then
    For $i = 0 To $aDrives[0]
        If DriveGetLabel($aDrives[$i]) = $DRIVE_LABEL Then
            $bFounded = True
            ExitLoop
        EndIf
    Next
EndIf

If $bFounded Then
    Run(@WindowsDir & '\notepad.exe', '', @SW_MAXIMIZE)
Else
    MsgBox(48, 'Флешка не найдена', 'Такой флешки в компьютере нет')
EndIf

Все работает, спасибо
 
Верх