Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];

Вниз

Как запустить lnk сети программно?   Найти похожие ветки 

 
Кто б сомневался ©   (2010-08-07 00:09) [0]

Здравствуйте, подскажите ньюанс.
Вроде все просто, но одновременно сложно.
Есть ярлык lnk при нажатии на который включается интернет. Но если его запускать программно через ShellExecute вываливается ошибка (неподдерживаемый тип файла). Как его запустить программно?


 
Rouse_ ©   (2010-08-07 00:20) [1]

Вытащить из ярлыка путь к исполняемому файлу и запустить его?


 
Кто б сомневался ©   (2010-08-07 00:29) [2]


> Вытащить из ярлыка путь к исполняемому файлу и запустить
> его?


Это ярлык для запуска интернета. Там GUID.
Вытаскивать пути по GUID работает, но только если GUID указывает на файл. Здесь же он не указывает на файл.


 
Кто б сомневался ©   (2010-08-07 01:29) [3]

Возможно кто то знает как включить выбранное соединение программно?
К примеру одно из выбранных в апплете Network Connections.


 
antonn ©   (2010-08-07 01:53) [4]


> Возможно кто то знает как включить выбранное соединение
> программно?
> К примеру одно из выбранных в апплете Network Connections.
>

мож так? http://forum.vingrad.ru/topic-72772.html


 
Дмитрий С ©   (2010-08-07 02:55) [5]

ShellExecute должен запускать любой ярлык, разве нет?


 
Кто б сомневался ©   (2010-08-07 03:29) [6]


> Дмитрий С ©   (07.08.10 02:55) [5]

Нет.

Rouse_ ©   (07.08.10 00:20) [1]

Можно ли сделать при помощи WNet функций подобную вещь - запустить соединение? Я нашел на сайте ваш пример с этим api . Можно ли собрать список подключений? Т.е. те ярлыки что лежат в Network Connections


 
Кто б сомневался ©   (2010-08-07 03:33) [7]


>  Т.е. те ярлыки что лежат в Network Connections

Название подключений можно собрать и с реестра. Но вот как их запустить..


> antonn ©   (07.08.10 01:53) [4]


Он платный этот компонент. И плюс тяжелый - там куча левого. Не нужен весь тот огромнейший фукнционал который он дает.


 
Димка На   (2010-08-07 04:21) [8]

Завтра проверю, имхо, должен запустить любой.


 
grisme ©   (2010-08-07 08:33) [9]

rasdial же.


 
antonn ©   (2010-08-07 13:57) [10]


> Он платный этот компонент. И плюс тяжелый - там куча левого.
>  Не нужен весь тот огромнейший фукнционал который он дает.
>

там и про интерфейс говорится, не только про компонент


> grisme ©   (07.08.10 08:33) [9]
>
> rasdial же.

а если в "сетевых" только "подключение по локальной сети"?


 
grisme ©   (2010-08-07 15:09) [11]


> antonn ©   (07.08.10 13:57) [10]
>
> а если в "сетевых" только "подключение по локальной сети"?
>

[телепатор] думаю, rasdial тут вполне так подойдёт. [/телепатор]
ибо такие "подключения по локальной сети", при однократном включении, поднимаются автоматически (по дефолту, конечно же). ^^


 
Кто б сомневался ©   (2010-08-07 19:14) [12]

Вобщем с Ras я разбирался, он чет не хотел работать, скорее всего из за того, что написан для ранних Delphi - там Ansi я реплэйсом заменим все на Ansi все равно не работает. Разбиратся я особо не хотел, т.к. модуль там большой.

Вобщем взял я INetConnection. Простой и рабочий. Все включает выключает, и как раз отображается текущие сетевые подключения из Network Connections.

Вот пример


procedure TForm2.GetConnectionList(Strings : TStrings);
var
 pEnum: IEnumVariant;
 vNetCon: OleVARIANT;
 dwRetrieved: Cardinal;
 pUser: NETCONLib_TLB.PUserType1;
 NetCon : INetConnection;
begin
 Strings.Clear;

 pEnum := ( NetSharingManager.EnumEveryConnection._NewEnum as
IEnumVariant);
 while (pEnum.Next(1, vNetCon, dwRetrieved) = S_OK) do
 begin
    (IUnknown(vNetCon) as INetConnection).GetProperties(pUser);
    NetCon := (IUnknown(vNetCon) as INetConnection);

    //if (pUser.Status in [NCS_DISCONNECTED, NCS_CONNECTING])
  //  and (pUser.MediaType in [NCM_LAN,NCM_SHAREDACCESSHOST_LAN,NCM_ISDN] ) then
    begin
   
      Strings.Add(pUser.pszwName );
      //IdList.Add(GuidToString(pUser.guidId));
    end;
 end;
end;


Модуль NETCONLib_TLB - генерится как Type Library


 
Кто б сомневался ©   (2010-08-07 19:16) [13]

Еще не забудьте activeX добавить.


> Модуль NETCONLib_TLB

NETCONLib_TLB.pas


 
Дмитрий С ©   (2010-08-08 22:56) [14]

Я хз как ты делал. Вот этот простой код работает:

 ShellExecute(
   Handle,
   nil,
   "d:\test.lnk",
   nil,
   nil,
   SW_NORMAL
 )


d:\test.lnk - ярлык на подключение.
Это работает даже в 7ке (только требует подтверждения).


 
Кто б сомневался ©   (2010-08-09 17:15) [15]


> Дмитрий С ©   (08.08.10 22:56) [14]

Поверь как я только не делал.
Запустил твой пример, скопипастил. Отключил инет. Не работает. Возвращает ту же ошибку.


 
Кто б сомневался ©   (2010-08-09 17:17) [16]

Кстати, возможно это связано с битностью. Т.к. у меня x64 XP. Если запускать ее в тотал коммандере - то он закрывается. Если в Explorer то все ок. думаю в Win 7 x64 будет также.


 
Кто б сомневался ©   (2010-08-09 17:18) [17]

Если запускать через Выполнить - выбрасывает Windows cannot open this file


 
Кто б сомневался ©   (2010-08-09 17:20) [18]

Короче универсальное решение уже найдено - INetConnection, и оно точно будет работать на всех ОС > w2k. Плюс очень простое.


 
Anatoly Podgoretsky ©   (2010-08-09 19:22) [19]

> Кто б сомневался  (09.08.2010 17:18:17)  [17]

Так тут не до программирования.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1281587871
IGray
2010-08-12 08:37
2010.11.21
Ищу исходники функции IntToStr на паскале


15-1281383797
М. Береговой
2010-08-09 23:56
2010.11.21
Будет землетряс или не будет? :-)


9-1188140713
AlexanderMS
2007-08-26 19:05
2010.11.21
Игра - на весь экран.


15-1281190075
Кэти
2010-08-07 18:07
2010.11.21
Как отключить редирект


2-1282947042
Германн
2010-08-28 02:10
2010.11.21
packed records и Records (advanced)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский