tags:

views:

2735

answers:

3

I'm working with the Skype4COM.dll COM API using C# and it works very well for all of the communication functionality we need. We are trying to put an easier to use interface on top of Skype that is baked into our application.

My trouble lies in controlling or disabling which Skype windows to use and not use. The only Skype window I believe I'll need is the Skype video phone/conference window. I would like to hide and control every other window that Skype can present. I would even like to disable the incoming call dialog window that pops up on incoming calls, since we'll be presenting our own answer prompt. I'm happy with the API except window management.

With the API, I can see how to enable Windows, but I can't seem to figure out how to hide them, short of hacking a windows message to the Skype app. Am I missing something?

Thanks for your assistance, Kenny

+1  A: 

Unfortunately, the interface doesn't actually give you control over the actual windows, only methods to display and modify them (through wrappers).

As you said, you will have to get the handle of the window somehow and then send a message to hide it.

casperOne
+2  A: 

Poking around a bit we found that you can send 'Skype Commands' via

skypeobj.SendCommand ( Command cmd );

That works pretty well for most of what we need. Here is a reference on the Skype developer site:

Some code:

    void _SendSkypeCommand ( string cmdToSend )
    {
        Command cmdSkype = new Command ();
        cmdSkype.Blocking = true;
        cmdSkype.Timeout = 2000;
        cmdSkype.Command = cmdToSend;
        Trace.WriteLineIf ( _TracingDetailed, string.Format ( "skype command sent '{0}'", cmdToSend ) );
        _skype.SendCommand ( cmdSkype );
    }

    void _hideSkypeWindows ()
    {
        _SendSkypeCommand ( "SET SILENT_MODE ON" );
        _SendSkypeCommand ( "SET WINDOWSTATE HIDDEN" );
    }
kenny
A: 

I have an skypeId and i wana call to my friend in other countries thorugh my window form application in vb.net, please help me in this regards. how i can implement the calling in my application so that user no need to enter their skype id as they exists in database. bundles of thanks

azam
Take a look at the Skype4COM.DLl here http://developer.skype.com/accessories. It requires Skype program installed. It's a bit quirky, but it works.
kenny