SHELL (function): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The '''SHELL''' function displays the console and returns the INTEGER code value sent when the external program exits. {{PageSyntax}} ::: return_code = '''SHELL(''DOScommand$'')''' {{Parameters}} * The literal or variable STRING ''command'' parameter can be any valid external command or call to another program. ''Usage:'' * A SHELL to a QB64 EXE program with an exit return code parameter after END or SYSTEM will return that code value. * The return_...")
 
No edit summary
Line 35: Line 35:
{{Cb|FUNCTION}} trimstr$ (whatever)
{{Cb|FUNCTION}} trimstr$ (whatever)
trimstr = {{Cb|LTRIM$}}({{Cb|RTRIM$}}({{Cb|STR$}}(whatever)))
trimstr = {{Cb|LTRIM$}}({{Cb|RTRIM$}}({{Cb|STR$}}(whatever)))
{{Cb|END FUNCTION}} '' ''
{{Cb|END FUNCTION}}
{{TextEnd}}
{{TextEnd}}
: ''Explanation:'' To set a program exit code use an [[INTEGER]] parameter value after [[END]] or [[SYSTEM]] in the called program.  
: ''Explanation:'' To set a program exit code use an [[INTEGER]] parameter value after [[END]] or [[SYSTEM]] in the called program.


: After compiling ''DesktopSize.EXE'' run the following code in the QB64 IDE. After 1st program is done 3 will appear on screen:
: After compiling ''DesktopSize.EXE'' run the following code in the QB64 IDE. After 1st program is done 3 will appear on screen:
{{CodeStart}} '' ''
{{CodeStart}}
returncode% = {{Cl|SHELL (function)|SHELL}}("DesktopSize") 'replace call with name of any QB64 program EXE
returncode% = {{Cl|SHELL (function)|SHELL}}("DesktopSize") 'replace call with name of any QB64 program EXE


{{Cl|PRINT}} returncode% 'prints code sent by called program after it is closed
{{Cl|PRINT}} returncode% 'prints code sent by called program after it is closed


{{Cl|END}} '' ''
{{Cl|END}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}3 {{OutputEnd}}
{{OutputStart}}3 {{OutputEnd}}

Revision as of 02:39, 23 January 2023

The SHELL function displays the console and returns the INTEGER code value sent when the external program exits.


Syntax

return_code = SHELL(DOScommand$)


Template:Parameters

  • The literal or variable STRING command parameter can be any valid external command or call to another program.


Usage:

  • A SHELL to a QB64 EXE program with an exit return code parameter after END or SYSTEM will return that code value.
  • The return_code is usually 0 when the external program ends with no errors.
  • The console window may appear when using the SHELL function. The _SHELLHIDE function will hide the console from view.


Example: Shelling to another QB64 program will return the exit code when one is set in the program that is run.

'DesktopSize.BAS  Compile in Windows with QB64 first

CONST SM_CXSCREEN = 0
CONST SM_CYSCREEN = 1

DECLARE LIBRARY
    FUNCTION GetSystemMetrics& (BYVAL n AS LONG)
END DECLARE

PRINT trimstr$(GetSystemMetrics(SM_CXSCREEN)); "X"; trimstr$(GetSystemMetrics(SM_CYSCREEN))

s& = _SCREENIMAGE
PRINT _WIDTH(s&); "X"; _HEIGHT(s&)

END 3 '<<<<<< add a code to return after END or SYSTEM in any program

FUNCTION trimstr$ (whatever)
trimstr = LTRIM$(RTRIM$(STR$(whatever)))
END FUNCTION
Explanation: To set a program exit code use an INTEGER parameter value after END or SYSTEM in the called program.
After compiling DesktopSize.EXE run the following code in the QB64 IDE. After 1st program is done 3 will appear on screen:
returncode% = SHELL("DesktopSize") 'replace call with name of any QB64 program EXE

PRINT returncode% 'prints code sent by called program after it is closed

END
3 


See also:



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link