:: Research Group Embedded Interaction :: Media Informatics :: Ludwig-Maximilians-University Munich


Skype Plugin - A Tangible User Interface for Sykpe

This project page describes ... i keep forgetting to change my status... phyiscal device for telling skype my phyiscal status.. virtual chaning ... keep forgetting it.

Visual Studio Setup for Skype Plugin

For creating a Visual Studio Project, simply start VS (VS = Visual Studio) and create a empty .NET Project (to be found under C++ Projects).

Configure the following:

  • Compile Flag /MT (see screenshot below)
  • Library Rpcrt4.lib (see screensho below)

Visual Studio Configuration for Skype Plugin - Screenshot 1

Visual Studio Configuration for Skype Plugin - Screenshot 2

The Skype demo program recognizes the different build targets of VisualStudio (Debug or Release) and depending on the target configuration, the program prints loads of debugging output or not.

Here is a screenshot of the sample application without debugging output.

Visual Studio Setup for Libparticle

As the current libparticle 0.4.2 (as of writing) contains some errors in the VisualStudio solutions we provide our version of the libparticle 0.4.2 with VisualStudio files here.

Skype-related Information

Programs trying to access Skype have to be granted access. When the first access occurs, a message from Skype pops up asking for permission.

If you by accident deny access, you will need to change the settings in Skype menu 'Tools', click 'Options' and then chose 'Privacy'. At the bottom of the window you find the link for controlling access of external programs, the item is labeled 'Manage other programs' access to Skype'.

settings in Skype menu 'Tools', click 'Options' and then chose 'Privacy'

You then will be presented the following dialog. The program name and the current settings are displayed in the main part of the window. Below you see the settings for the example program from Skype.

The program name and the current settings are displayed in the main part of the window.

Tangible User Interface for Skype

Here is our tangible user interface for Sykpe. It is a Particle using our display add on board together with a custom housing allowing only several stable states - each state representing a Skype status.

Tangible User Interface for setting ones instant messenger status using Particle computers.

Here is the tangible user interface in action, next to a compuer.

Tangible User Interface for setting ones instant messenger status using Particle computers.

Code for chaning status: (message that is sent to a (hidden) window that is listening for messages:

// if there is a valid handle to the skype api window.

if( hGlobal_SkypeAPIWindowHandle!=NULL )

{

// The COPYDATASTRUCT structure contains data to be passed to another application by the WM_COPYDATA message.

COPYDATASTRUCT oCopyData;

sprintf(acInputRow, "#cmd11 SET USERSTATUS INVISIBLE" );

//printf("mk-debug:%s\n", acInputRow);

// send command to skype

oCopyData.dwData=0;

oCopyData.lpData=acInputRow;

oCopyData.cbData=strlen(acInputRow)+1;

if( oCopyData.cbData!=1 )

{

// wenn kopieren der daten erfolgreich:

printf("mk-debug:kopieren der daten erfolgreich!\n");

if( SendMessage( hGlobal_SkypeAPIWindowHandle, WM_COPYDATA, (WPARAM)hInit_MainWindowHandle, (LPARAM)&oCopyData)==FALSE )

{

//hGlobal_SkypeAPIWindowHandle=NULL;

//printf("!!! Disconnected\n");

printf("mk-debug:senden der nachricht erfolgreich!\n");

}

}

}

 

Files

Links

Literature References