Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать ярлык VPN-соединения, на рабочем столе 
:(
    Опции темы
maestro2k
Дата 2.1.2007, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.4.2006

Репутация: нет
Всего: нет



Всех с Новым Годом.
Как програмно создать ярлык VPN- соединения?
Помогите с реализацией!
PM MAIL   Вверх
Visp
Дата 4.1.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программер



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.8.2006

Репутация: нет
Всего: нет



вот нашёл на С но тут всё на API  так что думаю разберёшся 
Код

HANDLE hHeap = NULL;

DWORD dwErr = NO_ERROR;

LPRASENTRYDLG lpInfo = NULL;

char * lpszEntry = AnsiToUtf8("наименование_подключения").c_str();

hHeap = GetProcessHeap();

if( NULL == hHeap ){

    dwErr = GetLastError();

    ShowMessage("GetProcessHeap() failed: Error = " + AnsiString(dwErr));
}

lpInfo = (LPRASENTRYDLG) HeapAlloc( hHeap, HEAP_ZERO_MEMORY, sizeof(RASENTRYDLG));

if( NULL == lpInfo ){

    dwErr = ERROR_OUTOFMEMORY;

    ShowMessage("HeapAlloc() failed");

}

lpInfo->dwSize = sizeof(RASENTRYDLG);

lpInfo->dwFlags |= RASEDFLAG_NewBroadbandEntry; // флаг автоматического создания подключения (только для NT)

bool nRet = RasEntryDlg(NULL, lpszEntry, lpInfo);

if (nRet == true) {
    MessageBox(prg,("Создано новое подключение " + Utf8ToAnsi(lpInfo->szEntry)).c_str(),Form1->Caption.c_str(),MB_ICONINFORMATION);

}
else
{
    if (lpInfo->dwError != 0)
        MessageBox(prg,("Ошибка создания подключения: " + AnsiString(lpInfo->dwError)).c_str(),Form1->Caption.c_str(),MB_ICONERROR);
}
if( NULL != lpInfo ){
    HeapFree( hHeap, 0, lpInfo);

PM MAIL WWW ICQ   Вверх
maestro2k
Дата 5.1.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.4.2006

Репутация: нет
Всего: нет



Это не то. Пример создает новое подключение (если я неошибаюсь). 

вот фукция которая создает ярлык какого нибудь файла:
Код

procedure SetShortCut(path, cmd, icon, wd, name, arg: string);
var
  ShellObject: IUnknown;
  LinkFile: IPersistFile;
  ShellLink: IShellLink;
begin
  try
    CoInitialize(nil);
    ShellObject := CreateComObject(CLSID_ShellLink);
    LinkFile := ShellObject as IPersistFile;
    ShellLink := ShellObject as IShellLink;
      // RTFM - интерфейсу IShellLink, там вс? описано
    ShellLink.SetPath(@cmd[1]);
    ShellLink.SetWorkingDirectory(@wd[1]);
    ShellLink.SetIconLocation(@icon[1], 0);
      // вместо 0 можно указать номер иконки если их там много...
    ShellLink.SetDescription(@name[1]);
    ShellLink.SetArguments(@arg[1]);
    LinkFile.Save(PWChar(WideString(path)), true);
  finally
    ShellObject := Unassigned;
    CoUninitialize;
  end;
end;


...читая msdn погряз в безконечных класах и структурах СИ. Но понял что надо не SetPath, а SetIDList, но он требует параметр pidl.
Как получить этот параметр моего ВПН-подключения???
Help me!!!
PM MAIL   Вверх
scorpio8882
Дата 2.10.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.10.2010

Репутация: нет
Всего: нет



сижу, бьюсь с этой же проблемой.

Цитата(maestro2k)

...читая msdn погряз в безконечных класах и структурах СИ. Но понял что надо не SetPath, а SetIDList, но он требует параметр pidl.
Как получить этот параметр моего ВПН-подключения???
Help me!!!


у меня есть файл в All Users:
D:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk

вот кусок кода с этого файла
Код

[internet]
Encoding=1
Type=2
AutoLogon=0
UseRasCredentials=1
DialParamsUID=28879406
Guid=32E00766ED1EEC46B37B3CA6EA1114B9
BaseProtocol=1
VpnStrategy=2
ExcludedProtocols=3
LcpExtensions=1
DataEncryption=8


жирным выделил...
ламаю голову дальше...
PM MAIL   Вверх
vovksextra
Дата 5.10.2010, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Может это тебе пригодится 
http://forum.vingrad.ru/forum/topic-311521...25BA/index.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.