Здравствуйте все!
У меня вот такая проблема: хочу, чтобы моя программа могла сама подключаться к сети когда это ей нужно. Для этого пытаюсь использовать
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);
}
}
}
Что мне делать? Подскажите....