Czytaj książkę: «Medium and high level hacks – 2. Secrets, jokes, programming, computer knowledge. Collection of codes of my programs»
© Alexander Mogilevski, 2023
ISBN 978-5-0050-9564-0 (т. 2)
ISBN 978-5-0050-9565-7
Created with Ridero smart publishing system
Hello!
My name is Alexander Mogilevski, I have been living in Canada since 2000, I am now 37 years old. In the first book, I wrote you a little introduction to the world of programming and hacks, and basically I described other people’s programs to you. Now I want to share my programs with you, I would say that they are more likely of an average level than a high one, in general it depends on how you look at it. Well, in the process of writing codes, I’ll try to add different jokes and knowledge from my self! Let’s start by writing one program that tells you the text you typed, with the voice of a robot. You will probably think! Why does anyone need her?! This is a matter of fantasy, you can just play, or if you are creating sites with chat rooms, you can connect it to your chat and call it voice chat. You can still talk with someone on the phone to whom you do not want to give out your real voice, and finally, the deaf-mute can use this program. For those who have not read my first book, I repeat, to run these codes and compile them, you need to have a program called Autoit! After installation, you will see a folder called Autoit, possibly with different numbers, depending on which version you are using, there, a little deeper in the folders you will find a file of about the same name SciTE4.exe with the extension. exe – that is, the executable file, this is the compiler! Good luck! In this code you will see the first function! The name of the program! In the future i will write some more books with my own codes, there is web site with my books where you can comment or say that, lets say you want me to right some more of a programs and describe what exactly type of programs you wish me to create. I will try to do that or at list try. So we can work it out later together just give your ideas. So on.
TEXT TO VOICE!
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <IE.au3>
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
In general, the first lines are already familiar to you from the first book, this is the connection of some modules. Next we declare a function called Deeman. line!
Deeman ()
you can name the function as you want, the name is given in order that you would remember what each function in the program performs if there are more than one exist. After the declaration, we activate the function. line!
Func Deeman ()
Then there are 4 lines that designate constants as local, it’s like a character set or alphabet, something constant in general!
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)” & _
I’m not going to get into the details, you can break the brain, but in principle, variables and functions can be called different (preferably short) names, this is also done to facilitate and remember, each variable is assigned to a command on the same line, Well, in general, move on. And then comes a long set of commands that our program transfers directly to the computer, that is, it tells the computer what to do, namely connecting the voice functions of the robot (if any), I have a standard male voice on the computer, You may have a different alien voice. The last command!
“DisplayUI hresult (hwnd; ptr; ptr; ptr; ulong);”
Next come the standard commands of our program, line!
Opt (“GUICoordMode”, 2)
assigns a coordinate mode, something like that, a line!
GUISetBkColor (0X000000)
sets the background color, in our case black. Next line!
Global $hGuiWin = GUICreate (“Robot from Deeman”, 550, 200)
in this line, the variable $ hGuiWin is assigned global (Global) and the program creates a program window (GUI) called “Robot from Deeman”, and sets the window size to 550, 550 length (horizontal), 200 height (vertical). This line is superfluous in principle, but if we add more functions, buttons or windows to the program, then it can come in handy, since we add the variable GUISetBkColor (0x000000, $ hGuiWin) in it, which was assigned global and it is possible to register on it and buttons different and all kinds of inputs (lines for entering text). This line is optional, but I decided to add and explain to you what it does!
GUICtrlCreatePic('5.jpg’, 0, 0, 0, 0)
if you put a photo called 5 with the jpg extension in the folder with our program, then in the background of the program a photo called 5.jpg will appear instead of black color, then there are 4 zeros separated by commas, these are coordinates that mean, that our photo will be placed at the corners of the program, that is, the entire size of our program window, which is now black. I will skip some lines, such as!
GUICtrlSetState (-1, $GUI_DISABLE)
they are mandatory in principle, but if I begin to explain what they are doing, it will be very long, so I will describe exactly those lines that are of interest to us. The next line in the program!
$Input_1 = GUICtrlCreateInput (“Hello, from Deeman!”, 35, 55, 480, 40)
creates a variable called $ Input_1 for the text input field, then creates the text input field itself (the commands that you will enter for the robot, what would it say), and in the text input field I will write for you an already short text Hello, from Deeman hi from me, well, the size of this field for entering is the 4 digits by commas. Next line!
$Button_1 = GUICtrlCreateButton (“Start Talk”, -150, 30, 70)
Darmowy fragment się skończył.