Help System/Training

InFiles are used to generate user input to automate operations. The TempleOS tour is done with an InFile. It reminds me of a Unix pipe because StdOut of one gets chained into StdIn of another. When an InFile runs, a child task is Spawn()ed which intercepts real user input and generates fake input. InFiles are HolyC programs run by the child whose stdout goes to the parent's input buffer. Msg() can be included in an InFile to send special keys or mouse cmds to the parent. While an InFile is running, the normal input gets diverted to the InFile task and can be filtered and sent back to the parent task. Unless you are driving functions which prompt for data, you can probably use an #include file in place of an InFile. See ::/Demo/InFile/InDir.IN. Note: In("") can be used if all you need is to send ASCII characters. It differs from InStr(). You'll probably use In() a lot and not InStr(). With In( ), for example, you can place answers to the prompts for recompiling the Kernel module during BootHDIns(). InGetChar Funct Wait for user to press one of set of chars. InGetKey Funct Wait for user to press certain key. InGetStr Funct Wait for user to type certain str. InPrint Funct Print message with delay after each char. InSetMs Funct Move mouse to spot at certain speed. InUntilChar Funct Let user type until he presses one of set of chars. InUntilKey Funct Let user type until he presses certain key. InView Funct Let user type until <ESC> or <SHIFT-ESC>. TipOfDay Funct Print random tip-of-day from ::/Doc/Tips.DD.