Size: a a a

2021 June 02

s

synapse in AutoIT RU
эта хрень у меня тоже срабатывает в автоите
источник

s

synapse in AutoIT RU
ты же хочешь SMART_SEND_DRIVE_COMMAND
источник

ox

osm x in AutoIT RU
и у меня. ну суть в том что там в с и IsSmartEnabled срабатывает как надо
источник

s

synapse in AutoIT RU
ну а тут ты не пробовал вызвать IsSmartEnabled ?
источник

ox

osm x in AutoIT RU
это же моя функция, объялвенная выше в с коде
источник

s

synapse in AutoIT RU
аа да я не долистал
источник

Ra

Ruslan aka DUDE in AutoIT RU
#RequireAdmin

Const $wbemFlagReturnImmediately = 0x10
Const $wbemFlagForwardOnly = 0x20
Local $colItems
Local $objWMIService = ObjGet("winmgmts:\\.\root\WMI")
$colItems1 = $objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_ATAPISmartData", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
For $objItem In $colItems1
 ConsoleWrite ("Active: " & $objItem.Active&@CR)
 ConsoleWrite ("InstanceName: " & $objItem.InstanceName&@CR)
 ConsoleWrite ("SmartCapability: " & $objItem.SmartCapability&@CR)
Next
источник

s

synapse in AutoIT RU
окей, тогда ковыряй структуры если ты еще не передумал переписывать это на автоит, там где-то косяки в конвертации. я как-то пробовал написать такую штуку на автоите, там чет с сервисами у меня не работало, в итоге плюнул и сделал на си , хоть я и не программист не разу
источник

s

synapse in AutoIT RU
норм варик кстати сделать через WMI уровнем повыше и не ипатцо
источник

s

synapse in AutoIT RU
там даже либа на автоите валяется готовая для работы со смартом через wmi
источник

ox

osm x in AutoIT RU
там мне не нужен вмай. Нужно с драйвером общаться, а это все что я кидаю для теста использую. т.к. на самых базовых вещах не работает
источник

Ra

Ruslan aka DUDE in AutoIT RU
пора бы написать практическое применение твоей хотелки
для чего и где
источник

s

synapse in AutoIT RU
В целом и правда странно если ты норм знаешь плюсы , пытаться переделать это на автоит, если ты говоришь что чел заказчик не знает си, дык ему ничем не поможет тут автоит, все эти конвертации структур данных только нафиг все усложняют
источник

Ra

Ruslan aka DUDE in AutoIT RU
напомните, сколько весит поинтер
лень гуглить)
источник

s

synapse in AutoIT RU
ну 32 или 64 бита от арх зависит
источник

ox

osm x in AutoIT RU
  Local $hDevice = $hFile
 Local $dwIoControlCode = $SMART_SEND_DRIVE_COMMAND
 Local $lpInBuffer = DllStructGetPtr($STRUCT_SENDCMDINPARAMS)
 Local $nInBufferSize = DllStructGetSize($STRUCT_SENDCMDINPARAMS)
 Local $lpOutBuffer = DllStructGetPtr($STRUCT_SENDCMDOUTPARAMS)
 Local $nOutBufferSize = DllStructGetSize($STRUCT_SENDCMDOUTPARAMS)
 Local $lpBytesReturned = DllStructCreate("int")
 Local $ret = DllCall("Kernel32.dll", "int", "DeviceIoControl", _
   "int" , $hDevice, _
   "uint", $dwIoControlCode, _
   "ptr" , $lpInBuffer, _
   "uint", $nInBufferSize, _
   "ptr",  $lpOutBuffer, _
   "uint", $nOutBufferSize, _
   "ptr",  DllStructGetPtr($lpBytesReturned), _
   "ptr",   0 _
 )
 MsgBox(0, "ret", "Error: " & _WinAPI_GetLastError() & " Result: " & DllStructGetData($ret, 0) & " BytesReturned: " & DllStructGetData($lpBytesReturned, 0))
источник

ox

osm x in AutoIT RU
так тож не работает...
источник

ox

osm x in AutoIT RU
наверное с _WinAPI_CreateFileEx что то нитак, надо тоже без обертки напрямую вызвать
источник

ox

osm x in AutoIT RU
хз хз
источник

Ra

Ruslan aka DUDE in AutoIT RU
так структуры криво описаны
с чего бы ему работать)
источник