Программное подключение устройства к сети (.NET CF)
От: XCray  
Дата: 31.08.06 19:33
Оценка:
Здравствуйте все!
У меня вот такая проблема: хочу, чтобы моя программа могла сама подключаться к сети когда это ей нужно. Для этого пытаюсь использовать Connection Manager, в частности, функцию ConnMgrEstablishConnectionSync(). Вроде с P/Invoke-ом все в порядке, функция выполняется без ошибок, но она всегда возвращает в finalStatus (код ниже) результат CONNMGR_STATUS_NOPATHTODESTINATION ("There is no path to destination").
Функция GetNetworkFromPath("http://myhost.com") возвращает валидный инетовский GUID {436EF144-B4FB-4863-A041-8F905A62C572}. PIE без проблем сам устанавливает подключение, когда я его отправляю на этот самый http://myhost.com

Вот код функции коннекта:

public static void Connect(string Where2Connect)
{
    if (GetConnectionStatus() == CONNMGR_STATUS_CONNECTED)
    {
        /// Already connected
    }
    else

/// Try to connect
    {
        CONNMGR_CONNECTIONINFO connInfo = new CONNMGR_CONNECTIONINFO();
        IntPtr connHandle = IntPtr.Zero;
        int finalStatus = 0;

    /// Fill CONNMGR_CONNECTIONINFO structure
        connInfo.cbSize = Marshal.SizeOf(connInfo);
        connInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
        connInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
        connInfo.dwFlags = 0;
        connInfo.bExclusive = false;
        connInfo.bDisabled = false;
        connInfo.guidDestNet = GetNetworkFromPath(Where2Connect);

        try
        {
            ConnMgrEstablishConnectionSync(ref connInfo, ref connHandle, 60000, ref finalStatus);
            MessageBox.Show("Connect to " + Where2Connect + "\nThrough " + connInfo.guidDestNet.ToString() + "\n" + FormatCMConnStatus(finalStatus) + "\n" + connHandle.ToString());
            ConnectionHandle = connHandle;
        }

        catch (Exception ex)
        {
            SysLog.PutLog("ConnectionManager", ex);
        }

    }

}


Что мне делать? Подскажите....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.