Link to home
Start Free TrialLog in
Avatar of John500
John500Flag for United States of America

asked on

What is the difference between autostart (Start\Programs\Startup\) with Citrix and without Citrix

Greetings,

I have various XP machines which automatically launch a certain program when any user logs in:

C:\Documents and Settings\All Users\Start Menu\Programs\Startup\MyProgram.exe

For some reason this routine is not kicked off when users logon using Citrix.  Any ideas why?

Thanks!
ASKER CERTIFIED SOLUTION
Avatar of mgcIT
mgcIT
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of John500

ASKER


Ok, appreciate that input, can you also take a look at this question:

https://www.experts-exchange.com/questions/23817042/What-is-the-difference-between-autostart-Start-Programs-Startup-with-Server-2008-TS-and-without-Server-2008-TS.html

I verified the Citrix server(s) do have the shortcut to the executable.  So I'm not sure if there might be more to consider.  Another common denominator might be how the issue also happens with 2008 TS

Thanks!
SOLUTION
Avatar of oBdA
oBdA

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
the question you linked above has been deleted.

2008 TS wouldn't have anything to do with it (although, yes probably has the same issue).  Are you using published applications or published desktops?
Avatar of John500

ASKER

Thanks to all, I found the statement in the code of the executable itself that checks to see what kind of session it is:

if (!CCObjects.Security.WinSessions.SessionType.Equals("ICA") || MainInit.CheckPermission())
{
...
}

 public static string SessionType
{
...
      bool sessionInfo = Externals.WTSQuerySessionInformation(System.IntPtr.Zero, WTS_CURRENT_SERVER_HANDLE, Structures.WTS_INFO_CLASS.WTSClientProtocolType, out buffer, out bytesReturned);
     SessionType = (Structures.WTS_CLIENTPROTOCOL_TYPE)Marshal.ReadInt16(buffer);
...


switch (SessionType)
{
      case Structures.WTS_CLIENTPROTOCOL_TYPE.WTS_PROTOCOL_TYPE_CONSOLE:
              sessiontype_ = "Console";
                break;
        case Structures.WTS_CLIENTPROTOCOL_TYPE.WTS_PROTOCOL_TYPE_ICA:
                sessiontype_ = "ICA";
                break;
        case Structures.WTS_CLIENTPROTOCOL_TYPE.WTS_PROTOCOL_TYPE_RDP:
              sessiontype_ = "RDP";
                break;
        default:
              sessiontype_ = "???";
        break;
}
return sessiontype_;

}