запуск файла

Вопросы программирования и использования среды Lazarus.

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

запуск файла

Сообщение Dryg » 24.05.2010 03:41:26

у меня 64 bit windows я пытаюсь запустить файл вот так

Код: Выделить всё
  ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('имя файла'), nil, Pchar('путь до файла'),SW_SHOWNORMAL); 


но у меня ругается на SW_SHOWNORMAL

Код: Выделить всё
unit1.pas(33,155) Error: Identifier not found "SW_SHOWNORMAL"


не пойму че не так!
Последний раз редактировалось Dryg 24.05.2010 12:09:38, всего редактировалось 1 раз.
Dryg
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2010 00:23:47

Re: запуск файла

Сообщение Light13 » 24.05.2010 06:27:06

Код: Выделить всё
uses
  windows;


или
Код: Выделить всё
  ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('имя файла'), nil, Pchar('путь до файла'), 1);
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: запуск файла

Сообщение Dryg » 24.05.2010 11:54:45

Спасибо все ок!! но странно при нажатии на кнопку ничего не происходит!! я просто в delphi работал там все запускается а тут нет !
Dryg
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2010 00:23:47

Re: запуск файла

Сообщение Brainenjii » 24.05.2010 12:22:38

Возможно путь к файлу указан в UTF8?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: запуск файла

Сообщение Dryg » 24.05.2010 12:37:52

Brainenjii писал(а):Возможно путь к файлу указан в UTF8?


я пишу вот так
Код: Выделить всё
  ShellExecute(Handle, Pchar('open'),nil, nil,Pchar('C:\'),SW_SHOWNORMAL);
открывается диск C:\ но если путь указать до файла например вот так
Код: Выделить всё
C:\KAV\WinWorkstation\russian\setup.exe
все равно открывается диск C:\
Dryg
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2010 00:23:47

Re: запуск файла

Сообщение Odyssey » 24.05.2010 16:30:50

Смотрим документацию по ShellExecute -- официальную тут или неофициальную, например тут. Там указан список параметров.
1. Wnd - родительское окно, у вас это Application.mainform.Handle, порядок.
2. Operation - выполняемая операция, 'open', порядок.
3. FileName - имя файла для открытия, у вас почему-то nil.
4. Parameters - параметры командной строки, nil, нормально.
5. Directory - директория по умолчанию, почему то "C:\KAV\WinWorkstation\russian\setup.exe"
6. ShowCmd - режим отображения, SW_SHOWNORMAL, порядок.

Итого: как минимум нужно поменять 3 и 5 параметр местами. А чтобы запускаемые программы работали нормально, лучше указать FileName = "C:\KAV\WinWorkstation\russian\setup.exe" и Directory = "C:\KAV\WinWorkstation\russian\".

P.S.
Dryg писал(а):в delphi работал там все запускается а тут нет !

До чего ж люди порой любят валить свои косяки на ни в чём не повинные инструменты :)
В Delphi ваш код тоже открывает только диск, я пробовал.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: запуск файла

Сообщение mcmraak » 27.09.2010 23:18:36

Вот так работает:
ShellExecute(Application.mainform.Handle, Pchar('open'), Pchar('filename.exe), nil, Pchar('directory'), 1);

Но если вдруг в адресе есть папки на русском, то внешнее приложение не запускается :(
Поможите! Подскажите! Проблема в кодировке? Как решить?
mcmraak
незнакомец
 
Сообщения: 2
Зарегистрирован: 04.09.2010 15:53:19

Re: запуск файла

Сообщение Odyssey » 27.09.2010 23:28:52

uses ... LCLProc ...
Pchar(Utf8ToSys('filename.exe')),
Pchar(Utf8ToSys('directory'))
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: запуск файла

Сообщение mcmraak » 28.09.2010 00:05:20

Odyssey писал(а):uses ... LCLProc ...
Pchar(Utf8ToSys('filename.exe')),
Pchar(Utf8ToSys('directory'))


УРА!!! Работает!!! Одисей, Вам мои всяческие благодарности!!! Спасибо!!! Два часа сидел гуглил... :D :D :D
mcmraak
незнакомец
 
Сообщения: 2
Зарегистрирован: 04.09.2010 15:53:19

Re: запуск файла

Сообщение Mr.Smart » 28.09.2010 10:09:13

mcmraak писал(а):Два часа сидел гуглил... :D :D :D

А можно было бы просто поискать на этом форуме!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: запуск файла

Сообщение GAMER » 30.09.2010 20:35:19

Странно, но у меня модуль FileUtil потребовал для Utf8ToSys, а не LCLProc.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: запуск файла

Сообщение Mr.Smart » 30.09.2010 20:39:17

Её давно, еще с 0.9.28.2, туда перенесли.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 18

Рейтинг@Mail.ru