'================
'CONSOLE ROUTINES
'================
'http://msdn.microsoft.com/en-us/library/ms686033(v=vs.85).aspx
'Console Modes:
'==============
'
'001h Enable processed input
'002h Enable line input
'004h Enable input echo
'008h Enable window input
'040h Enable quick edit mode
'080h Enable extended flags
'020h Insert mode
'
'
'------------------------
extern lib "kernel32.dll"
'========================
sys AllocConsole()
sys FreeConsole()
sys GetCommandLineA()
sys GetStdHandle(sys handle)
sys WriteConsoleA(sys hConsoleOutput,zstring*lpBuffer,sys nNumberOfCharsToWrite,
*lpNumberOfCharsWritten,void*lpReserved)
sys ReadConsoleA (sys hConsoleInput,zstring*lpBuffer,sys nNumberOfCharsToRead,
*lpNumberOfCharsRead, void*pInputControl)
sys SetConsoleTitleA(Asciiz*lpConsoleTitle)
sys SetConsoleMode(sys handle,dwMode)
sys GetConsoleMode(sys handle,lpMode)
end extern
'
def GetCommandLine GetCommandLineA
def WriteConsole WriteConsoleA
def ReadConsole ReadConsoleA
def SetConsoleTitle SetConsoleTitleA
def WaitKey GetKey
'
'=======================
%STD_INPUT_HANDLE -10
%STD_OUTPUT_HANDLE -11
%STD_ERROR_HANDLE -12
'=======================
'--------------------------------
Function cprint(bufout As string)
'================================
sys ConsOut,buflen,bufrit
ConsOut = GetStdHandle STD_OUTPUT_HANDLE
buflen=len bufout
WriteConsole ConsOut,bufout,buflen,bufrit,byval 0
End Function
'-------------------------------------
Function cinput(s As string) As string
'=====================================
sys ConsIn,buflen,bufrit
zstring bufin[100]
cprint s
ConsIn = GetStdHandle STD_INPUT_HANDLE
ReadConsole ConsIn,bufin,99,bufrit,byval 0
return left bufin,bufrit
End Function
'-----------------------
Function GetKey() as sys
'=======================
sys ConsIn,blen,mode
zstring z[4]
ConsIn = GetStdHandle STD_INPUT_HANDLE
GetConsoleMode ConsIn,mode
SetConsoleMode ConsIn,0
ReadConsole ConsIn,z,4,blen,byval 0
SetConsoleMode ConsIn,mode
return ?z
End Function
'-------------------------------
Function Commandline() As string
'===============================
zstring*z
@z=GetCommandLine
return z
End Function
'------------------------------------------
Function stripquotes(s As string) As string
'==========================================
sys a,b
a=instr s,chr 34
if a then
a++
b=instr a,s,chr 34
if b then
return mid s,a,b-a-1
end if
end if
End Function