Вызов программ

  • Автор темы -Karter-
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

-Karter-

Гость
#1
Хотелось бы узнать, возможно ли из программы вызвать другую независимо скомпилированную программу. И каким образом это возможно сделать?
 
B

biz

Гость
#3
еще есть ShellExecute, но она уже может не только запустить EXE-шник, но и открыть документ и т.п...
 

shisik

Well-Known Member
26.08.2007
154
0
29
Харьков
#4
Открыть документ можно и через CreateProcess. Только ShellExecute сама решает, каким приложением его открывать (в соответствии с настройками Windows), а CreateProcess нужно вручную указавать приложение и по желанию можно в параметрах запуска указать документ, который и будет открыт...
 
B

biz

Гость
#5
shisik
да, тока я не вижу смысла открывать документ (например .doc) через CreateProcess если это можно проще зделать через ShellExecute
 

shisik

Well-Known Member
26.08.2007
154
0
29
Харьков
#6
shisik
да, тока я не вижу смысла открывать документ (например .doc) через CreateProcess если это можно проще зделать через ShellExecute
А если например .doc по какой-то причине с word не ассоциирован?Или если нужна доп. функциональность (например, запуск приостановленного процесса). Как это сделать через ShellExecute? Или нужны атрибуты защиты не по умолчанию. Или скажем нужен HANDLE запущенного процесса...
 
B

biz

Гость
#7
shisik
можно и HANDLE взять если захотеть, но ты думаешь например -Karter- {удалено модератором} какой знаток всего этого дела?? я не говорю что я гуру, просто я думаю сейчас ему {удалено модератором} не нужен никакой HANDLE процесса и уж тем более менять атрибуты защиты по умолчанию... и поэтому предлогаю самый простой способ, как можно реализовать вызов одно проги из другой. да ну и {удалено модератором} с ними с документами... если он просто хочет вызвать программу, то ему {удалено модератором} не нужны никакие ассоциации файлов. {удалено модератором} лезть в на пальму, если какосы уже под ней лежат еп-т!!

Код:
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 
);

HINSTANCE ShellExecute(
HWND hwnd,	// handle to parent window
LPCTSTR lpOperation,	// pointer to string that specifies operation to perform
LPCTSTR lpFile,	// pointer to filename or folder name string
LPCTSTR lpParameters,	// pointer to string that specifies executable-file parameters 
LPCTSTR lpDirectory,	// pointer to string that specifies default directory
INT nShowCmd 	// whether file is shown when opened
);
чуешь разницу!!?

sax_ol
смысл есть во всем, особенно если кто-то это может доказать и объяснить, а не просто кричать: "Я ВСЕ ЗНАЮ!!"
 
K

korgik

Гость
#10
да, очень хороший вопрос. только что то на него не хотят отвечать упорно :)
 
Статус
Закрыто для дальнейших ответов.