Alastair,
The WScript.Shell object is a COM object wrapper for the ShellExecute
API, which you can call directly from RBase using the DLCall function.
The parameters argument for ShellExecute is where you would put your
comma separated values (or whatever separator the executable is
expecting). Another thing, since RBase uses single quotes, and these
APIs expect double quotes, it takes the work out of the quote business.
This is guaranteed to be silent and zippier, since there is no COM
overhead.
--Begin code
{
ShellExecute.rmd example by Mike Byerley
}
{
The Windows API declaration of Shellexecute:
HINSTANCE ShellExecute( HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
Syntax located at:
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
}
SET VAR nShowCmd Integer = 0 { SW_HIDE }
SET VAR lpDirectory TEXT = NULL
SET VAR lpParameters TEXT = NULL
SET VAR lpFile TEXT = 'TestBat.bat'
SET VAR lpOperation TEXT = 'open'
SET VAR HWND Integer = 0 { since it runs hidden, pass HWND as null }
SET VAR vRetVal Integer = NULL
IF (chkfunc('ShellExecuteA')) = 0 THEN
STDCALL function 'ShellExecuteA' ALIAS 'ShellExecute' +
(Integer, ptr TEXT (256), ptr TEXT (128), +
ptr TEXT (128), ptr TEXT (32), Integer) : Integer
ENDIF
SET VAR vi = (dlcall('shell32.dll', 'ShellExecuteA', +
nShowCmd, lpDirectory, lpParameters, lpFile, lpOperation, HWND))
RETURN
--End code
----- Original Message -----
From: "Alastair Burr" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Tuesday, August 05, 2008 6:06 PM
Subject: [RBASE-L] - Re: Silent LAUNCH command.
Many thanks, Larry.
I had already tried the double quotes and even found something on the
internet that used double double quotes but had no luck with it.
From your first response I'll try a new version of my InvisibleDOS.VBS
file
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) &
WScript.Arguments(1)& WScript.Arguments(2)"""", 0, False
and play with that to see if I can make it work somehow - at least that
gives me something to work on.
Again, thanks,
Regards,
Alastair.
----- Original Message -----
From: Lawrence Lustig
To: RBASE-L Mailing List
Sent: Tuesday, August 05, 2008 9:35 PM
Subject: [RBASE-L] - Re: Silent LAUNCH command.
Additionally, if your problem is that the batch file is getting
executed _without_ the parameters, the problem is the script is being
passed three parameters, but uses only the first as the command line to
execute.
You may be able to fix this by passing the entire command line in quote
characters:
LAUNCH InvisibleDOS.VBS|"C:\DosPrograms\Attrib.BAT I: -R|W"
And, depending on your own quote settings, you may need to surround the
whole launch string in quotes and/or double up your double quotes.
--
Larry
No virus found in this incoming message.
Checked by AVG - http://www.avg.com
Version: 8.0.138 / Virus Database: 270.5.12/1592 - Release Date:
05/08/2008 06:03
--- RBASE-L
================================================
TO POST A MESSAGE TO ALL MEMBERS:
Send a plain text email to [email protected]
(Don't use any of these words as your Subject:
INTRO, SUBSCRIBE, UNSUBSCRIBE, SEARCH,
REMOVE, SUSPEND, RESUME, DIGEST, RESEND, HELP)
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [email protected]
In the message SUBJECT, put just one word: INTRO
================================================
TO UNSUBSCRIBE: Send a plain text email to [email protected]
In the message SUBJECT, put just one word: UNSUBSCRIBE
================================================
TO SEARCH ARCHIVES:
Send a plain text email to [email protected]
In the message SUBJECT, put just one word: SEARCH-n
(where n is the number of days). In the message body, place any text to
search for.
================================================
No virus found in this incoming message.
Checked by AVG - http://www.avg.com Version: 8.0.138 / Virus Database:
270.5.12/1592 - Release Date: 05/08/2008 06:03