Remko Weijnen's Blog (Remko's Blog)

About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like


Yesterday I wrote about troubleshooting an application that used Com Port redirection in Citrix.

During the troubleshoot I noticed that the application used an ActiveX component, MSCOMM32.OCX, for serial communication.

I wanted to quickly test if the component was correctly registered so I searched the registry from HKEY_CLASSES_ROOT for mscomm32.ocx.

Read the rest of this entry »


I write most of my code in unmanaged languages such as Delphi and C/C++. Sometimes customers ask me to interface my code to their .net code in which case I create a dll for them.

A recurring thing is that I need to return string to .net.

There are many ways to do this of course but in all cases we need to manage memory: who will allocate the memory for the string and who is responsible for freeing it?

Read the rest of this entry »

  • Filed under: .NET, C#, C++, Delphi

    SecutestOne of my colleagues asked me to assist in troubleshooting an application called SmartWare FM running on Citrix XenApp.

    This application reads data from an external device called SECUTEST.

    The device is connected to a COM port which is redirected to the XenApp session. In contrast to Microsoft Remote Desktop Services COM ports are not automatically redirected in XenApp but need to be mapped via eg a logonscript (NET USE COM1: \\Client\COM1:) or using UEM.

    In my case the COM port was mapped with RES Workspace Manager:


    Read the rest of this entry »


    I was troubleshooting an unattended installation of a particular application. The install seemed to hang right away so I figured it was presenting some kind of message (error?).

    Using a Window Spy tool I made the setup process visible and saw the following message:


    The unattended install was supplied by the vendor and apparently they use InstallAware.

    The setup tries to create a Tray Icon, probably a setup progress indicator, but this fails because there is no shell running (the installation is pushed from a deployment server).

    Read the rest of this entry »


    Yesterday I was asked to investigate a problem with a presentation pc. Even though the volume was set maximal there was not audio output.

    The machine was used to connect to a Citrix XenApp desktop and RES Workspace Extender was used to integrate local applications in the XenApp desktop.

    The local sound volume control was published as a subscribed application so I launched that and verified that the volume was set to Maximum:


    I decided to launch the local explorer shell and noticed that there were two volume control icons in the Traybar:

    Volume Controls

    Read the rest of this entry »


    File:VMware ThinApp v4.0 icon.pngOne of the lesser known features of VMware ThinApp is that you can supply a Virtual Computer name.

    This is documented as follows in the package.ini reference guide:

    VirtualComputerName Parameter
    The VirtualComputerName parameter determines whether to rename the computer name, to avoid naming conflicts between the capture process and the deployment process.

    Read the rest of this entry »


    After installing a new Plugin in WordPress called Native Apps Builder I got the following error when I tried to go to the Plugin’s settings:

    imageFatal error: Cannot redeclare class Snoopy in www/blog/wp-content/plugins/native-apps-builder/appsbuilderapi.php on line 34

    This error is caused because a class named "Snoopy" is being declared twice. I figured that two plugins were incompatible with each other so I first needed to know which ones.

    Read the rest of this entry »


    Cookie MonsterAs you are probably aware the EU has made legislation regarding the use of cookies on websites. This new legislation is active since May 2012.

    The Dutch government has also issued legislation in the Telecommunications LAW which states that you must ask the user for permissions before server out cooking. Unless these cookies are necessary for the correct technical working of the website or service. This leaves some grey areas but for instance using Google Analytics is a clear case of a situation where opt-in is required.

    Although I am not using Google Analytics I wanted to check what cookies my own blog was serving out and if it was necessary to ask for an opt-in.


    Read the rest of this entry »

  • Filed under: General

    An application called Cardiology PACS was recently packaged for a Citrix XenApp environment. The functional tester reported a strange problem at the logon screen: after entering the username it was not possible to go to the password field with the TAB key.

    This was a strange observation since I cannot imagine XenApp interfering with tab stops. So what was going on?

    In the old situation the user was starting the application on his local pc. The application remembered the last username and pre-filled this, therefore the cursor was already in the Password field. The user simply entered his password and hit the Enter key:


    On XenApp the Username field is not pre-filled because the last username is kept globally per machine. Therefore the user has to enter both the username and the password:


    I tested the Tab key behavior in both situations and as I expected it didn’t work in both situations. This happens because the Tab Order has been messed up by the programmer (if you press Tab 9 times you do end up in the Username field).

    Because this is something that would annoy me if I were the user I decided to fix it.

    Read the rest of this entry »


    I noticed something interesting today: I needed to generate a Code Signing certificate from a Windows 2003 CA Server.

    However the default Code Signing Template does not allow us to export the private key. I found a nice trick however that enables us to request a code signing certificate WITH private key.

    To do this I first needed to enable the Code Signing template on the CA Server. This can be done using the Certification Authority MMC Snap-in: right click on the Certificate Templates node and select New | Certificate Template to Issue | Code Signing:



    Read the rest of this entry »