Что нового

Как проверить DllStruct и IsDllStruct

StarEdik

Новичок
Сообщения
365
Репутация
4
Версия AutoIt: 3.3.6.1
Ребята помогите написать формулу для проверки данных .Надо чтоб было YES
Описание:
Код:
$Value="1243205125382025AEAEAEAE90187311"
;$Value="1243205125382025AEAEAEAE90"
;$Value="1243205125382025AEAEAEAE"
;$Value="124320512538202585"

 $tData = ; DllStruct   ($Value)

        ConsoleWrite(' Value' &"  --- "& $Value & @CRLF)

	If Not IsDllStruct($tData) Then

		ConsoleWrite('  NO  ' & @CRLF)

	Else
		ConsoleWrite('  Yes ' &"  --- "& $tData & @CRLF)

    EndIf

Примечания:

Желательно приемлимо для всех 4 х данных
Спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
StarEdik
Можно так попробовать:
Код:
#include <StructureConstants.au3>

Dim $aArray[2] = [1, '2']
$hExample = WinGetHandle('[ACTIVE]')
$tExample = DllStructCreate($tagSTARTUPINFO)
$pExample = DllStructGetPtr($tExample)
$fExample = False
$sExample = Default
Dim $aVar[11] = [10, 77, 7.7, 'StarEdik', $aArray, $tExample, $hExample, $pExample, _
		Binary('StarEdik'), $fExample, $sExample]

For $i = 1 To $aVar[0]
	If StringLen($aVar[$i]) Then
		$sString = StringFormat('%d\t%s\t%s', $i, $aVar[$i], VarGetType($aVar[$i]))
	Else
		$sString = StringFormat('%d\t****\t%s', $i, VarGetType($aVar[$i]))
	EndIf
	ConsoleWrite($sString & @LF)
Next
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
madmasles
Спасибо.Я так поня что данное
$Value="1243205125382025AEAEAEAE90187311" в структуру dll по прямому переводит невозможно?
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
madmasles
Спасибо на добром слове

Так тоже вроде получается но не отображается
Код:
Include <WinAPIEx.au3>
$sID='1243205125382025AEAEAEAE90187311'

    Local $tData = _WinAPI_GUIDFromString($sID)

    If Not IsDllStruct($tData) Then
        ;Return 0
		ConsoleWrite('    NO' & @CRLF)
	Else
		ConsoleWrite('  Yes' & $tData & @CRLF)
    EndIf
 
Верх