![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Мне надо из своего преложения запустить программу калькулятор котрый находится в виндовсе.
Как это зделать. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 10 Всего: 133 |
Не забудь в uses прописать ShellApi -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
ОК. Всё работает.
Тогда ещё вопрос может у кого есть иходники этого или другого калькулятора а то в виндовском некоторых функций нехватает. |
|||
|
||||
FRAGNATIC |
|
|||
![]() ..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: нет Всего: 11 |
ivan219
а ещё CreateProcess() и WinExec()
правила: один вопрос - один топик а исходники есть на ya.ru |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Ладно калькулятор нашол буду его до делыват чтоб всё было.
CreateProcess() WinExec() Можно поподробнее чем отличастся. И как полностью писать как здесь ShellExecute(Handle, nil, 'calc.exe', nil,nil, SW_Restore); . |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
В справке есть, на форуме, точно есть, попробуй поискать. CreateProcess() - этой функцией и нужно создавать процессы (запускать программы). WinExec() - оставлен для совмнстимости твоей, например, программы, с новыми версиями ОС.
|
||||
|
|||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Вот вопрос прешолось опять поднять так как уменя нечего невышло мне надо запустить прогу которая находится в определённом месте на диске как это зделать
![]() Если можно то поподробнее как эту функцию исползовать CreateProcess() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module LPTSTR lpCommandLine, // pointer to command line string LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes BOOL bInheritHandles, // handle inheritance flag DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // pointer to new environment block LPCTSTR lpCurrentDirectory, // pointer to current directory name LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION ); 1 и 2й параметры -что исполнять тонкостей я не догоняю, но первый пишу нил, а второй - командная строка (можно с путем и параметрами) 3й и 4й - обычно нил 5й - истина если новый процесс наследует хэндлы от твоего 6й - флажки. я пишу ноль, но можно передать CREATE_SUSPENDED и первичный поток процесса будет замороженым Добавлено @ 22:11 чтобы разморозить - ResumeThread. можно также задать приоритет. 7й - нил, если ты не создавал для этого процесса особый набор перем. окружения 8й - текущий каталог, если нил - наследуется 9й - структура STARTUPINFO. делается так: var si:STARTUPINFO; begin ZeroMemory(@si,SizeOf(si)); si.cb:=SizeOf(si); CreateProcess(......................,si,...); 10й - структура PROCESS_INFORMATION В ней получаешь в случае успеха ид-ры потока и процесса и их хэндлы. Если не собираешся ничего с ними делать то хэндлы нужно побыстрее закрыть CloseHandle -------------------- Обижено школьников: 8 |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Это всё слишком для меня я только наяинаю если можно то попроще.
Мне надо: запустить EXE фаил который лежит в папке и находится вместе с управляющим EXE всё это находится в одной папке, некакого управления просто я в управляющем EXE нажемаю на кнопку и EXE из папки запускается. ![]() Добавлено @ 00:20 У меня ошибка ![]()
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Это сообщение отредактировал(а) Girder - 30.1.2006, 15:54 -------------------- Обижено школьников: 8 |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Чтото опять не то прога откомпилилась а фаил неоткрывает
![]()
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Ну да, я ж говорю - обычно пишу во втором параметре
![]() 6: if CreateProcess(nil,'Cmd.EXE',nil,nil,false,0,nil,nil,si,pi) then begin -------------------- Обижено школьников: 8 |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Код дал bems, всё работает
![]()
![]() Это сообщение отредактировал(а) ivan219 - 26.1.2006, 20:28 |
|||
|
||||
ivan219 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: нет Всего: 12 |
Вобщем опять проблема уменя есть фаил который запускается через вот этот код
Сам EXE запускается нормально. Но также есть фаил *.DLL который вместе с EXE но когда я его запускаю через свою прогу то получаю ошибку типа
Если запускать просто без моей проги то всё работает. Что делать ![]() |
||||
|
|||||
Fighter |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
WinExec
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |