Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - EVa

#46
Nomads / Re: Determine previous control that had focus?
September 16, 2020, 11:01:45 AM
You can make that button a 'signal only' button so the focus doesn't change.  And you can check MSE - position 25,2 contains the object that lost focus.

-Eric-
#47
Nomads / Re: h-scrollbar in listbox
May 07, 2020, 03:12:43 AM
Thomas,

As far as I know, a standard listbox doesn't have that capability.  When you create a window with scrollbars and you use the scrollbar(s), all controls with 'scrolling enabled' will also move - that's what the 'enable scrolling' setting does.

-Eric-
#48
Jeff,

It will probably work when your custom object exists on the WindX PC (or is accessible from the WindX PC) and you change line 40 to:

LET O=NEW("[LCL]{path}myGrid",X)

where {path} is optional (and a true path).


-Eric-
#49
There's something not quite right - I installed the Plugin v16 and connected through SSH with our server.  I can start pxplus as xterm without a problem, but when using ansi or winterm, this happens (I added SETTRACE RECORD PGN to ansi/winterm/tty and start.up and created a pvxtrace.log prior to starting PxPlus):

export TERM=ansi
`pwd`/pxplus console.pgm

console.pgm executes this code:

0010 ! console.pgm
0020 SETTRACE RECORD PGN
0030 SET_PARAM 'XT'=0
0040 PRINT "In console mode"
0050 STOP

WindX simply disappears and pvxtrace.log then contains this:

[admin@mail pxplus]$ cat pvxtrace.log
May 16 10:14 [*dev/ansi:25] /apps/pxplus/lib/_dev/ansi
May 16 10:14 [*dev/winterm:15] /apps/pxplus/lib/_dev/winterm
May 16 10:14 [*start.up:25] /apps/pxplus/lib/_start.up
May 16 10:14 [console.pgm:20] /apps/pxplus/console.pgm
May 16 10:14 [console.pgm:40] Sighup received
May 16 10:14 [console.pgm:40] Sighup received - Forcing Auto exit
May 16 10:14 [console.pgm:40] Post SIGHUP read error: count=1
May 16 10:14 [console.pgm:40] Read stdin error count exceeded - Forcing Auto exit
May 16 10:14 [console.pgm:40] Post SIGHUP read error: count=2
May 16 10:14 [console.pgm:40] Read stdin error count exceeded - Forcing Auto exit
May 16 10:14 [<noprog>:65000] Post SIGHUP read error: count=3
May 16 10:14 [<noprog>:65000] Read stdin error count exceeded - Forcing Auto exit
May 16 10:14 [<noprog>:65000] Post SIGHUP read error: count=4
May 16 10:14 [<noprog>:65000] Read stdin error count exceeded - Forcing Auto exit
#50
The error message indicates that a simple open of "[tcp]unc-address;25" doesn't work (or "[tcp]unc-address;25;secure" if you specified -secure) and results in an error 0.  Can you create a simple web program that tries to do that open ?
#51
Can you check if TCB(87) contains any valid information when the error 0 happens ?
#52
ls should work in console mode (at the -} prompt) without the need for " as it's a user command (stored in lib/_cmd{/system}).

If you need other ones, this logic should work:

0010 OPEN INPUT (1)"<command" ! for example "<ps -ax"
0020 WHILE 1; READ (1,ERR=*BREAK)O$; PRINT O$; WEND
0030 CLOSE (1)

You can create a user command to execute shell commands, for example:

0010 ! do - execute Linux commands
0020 ENTER COMMAND$,ERR=*NEXT
0030 LET COMMAND$=STP(COMMAND$,2); IF COMMAND$="" THEN EXIT
0040 LET CHAN=UNT; OPEN INPUT (CHAN)"<"+COMMAND$
0050 WHILE 1; READ (CHAN,ERR=*BREAK)OUT$; PRINT OUT$; WEND
0060 CLOSE (CHAN); EXIT
-;save"*cmd/do"
/pxplus/lib/_cmd/do

-}do ps ax|grep pxp
3351 ?        Ss     0:00 /pxplus/pxplus /pxplus/pxplus.ini -id=T0 -port=4093 *plus/cs/host;ChkRun;2019-02-28 07:46;56 -arg 4093 /pxplus/web/check.pxp
3420 ?        S      0:00 /bin/sh -c ps ax|grep pxp
3422 ?        S      0:00 grep pxp
-}
#53
You don't need a start-up program for the Simple Client/Server.  When testing the connection with a browser, this should appear:

PxPlus CS Host server active

Please connect to this port using CS Client
Your workstation address is ::ffff:xxx.xxx.xxx.xxx
Server has been up since YYYY-MM-DD HH:mm and processed x requests

