Hi Terry,

STRPCCMD issues a command to your 5250 emulator, telling the emulator (which is, after all, a Windows program) to run a command on the PC. The length of the command string that you can send to STRPCCMD is 123, because it sends the command to the PC in the form of a green screen field that's 128 chars long. It uses 5 characters to pass options to the emulator, and the remaining 123 are the command. The emulator understands (thanks to the 5 characters) that this is a command, and should be run instead of displaying it to the user -- but under the covers it's really just a screen with a 128 character field on it.

So it's STRPCCMD that's limited to 123 characters. Not the DOS "start" utility (which doesn't have any limit that I know of)

When the emulator receives the command, it parses out the program name (by searching for the first space in the command string). It finds that program on disk -- and if it's a native Windows program, it tells Windows to run it. If it's not a native Windows program, it's assumed to be an MS-DOS program, so it opens a DOS prompt and runs the command from that prompt.

The problem with the DOS prompt is that some characters have special meanings. The ampersand, that's the & symbol, is one of the characters that has a special meaning. Semi-colons, carets, quotes, spaces, and a bunch of other things have a special meanings as well. You either need to escape these special characters, or you need to find a way to avoid sending the command string through a DOS prompt.

Walden's answer works by escaping the special characters. Putting a caret, i.e. the ^ symbol, before each ampersand tells MS-DOS not to treat them as special characters.

Bob Roche's answer launches a Windows program named RunDLL32. Since this is a Windows program, it never goes to a DOS prompt, and therefore characters that are special in MS-DOS aren't an issue.

Personally, I prefer the RUNDLL32 option because it doesn't open the stupid black MS-DOS window where the user can see it -- which I find ugly -- and also because I don't have to write code that searches for special characters and escapes them.


Terry Anderson wrote:
Greetings List,
I hope all of you had a merry Christmas and have a happy and
prosperous new year.

Here is what I am trying to do. I have a CGIDEV2 program that adds
footnotes to an RFQ. Since several divisions will be using this
program, I need to send the division name as well as the RFQ number
to the CGI program.

I have the following commands in my CL program:

CHGVAR VAR(&PCCOMMAND) VALUE('START
http://xx.xx.xxx.xx:8014/citcgidevp/GETDIV2?division=' *TCAT
&DIVISION *TCAT '&qstrat_rfq=' *TCAT &QLMRFQ#)

STRPCCMD PCCMD(&PCCOMMAND) PAUSE(*NO)

I can get this to work if I key it into the command line of the
browser but not when I call it from the CL. Can some one tell me
what I am doing wrong? I saw an older post somewhere that said that
the START command was limited to 123 characters. Is that correct and
if so, how do you get around this limitation?


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.