Что нового

Отображение сообщения о подключенном оборудовании на определенном com-port

VA_Makarov

Новичок
Сообщения
1
Репутация
0
Доброго времени суток,
подскажите новичку, как можно вывести на экран сообщение о том, что на данном com-portе, нет никакого устройства или наоборот.

Для чего: Если экввайринг висит не на 9 порте, то он не будет работать, следственно, нужна программа, которая выводит сообщение: "Эквайринг подключен в нужный порт", если нет выводится сообщение: "Необходимо сменить com-port".

В командной строке можно просто вывести (mode com9 /status), что порт занят или не занят (если написано, что "Недопустимое имя устройства", значит эквайринг не подключен), но это не наглядно. Поэтому прошу совета)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
Local $pid = Run('mode.com com9 /status', @SystemDir, @SW_HIDE, 0x8)
ProcessWaitClose($pid)
Local $stdout = StdoutRead($pid)
If Not $stdout Then Exit
Local $string = _WinAPI_OemToChar ( $stdout )
If StringInStr($string, 'Недопустимое имя устройства') Then
	SplashTextOn('', 'Необходимо сменить com-port', 800, 200, Default, Default, 1 + 2 + 32, '', 36, 700)
Else
	SplashTextOn('', 'Эквайринг подключен в нужный порт', 800, 200, Default, Default, 1 + 2 + 32, '', 28)
EndIf
Sleep(5000)
Func _WinAPI_OemToChar($sStr)
	Local $aRet = DllCall('user32.dll', 'bool', 'OemToChar', 'str', $sStr, 'str', '')
	If @error Or Not $aRet[0] Then Return SetError(@error + 10, @extended, '')
	Return $aRet[2]
EndFunc   ;==>_WinAPI_OemToChar
 
Верх