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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 22:58   #1
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию Запустить как EXE

Можно ли как-нибудь запустить файл произвольного расширения (для которого уже имеется программа, которая стандартно его открывает) запустить как exe'шник? И, кстати, какая программа открывает exe'шники?

может можно чего-нибудь вмместо "???" поставить?

Код:
ShellExecute(handle, PChar(' ??? '), PChar('abcdefg.hij'), nil, nil, sw_show);
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 01.03.2011, 23:32   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Если на компьютере установлена программа котора открывает файл Х и ассоциированая с этим расширением файла Х то, это вот так:
Код:
ShellExecute(handle, PChar('Open'), PChar('abcdefg.hij'), nil, nil, sw_show);
Наглядный пример:
На компьютере установлен WordPad.
Есть файл qwerty.doc его нужно открыть через wordpad.exe программно.
Решение:
Код:
ShellExecute(handle, PChar('Open'), PChar('qwerty.doc'), nil, nil, sw_show);

Нет, файл просто так нельзя запустить как exe. Почему?
Потому что каждый файл имеет свою структуру. Эти структуры анализирует система и открывает файл если его распознаёт.
говоря проще, почитай про структуру PE файлов. И запуск их их памяти.

Но ты можешь и попробовать, открой свой файлХ через CreateProcess система вернёт ошибку:
Код:
Данный файл не является win32 приложением. //Ну что-то в этом роде=)
Человек_Борща вне форума Ответить с цитированием
Старый 01.03.2011, 23:49   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

если вдруг захочеш асоциировать свои фаил Х с другои програмои
http://programmersforum.ru/showthread.php?t=138382

ссылка была невернои
VirusN13

Последний раз редактировалось ArtGrek; 02.03.2011 в 14:50.
ArtGrek вне форума Ответить с цитированием
Старый 02.03.2011, 13:28   #4
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Всё это я понимаю, я видимо не так вопрос задал.
Сам файл имеет структуру exe файла, а его расширение другое (переименован он просто), но открыть его надо как exe.
Это как-то можно сделать?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 02.03.2011, 14:12   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

CreateProcess то что вам надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.03.2011, 14:21   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

из командной строки:
Код:
START ИмяФайла.ЛюбоеРАсширение
думаю, что и программно надо копать в эту же сторону!

___________
Цитата:
Сообщение от Пепел Феникса
CreateProcess то что вам надо.
Пепел Феникса. или так. согласен. вполне может подойти.

Последний раз редактировалось Serge_Bliznykov; 02.03.2011 в 14:27.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.03.2011, 14:39   #7
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Попробуйте в Проводнике Сервис -> Свойства папки -> Типы файлов -> Создать.
В открывшемся окошке "Создание нового расширения" в "Расширении" записываем ВАШЕ_РАСШИРЕНИЕ и в "Сопоставляемый тип файла" выбираем "Приложение". "ОК".
Таким образом делаете "навсегда" запуск программы с другим расширением. Но похоже отклонились в сторону

Основной ответ от Пепел Феникса, если Вам обязательно нужно в Delphi. Не сочтите за спам моё сообщение для набора каких-либо очков или "Репутации" за чужой счёт

Последний раз редактировалось OlegVE; 02.03.2011 в 14:50.
OlegVE вне форума Ответить с цитированием
Старый 02.03.2011, 20:42   #8
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

да, CreateProcess, спасибо
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 02.03.2011, 21:08   #9
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://www.cyberforum.ru/delphi-begi...ml#post1319964
http://www.gunsmoker.ru/2009/07/createprocess.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как запустить другой exe из в тексте программы ? somwan Общие вопросы C/C++ 5 01.10.2009 14:28
Как запустить EXE из Delphi Delfyak О форуме и сайтах клуба 6 28.05.2008 19:25
Как запустить из Delphi exe файл Makxim Общие вопросы Delphi 11 16.10.2007 18:06
Как запустить EXE XATAB Общие вопросы Delphi 4 08.07.2007 23:54
Как запустить exe-шку нажатием кнопки???? Дамир Помощь студентам 3 04.02.2007 19:24