#include
#include
#include
#include
#include
Deeman ()
Func Deeman ()
Local Const $CLSID_SpVoice =» {96749377-3391-11D2—9EE3-
00C04F797396}»; этот кусочек надо писать вместе с тем что выше!
Local Const $IID_ISpVoice =» {6C44DF74—72B9-4992-A1EC-EF996E0422D4}»
Local Const $SPF_DEFAULT = 0
Local Const $sSpVoice = «SetNotifySink hresult (ptr)» & _
«SetNotifyWindowMessage hresult (hwnd; uint; long; long);" & _
«SetNotifyCallbackFunction hresult (ptr; long, long);" & _
«SetNotifyCallbackInterface hresult (ptr; long, long);" & _
«SetNotifyWin32Event hresult ();" & _
«WaitForNotifyEvent hresult (dword);" & _
«GetNotifyEventHandle hresult ();" & _
«SetInterest hresult (long; long);" & _
«GetEvents hresult (ulong; ptr; ptr)» & _
«GetInfo hresult (ptr);" & _
«SetOutput hresult (ptr; boolean);" & _
«GetOutputObjectToken hresult (ptr);" & _
«GetOutputStream result (ptr);" & _
«Pause hresult ();" & _
«Resume hresult ();" & _
«SetVoice hresult (ptr);" & _
«GetVoice hresult (ptr);" & _
«Speak hresult (wstr; dword; ulong);" & _
«SpeakStream hresult (ptr; dword; ulong);" & _
«GetStatus hresult (ptr; ptr);" & _
«Skip hresult (wstr; long; ulong);" & _
«SetPriority hresult (long);" & _
«GetPriority hresult (ptr);" & _
«SetAlertBoundary hresult (long);" & _
«GetAlertBoundary hresult (ptr);" & _
«SetRate hresult (long);" & _
«GetRate hresult (ptr);" & _
«SetVolume hresult (ushort);" & _
«GetVolume hresult (ptr);" & _
«WaitUntilDone hresult (ulong);" & _
«SetSyncSpeakTimeout hresult (ulong);" & _
«GetSyncSpeakTimeout hresult (ptr);" & _
«SpeakCompleteEvent hresult ();" & _
«IsUISupported hresult (ptr; ptr; ptr; ptr);" & _
«DisplayUI hresult (hwnd; ptr; ptr; ptr; ulong);»
Opt («GUICoordMode», 2)
GUISetBkColor (0X000000)
Global $hGuiWin = GUICreate («Robot from Deeman», 550, 200)
GUISetBkColor (0x000000, $hGuiWin)
GUICtrlCreatePic('5.jpg’, 0, 0, 0, 0)
GUICtrlSetState (-1, $GUI_DISABLE)
$Input_1 = GUICtrlCreateInput («Hello, from Deeman!», 35, 55, 480, 40)
$Button_1 = GUICtrlCreateButton («Start Talk», -270, 30, 70)
GUISetState ()
While 1
$msg = GUIGetMsg ()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button_1
$oSpVoice = ObjCreateInterface ($CLSID_SpVoice, $IID_ISpVoice, $sSpVoice)
$oSpVoice.SetRate (-3)
$text = GUICtrlRead ($Input_1)
$oSpVoice. speak ($text, $SPF_DEFAULT, 0)
EndSelect
WEnd
EndFunc;==> Deeman
В общем первые строки вам уже знакомы из первой книги, это подключение некоторых модулей. Дальше мы декларируем функцию под названием Deeman строчкой!
функцию вы можете назвать как хотите, название даётся для того, что б вы запоминали, что выполняет каждая функция в программе, если их больше чем одна. После декларации мы активируем функцию строчкой!
Дальше 4 строчки, которые назначают константы локальными, это как набор символов или алфавит, чтото постоянное в общем!
Local Const $CLSID_SpVoice =» {96749377-3391-11D2—9EE3—00C04F797396}»; Этот кусочек пишется с тем что выше вместе!
Local Const $IID_ISpVoice =» {6C44DF74—72B9-4992-A1EC-EF996E0422D4}»
Local Const $SPF_DEFAULT = 0
Local Const $sSpVoice = «SetNotifySink hresult (ptr)» & _
не 6уду вникать в детали, тут можно мозг поламать, но переменные впринципе как и функции можно называть разными (желательно краткими) именами, это тоже делается для облегчения и запоминания, каждая переменная для какойто комманды присваивается в той же строке, ну в общем идём дальше. А дальше идёт длинный набор комманд, которые наша программа передаёт прямо на компьютер, тоесть она указывает компьютеру что нужно делать, а именно подключения голосовых функций робота (если таковой имеется), у меня мужской голос на компьютере стандартный, у вас может быть другой голос инопланетянина какогото. Последняя комманда!
«DisplayUI hresult (hwnd; ptr; ptr; ptr; ulong);»
Дальше идут стандартные комманды нашей программы, строка!
назначает координатный режим, чтото типа того, строка!
задаёт цвет фона, в нашем случае чёрный цвет. Дальше строка!
Global $hGuiWin = GUICreate («Robot from Deeman», 550, 200)
в этой строке переменная $hGuiWin назначается глобальной (Global) и программа создаёт окошко программы (GUI) под названием «Robot from Deeman», и устанавливает размер окошка 550 на 200, 550 длина (горизонталь), 200 высота (вертикаль). Эта строка лишняя впринципе, но если мы будем добавлять больше функций, кнопок или окошек в программе то она может пригодится, так как мы в ней добавляем переменную GUISetBkColor (0x000000, $hGuiWin), которая назначалась глобальной и на неё можно прописывать и кнопки разные и всякие инпуты (строчки для ввода текста). Эта строка не обязательна, но я решил добавить и обьясню вам что она делает!
GUICtrlCreatePic('5.jpg’, 0, 0, 0, 0)
если вы поместите в папку вместе с нашей программой фотографию под названием 5 с расширением jpg, то у вас на фоне программы вместо чёрного цвета появится фотка под названием 5.jpg, дальше идут 4 нуля через запятую, это координаты, означающие, что наша фотография будет размещена по углам программы, тоесть на весь размер нашего окошка программы, который сейчас чёрный. Некоторые строчки я буду пропускать, такие как!