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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2008, 03:31   #1
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
Стрелка ShellExecute не хочет запускать файлы

Всем привет!
Есть код:
Код:
Uses
   ShellApi,...
---
Procedure TForm1.XPButton1Click(Sender: TObject);
Begin
ShellExecute(Application.Handle,'Open','Com.exe',Nil,Nil,SW_SHOWDEFAULT);
End;
Когда я нажимаю на кнопку, то файл прекрасно запускается и всё работает как надо, но когда я выполняю следующий код:
Код:
Procedure TForm1.XPButton2Click(Sender: TObject);
Begin
If OpenDialog1.Execute Then
Begin
Edit1.Text:=OpenDialog1.FileName;
End;
End;
Тоесть просто открываю компонент OpenDialog и присваиваю в Edit путь к выбранному файлу, то после этого при нажатии на кнопку запуска файла (XPButton1) файл не запускается. (ShellExecute и Edit1 в программе не имеют к друг другу ни кокого отношения.) Подскажите пожалуйста из за чего такое может быть??? И как сделать что бы после открытия OpenDialog и указания пути в Edit ShellExecute всё равно запускала файл?
За ранее благодарен!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 24.11.2008, 07:31   #2
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Попробуй указывать полный путь к файлу в
ShellExecute(Application.Handle,'Op en','C:\...\Com.exe',Nil,Nil,SW_SHOWDEFAULT);
потому, что после выполнения OpenDialog1.Execute у тебя меняется рабочий каталог, а 'Com.exe' скорее всего лежит в папке с твоей программой
Трофимов Александр вне форума Ответить с цитированием
Старый 24.11.2008, 17:24   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Трофимов Александр Посмотреть сообщение
Попробуй указывать полный путь к файлу в
ShellExecute(Application.Handle,'Op en','C:\...\Com.exe',Nil,Nil,SW_SHOWDEFAULT);
потому, что после выполнения OpenDialog1.Execute у тебя меняется рабочий каталог, а 'Com.exe' скорее всего лежит в папке с твоей программой
Я пробовал указывать полный путь, но всё равно после присвоения эдиту пути из OpenDialog файл перестаёт запускаться...
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 24.11.2008, 18:20   #4
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Попробуй замутить через WinExec
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 24.11.2008, 19:38   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от SNUPY Посмотреть сообщение
Попробуй замутить через WinExec
Спасибо конечно за совет, но мне надо именно через ShellExecute.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 24.11.2008, 20:02   #6
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 129
Радость

Попробуй так:

Код:
Procedure TForm1.XPButton2Click(Sender: TObject);
 Var MemDir :String;
 Begin
  
  MemDir:=GetCurrentDir;

  If OpenDialog1.Execute Then
   Begin
    Edit1.Text:=OpenDialog1.FileName;
  End;

  SetCurrentDir(MemDir)
End;
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 24.11.2008, 21:56   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Nester, БОЛЬШОЕ вам спасибо! Всё заработало! И спасибо всем за помощь!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поместить программу в tray и запускать Johnt Общие вопросы Delphi 10 07.01.2009 14:35
shellExecute GAGARIN-NEW Общие вопросы Delphi 3 18.10.2008 12:04
Скажите функцию которая будет запускать приложение при каждой загрузке винды pentiumForever Общие вопросы Delphi 9 08.09.2007 01:54
Автоматически запускать приложение лисенок БД в Delphi 3 17.04.2007 23:39
Как запускать службы через Delphi Kastor Безопасность, Шифрование 3 04.04.2007 20:26