I'm trying to send a simple string parameter from C# web app code using CMD line call to ICA file to Citrix XenApp Server to launch a specific published application (Macro Scheduler macro compiled into exe), NOT the whole citrix desktop.
I have a web app with cmd line code using
"C:\Program Files (x86)\Citrix\ICA Client\Wfica32.exe" C:\someICAfile.ica \Param:"/username=SomebodysName" .
I've also tried for the parameter syntax: /username=SomebodysName, /Param:"/username=SomebodysName"
and about a million other combinations of quotes and slashes.
I used Citrix QuickLaunch to write my ICA file, in which the only thing I changed was InitialProgram=#ApplicationName \Param
(I added the \Param). I've also tried /username
and \Param=SomebodysName
and I can't get any of those to work either. I've even tried just hardcoding the name in there and I can't get it to go through.
The exe is expecting a parameter "username
" and when called locally from the cmd prompt it works using UsernameProgram.exe /username=somebodysname
. I made sure to include the "%*
" at the end of the commandlineexecutable
in the Citrix Xenapp application location properties to ensure that it can accept a command line parameter.
This is all using C# and XenApp 6. Everything works except passing the parameter through, and I have no idea where the parameter is lost, if it even gets anywhere. I feel like I have tried every combination of /'s \'s and "'s so if anybody could please help me out with the syntax, I'd really appreciate it! I did try looking into the ICA Client SDK in the c# code, but it seems to just manually do what an external ICA file will do. If this is wrong, however, please let me know. I'm approaching the point where I'm just going to try it regardless because I'm completely out of ideas. Please help.
Thanks!
I ended up calling a .bat file from my C# code by using the following:
reference: Run bat file in c# with .exe and .def code
In the .bat file, I create an ICA file passing in the username paramter as follows:
The %1 in the InitialProgram component is where the argument is used from the C# code.
reference: http://www.virtualizationadmin.com/files/whitepapers/MetaframeXP/Connecting_to_a_Citrix_server_from_the_command_line.htm
The last step is to make sure in your Citrix Delivery Console to make sure that the Location properties of the published application for the CommandLineExecutable has a "%**" after it, including the double quotes. I believe adding the 2nd asterisk lets the parameter get through the command line validation and allows it to be used when the application is opened. Either way though, it worked with two of them and not with one of them.