Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 17:53   #1
sapogan
 
Регистрация: 29.07.2009
Сообщений: 9
Вопрос Запуск ярлыка подключения

Доброго дня!
Я столкнулся с интересной проблемой: я запускаю в своей программе ярлык подключения к интернету, который я создал на рабочем столе. Если я уже подключен к интернету - то ярлык "щелкается", открывается окно с состоянием подключения. Если же я еще не подключался - ничего не происходит, а должно было появиться окно подключения с запросом логина и пароля.

Вот как я открываю ярлык:
Код:
ShellExecute(0, nil, pchar(labelededit4.text), nil, pchar(extractfilepath(labelededit4.text)), SW_SHOWNORMAL);
Пробовал запускать программу от имени администратора (Windows Se7en) - результат тот же.
Буду очень признателен за помощь.
sapogan вне форума Ответить с цитированием
Старый 13.10.2009, 18:03   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Код:
if tcpClient1.LocalHostAddr = '127.0.0.1' then
    ShellExecute(0, nil, pchar(labelededit4.text), nil, pchar(extractfilepath(labelededit4.text)), SW_SHOWNORMAL);
//если запуск у тебя правильный то - если инета нет, запуститься твой ярлык, а может и нет ;-)
Не забудь кинуть tcpClient

по ходу не запуститься, так как тип файла ярлык, а объект сам имеет странной название:
{BA126ADB-2166-11D1-B1D0-00805FC1270E}

Может из-за этого невозможно его запустить простым способом ?

Последний раз редактировалось W0LF; 13.10.2009 в 18:30.
W0LF вне форума Ответить с цитированием
Старый 13.10.2009, 20:46   #3
sapogan
 
Регистрация: 29.07.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от W0LF

по ходу не запуститься, так как тип файла ярлык, а объект сам имеет странной название:
{BA126ADB-2166-11D1-B1D0-00805FC1270E}

Может из-за этого невозможно его запустить простым способом ?
В том-то и дело, что ярлык открывается! Но только тогда, когда я уже подключен к инету.
sapogan вне форума Ответить с цитированием
Старый 13.10.2009, 23:26   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

модем под рукой, решил проверить... да, действительно, если смотреть свойства ярлыка данного подключения с рабочего стола, то будет типа GUID {BA126ADB...
когда прописываешь абсолютный путь, запускается при любых условиях:
Код:
C:\Documents and Settings\All Users\Рабочий стол\интернет через АТС.lnk
как вы путь указываете?
Вложения
Тип файла: zip lnk.zip (199.3 Кб, 30 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 13.10.2009 в 23:29.
raxp вне форума Ответить с цитированием
Старый 14.10.2009, 12:04   #5
sapogan
 
Регистрация: 29.07.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
модем под рукой, решил проверить... да, действительно, если смотреть свойства ярлыка данного подключения с рабочего стола, то будет типа GUID {BA126ADB...
когда прописываешь абсолютный путь, запускается при любых условиях:
Код:
C:\Documents and Settings\All Users\Рабочий стол\интернет через АТС.lnk
как вы путь указываете?
путь к моему ярлыку - C:\Users\Яков\Desktop\Domolink.lnk
sapogan вне форума Ответить с цитированием
Старый 07.11.2009, 19:17   #6
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Столкнулся с аналогичной проблемой, если нельзя запустить ярлык обычным методом, то можно сделать программно, то что мы делам руками: открыть проводник в нужной папке, выделить ярлык и нажать энтер.
Код:
var
  HWND,CH:THandle;
begin
  WinExec('EXPLORER /select,full filename', SW_SHOWNORMAL); //Открываем проводник в нужной папке и подсвечиваем файл 

  Sleep(100); //Ждем пока откроется окно проводника

  HWND:=FindWindow(nil, 'Window title'); //Находим хэндл окна проводника 
  CH:=FindWindowEx(HWND, 0, 'SHELLDLL_DefView', nil); //Находим хэндл класса которому передаем сообщение
  CH:=FindWindowEx(CH, 0, 'DUIViewWndClassName', nil);
  CH:=FindWindowEx(CH, 0, 'DirectUIHWND', nil);
  CH:=FindWindowEx(CH, 0, 'CtrlNotifySink', nil);
  CH:=FindWindowEx(CH, 0, 'SysListView32', 'FolderView');

  PostMessage(CH, WM_KEYDOWN, VK_RETURN, 0); //Передает сообщение о нажатии энтера
  SendMessage(HWND,WM_SYSCOMMAND,SC_CLOSE,0); //Закрывает окно проводника   
end;
З.Ы. Может кому пригодится.

Последний раз редактировалось Gerzs; 07.11.2009 в 19:21.
Gerzs вне форума Ответить с цитированием
Старый 11.05.2015, 14:34   #7
Ltybcrf3
Новичок
Джуниор
 
Регистрация: 18.05.2012
Сообщений: 2
По умолчанию

Братцы выручайте есть программа с названием File.exe
Для настроек я всегда запускал её Ярлыком с таким путём:

Код:
"C:\Stub\File.exe" /config
Какой командой на делфи у меня хе5 можно запускать сразу File.exe без использования ярлыка!? но обязательно с атрибутом /config
Ltybcrf3 вне форума Ответить с цитированием
Старый 11.05.2015, 14:58   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А те функции, что в теме выше описаны, не подошли?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
после добавления ярлыка программа не работает Kos123 Помощь студентам 18 30.09.2009 14:27
Атрибуты ярлыка! poster123 Win Api 5 21.07.2009 22:33
Стрелка у ярлыка Altera Windows 3 29.10.2008 14:45
C# Создания ярлыка MAcK Общие вопросы .NET 6 16.08.2008 12:22
Свойства ярлыка Fainder Win Api 1 26.04.2007 15:26