Question How can I call the local installation of the default browser when application is ran under Citrix?

rcgomez11

Member
Citrix Online Plug-In 12.1.44.1
Windows 7 32 Bit
OpenEdge 10.1C

Good day,
What I'm trying to do is to call my default web browser and automatically opens a specific website (company website) from the 4gl button (click event). All is well when I'm running the dialog with the button in my local workstation but accessing it through Citrix, nothing seems to happen. Below are the scripts that I'd tried to use for this feature.

Code:
DEFINE VARIABLE objExplorer AS COM-HANDLE   NO-UNDO.
DEFINE VARIABLE xsourceFileName AS CHARACTER   NO-UNDO.

ASSIGN xsourceFileName = "http://www.progress.com".

create "InternetExplorer.Application" objExplorer NO-ERROR.
objExplorer:visible = yes.
objExplorer:Navigate(xsourceFileName).
release object objExplorer.

Code:
os-command no-wait value('start http://www.progress.com').
OS-COMMAND SILENT VALUE("START chrome.exe http://www.progress.com") NO-ERROR.

Code:
DEFINE VARIABLE cProgramName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cPageAddress AS CHARACTER NO-UNDO.
DEFINE VARIABLE iReturnResult AS INTEGER NO-UNDO.

ASSIGN
cProgramName = "C:\Program Files\Internet Explorer\iexplore.exe"
cPageAddress = "http://www.progress.com".

RUN WinExec (INPUT cProgramName + CHR(32) + cPageAddress , INPUT 1, OUTPUT iReturnResult).

Hope to hear from you soon and thanks in advance. Have a good day ahead.

Thanks and regards,
Romel
 
I have done this long back.. If I remeber, this should work.


DEFINE INPUT PARAMETER Filenamn AS CHAR .
DEFINE VARIABLE intOutput AS INT.
RUN ShellExecuteA (0,"open",fileNamn,"","",1,OUTPUT intOutput).
PROCEDURE ShellExecuteA EXTERNAL "shell32" :
DEFINE INPUT PARAMETER hwnd AS LONG.
DEFINE INPUT PARAMETER lpOperation AS CHAR.
DEFINE INPUT PARAMETER lpFile AS CHAR.
DEFINE INPUT PARAMETER lpParameters AS CHAR.
DEFINE INPUT PARAMETER lpDirectory AS CHAR.
DEFINE INPUT PARAMETER nShowCmd AS LONG.
DEFINE RETURN PARAMETER hInstance AS LONG.
END PROCEDURE.

you can find more about shellexecute in MSDN and PRO-KB.
 

rcgomez11

Member
I have done this long back.. If I remeber, this should work.


DEFINE INPUT PARAMETER Filenamn AS CHAR .
DEFINE VARIABLE intOutput AS INT.
RUN ShellExecuteA (0,"open",fileNamn,"","",1,OUTPUT intOutput).
PROCEDURE ShellExecuteA EXTERNAL "shell32" :
DEFINE INPUT PARAMETER hwnd AS LONG.
DEFINE INPUT PARAMETER lpOperation AS CHAR.
DEFINE INPUT PARAMETER lpFile AS CHAR.
DEFINE INPUT PARAMETER lpParameters AS CHAR.
DEFINE INPUT PARAMETER lpDirectory AS CHAR.
DEFINE INPUT PARAMETER nShowCmd AS LONG.
DEFINE RETURN PARAMETER hInstance AS LONG.
END PROCEDURE.

you can find more about shellexecute in MSDN and PRO-KB.

thanks santhosh22s, I already tried using your code but still nothing seems to react when executed through citrix. Anyway, thanks again for sharing. Have a good day ahead!
 

rcgomez11

Member
Happy to say that this query of mine is already been solved and this has nothing to do with progress alone, all line of codes above and the reply I got (thanks to you bro) is all working great, configuration in citrix does the trick. Thanks again and more power progressTalk.
 

rcgomez11

Member
Can you let us know, what was the problem with CITRIX ? This could help me in the future.

Too bad, its not me who does the configuration. Technical division do has the access in configuring CITRIX, I just told them that I already tried to use different set of codes and yet it doesn't seem to work well when being run using CITRIX and maybe something in CITRIX blocks the event that's why they try to change something I don't know where or how but I'll try to convinced them to share their knowledge on how they got that feature work, I'll keep you posted when I got the steps.
 
Top