If that doesn't appear, the host isn't started correctly or the client is unable to reach the host.  In your case, I would simply start PxPlus as 'root' on the host and in console mode, enter RUN "*plus/cs/host".  The 'Awaiting connect' message should appear.  You can test if the host is started correctly by connecting with a browser on the host machine (http://127.0.0.1:4093).

Then try a browser on the client machine (http://host_ip:4093).  This must work before trying to connect with *plus/cs/client.
#54
Programming / Re: Program Caching
April 16, 2019, 03:23:24 AM
Don't ADDR programs that you are going to edit ?
#55
Language / Re: 'CURSOR' Unchanged
April 03, 2019, 05:39:35 AM
Have you set parameter IM ?  If you did, disable it: SET_PARAM 'IM'=0 .
#56
It's a Microsoft group in the Microsoft Start menu.  When running Windows 10, I believe it's located here: C:\Users\{Username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup .
#57
Harry,


Don't know why that is - it works for non pxplus executables.  Try this one:

0020 LET exe$="C:\Windows\System32\cmd.exe"+$00$


-Eric-
#58
Bob,


Something like this ?

0010 BEGIN
0020 LET exe$="D:\pxplus\pvxplus9\pxplus.exe"+$00$
0030 DIM tmp$(512,$00$)
0040 LET size=DLL("version.dll","GetFileVersionInfoSizeA",exe$,tmp$)
0050 IF size=0 THEN GOTO ERROR ELSE DIM tmp$(0)
0060 DIM bfr$(size,$00$)
0070 LET r=DLL("version.dll","GetFileVersionInfoA",exe$,$$,size,bfr$)
0080 IF r=0 THEN GOTO ERROR
0090 DIM where$(4,$00$),length$(4,$00$)
0100 LET r=DLL("version.dll","VerQueryValueA",bfr$,"\\"+$00$,where$,length$)
0110 IF r=0 THEN GOTO ERROR
0120 ! VS_FIXEDFILEINFO structure
0130 ! dwFileVersionMS = 9,4
0140 ! dwFileVersionLS = 13,4
0150 ! dwProductVersionMS = 17,4
0160 ! dwProductVersionLS = 21,4
0170 LET tmp$=MEM(DEC(SWP(where$)),DEC(SWP(length$)))
0180 LET tmp$=SWP(tmp$(9,4))+SWP(tmp$(13,4))+SWP(tmp$(17,4))+SWP(tmp$(21,4))
0190 LET fv$=""; FOR n=1 TO 8 STEP 2; LET fv$+=STR(DEC(tmp$(n,2)))
0200 IF n<8 THEN LET fv$+="." END_IF ; NEXT ; PRINT "FileVersion: ",fv$
0210 LET pv$=""; FOR n=9 TO 16 STEP 2; LET pv$+=STR(DEC(tmp$(n,2)))
0220 IF n<16 THEN LET pv$+="." END_IF ; NEXT ; PRINT "ProductVersion: ",pv$
0230 STOP
0240 !
0250 ERROR: LET error=DLL("kernel32","GetLastError")
0260 LET size=512,text$=DIM(size,$00$)
0270 LET result=DLL("Kernel32","FormatMessageA",DEC($1000$),0,error,0,text$,size,0)
0280 IF result=0 THEN {
0290 PRINT "An unknown error occured" } ELSE {
0300 PRINT text$(1,POS($0D0A$=text$))
0310  }

-Eric-
#59
Programming / Re: ESC key behaviour Providex Plus 15.
February 19, 2019, 03:27:08 AM
Bill,

CALL "*uck" - in the second column top row, you'll notice ESCAPE.  Move to that field, hit enter and then hit the ESC key.  After 1B appears, hit F4 and try your code again.  ESC should now perform a true escape (after about 2 seconds - see parameter +D).

-Eric-
#60
Programming / Re: detect embedded quotes
January 30, 2019, 03:54:55 AM
When you compile a text with missing quotes, TCB(43) will tell you where the problem happened.  For example:

0010 SETERR OOPS
0020 LET x$="INDICATOR SET TO "+QUO+"A"+QUO+", AND  THE SENDING AND RECEIVING ELEMENT"
0030 LET y$=CPL("X$="+QUO+x$+QUO)
0040 PRINT "All is well"; STOP
0050 OOPS: LET position=TCB(43); PRINT "Error",ERR
0060 PRINT "Right here: ",x$(position-4) ! 4 = length of (X$=") in CPL()
-:run
Error 20
Right here: "A", AND  THE SENDING AND RECEIVING ELEMENT

-Eric-