![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Ванька |
|
|||
|
Unregistered |
Ребята, подскажите функцию, чтоб при нажатии на кнопку с Form1 запускался файл .exe
и после этого Form1 закрылась. Буду очень признателен, если напишите примерчик! Спасибо. |
|||
|
||||
| acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
|
|||
|
||||
| Ванька |
|
|||
|
Unregistered |
ShellAPI.ShellExecute(...);
Close; А вот как писать в (...)? Например winamp.exe |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 6 Всего: 162 |
Открывает или печатает указанный файл или открывает указанную папку
Модуль ShellAPI Описание Функция ShellExecute позволяет выполнить любое приложение Windows. Можно также открыть файл документа, что означает выполнение связанного с ним приложения и загрузку в него этого документа. Например, обычно с документами, имеющими расширение .doc, связан Winword. В этом случае открыть файл, например, с именем 'file.doc' означает запустить Winword и передать ему в качестве параметра имя файла 'file.doc'. Кроме описанных возможностей функция ShellExecute позволяет распечатать указанный файл или открыть указанную папку. Последнее означает, что будет запущена программа 'Проводник' с открытой указанной папкой. Параметры функции означают следующее: Параметр Описание Wnd Родительское окно, в котором отображаются сообщения запускаемого приложения. Operation Указывает на строку с нулевым символом в конце, которая определяет выполняемую операцию. Эта строка может содержать текст "open" (открыть) или "print" (напечатать). Для Windows 95 и NT определено еще одно значение: "explore" (исследовать) - открыть папку. Если параметр Operation равен nil, то по умолчанию выполняется операция "open". FileName Указывает на строку с нулевым символом в конце, которая определяет имя открываемого файла. Parameters Указывает на строку с нулевым символом в конце, которая определяет передаваемые в приложение параметры, если FileName определяет выполняемый файл. Если FileName указывает на строку, определяющую открываемый документ, то этот параметр задается равным nil. Directory Указывает на строку с нулевым символом в конце, которая определяет каталог по умолчанию. ShowCmd Определяет, режим открытия указанного файла. Этот параметр может иметь значения: SW_HIDE Окно делается невидимым и фокус передается другому окну. SW_MINIMIZE Свертывает (минимизирует) указанное окно и активизирует следующее в Z-последовательности окно верхнего уровня в списке системы. SW_MAXIMIZE Развертывает (максимизирует) указанное окно. SW_RESTORE Активизирует и отображает окно. Если это окно свернуто или развернуто, то оно восстанавливается до своих первоначальных размеров и отображается в первоначальной позиции (почти то же самое, что SW_SHOWNORMAL). SW_SHOW Активизирует и отображает окно в его текущей позиции и с текущими размерами. SW_SHOWDEFAULT Только для Windows 95 и NT. Устанавливает состояние в соответствии с флагом SW_ в структуре STARTUPINFO, передаваемой в функцию CreateProcess программой, запускающей приложение. Приложение должно вызывать ShowWindow с этим флагом, чтобы задать начальное состояние своего главного окна. SW_SHOWMAXIMIZED Активизирует и отображает окно в развернутом виде (максимизированном). SW_SHOWMINIMIZED Активизирует и отображает окно в свернутом виде (в виде пиктограммы). SW_SHOWMINNOACTIVE Отображает окно в свернутом виде (в виде пиктограммы). Активным остается то окно, которое было активным до этого. SW_SHOWNA Отображает окно в его текущей позиции и с текущими размерами. Активным остается то окно, которое было активным до этого. SW_SHOWNOACTIVATE Отображает окно в его последней позиции и с последними размерами. Активным остается то окно, которое было активным до этого. SW_SHOWNORMAL Активизирует и отображает окно. Если это окно свернуто или развернуто, то оно восстанавливается до своих первоначальных размеров и отображается в первоначальной позиции (почти то же самое, что SW_RESTORE). Функция возвращает дескриптор открытого приложения или дескриптор сервера DDE приложения. Если возвращаемое значение меньше или равно 32, это указывает на ошибку. Значения ошибок означают следующее (в Windows 95 и NT для этих ошибок имеются именованные константы - см. справку Delphi 3): Значение Пояснение 0 Системе не хватает памяти, выполняемый файл испорчен или произошло ошибочное перераспределение памяти. 2 Файл не найден. 3 Путь не найден. 5 Была попытка динамически связаться с задачей, была ошибка многопроцессорного выполнения или ошибка защиты сети. 6 Библиотека требует отдельных сегментов данных для каждой задачи. 8 Недостаточно памяти для запуска приложения. 10 Ошибочная версия Windows. 11 Ошибочный выполняемый файл. Или это не приложение Windows, или ошибка в .exe файле. 12 Приложение спроектировано для другой операционной системы. 13 Приложение спроектировано для MS-DOS 4.0. 14 Неизвестный тип выполняемого файла. 15 Попытка запустить приложение, работающее только на более ранних версиях Windows. 16 Попытка запустить второй экземпляр приложения, содержащего сегменты данных, не помеченные "только для чтения". 19 Попытка запустить архивированный файл. Файл должен быть разархивирован, прежде чем его можно будет загрузить. 20 Ошибочный файл одной из DLL, требуемой для приложения. 21 Приложение требует 32-битного расширения Windows. 31 Нет приложения, связанного с файлом указанного типа, или нет файла, связанного с указанной операцией. Параметры Operation, FileName, Parameters и Directory являются строками с нулевым символом в конце, т.е. строками типа PChar. Для Delphi 3 это не существенно, т.к. в ней по умолчанию используются строки с нулевым символом в конце. Поэтому в Delphi 3 вместо этих параметров можно использовать просто литеральные константы или строковые переменные. Но в Delphi 1 это приводит в ряде случаев к необходимости преобразования строк. 1. Пусть вы хотите открыть файл документа с именем 'file.doc', т.е. запустить Winword (обычно именно он связан с файлами .doc), загрузив в него указанный файл. Тогда в Delphi 3 вы можете написать: ShellExecute(Handle,nil,'file.doc',nil,nil,SW_RESTORE); Однако, в Delphi 1 это должно выглядеть так: var APchar:array[0..254] of char; ... StrPCopy(APchar, 'file.doc'); ShellExecute(Handle,nil,APchar,nil,nil,SW_RESTORE); или так: ShellExecute(Handle,nil, StrPCopy(APchar, 'file.doc'), nil,nil,SW_RESTORE); 2. Печать документа осуществляется аналогично рассмотренному выше, только надо задать соответствующее значение параметра Operation (дальнейшие примеры приводятся для Delphi 3): ShellExecute(Handle, 'print','file.doc',nil,nil,SW_RESTORE); Выполнение этого оператора будет протекать следующим образом. Запустится Winword, связанный с файлами .doc, в него загрузится файл 'file.doc', затем из Winword запустится печать с атрибутами по умолчанию, после чего файл 'file.doc' выгрузится из Winword. 3. Ниже дан пример открытия приложения 'Калькулятор': ShellExecute(Handle,'open','Calc',nil,nil,SW_RESTORE); 4. Следующий пример открывает папку c:\Program Files\Borland: ShellExecute(Handle,'explore', 'c:\Program Files\Borland', nil,nil,SW_RESTORE); -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 1 Всего: 137 |
WinExec ('C:\Progra~1\WinAmp\WinAmp.exe', SW_Show);
Вообще-то лучше узнавать путь к WinAmp'у через реестр: HKEY_CURRENT_USER\Software\Winamp, в параметре по умолчанию Ну и потом, разумеется, Form1.Close Это сообщение отредактировал(а) dm9 - 31.5.2003, 18:50 |
|||
|
||||
| Гость_kostya |
|
|||
|
Unregistered |
Печать документа осуществляется аналогично рассмотренному выше, только надо задать соответствующее значение параметра Operation (дальнейшие примеры приводятся для Delphi 3):
ShellExecute(Handle, 'print','file.doc',nil,nil,SW_RESTORE); Выполнение этого оператора будет протекать следующим образом. Запустится Winword, связанный с файлами .doc, в него загрузится файл 'file.doc', затем из Winword запустится печать с атрибутами по умолчанию, после чего файл 'file.doc' выгрузится из Winword. ------------------------------------------------------------------------------------------------------------------------------------------------ А как сделать чтоб запуск Worda небыло видно пользователю ???????????????? КТО ЗНАЕТ КАК ЭТО СДЕЛАТЬ ПУСТЬ ЕЩЕ РАЗ САМ ПРОВЕРИТ И ЕСЛИ СРАБОТАЕТ ТО ПУСТЬ ОТПРАВИТ НА МЫЛО [email protected] |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |