Форум: "WinAPI";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизКак открывать документы при помощи CreateProcess Найти похожие ветки
← →
jeka_t (2005-09-07 13:33) [0]Хочу открыть в Win98 документы Word, AutoCAD, Acrobat Reader с помощью процедуры CreateProcess...
Пишу:
function OpenDOC(const cmd: String): boolean; export;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
FillChar(StartInfo, SizeOf(StartInfo), #0);
with StartInfo do
begin
cb := SizeOf(cb);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOWNORMAL;
end;
Result := CreateProcess(nil, PChar( cmd ), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo);
end;
Вызываю:
OpenDOC(""C:\AutoCAD\ACAD.EXE" ""+FileName+""")
Он открывает его без проблем, но следущий файл, которого надо открыть, процедура сного запускает приложение AutoCAD...
И если файлов 10, то и запусков приложения тоже 10...
Как можно запустить одно приложение с более одним документом???
← →
isasa © (2005-09-07 13:51) [1]
var
app : OleVariant;
........
app:=CreateOleObject("объект");
//например
app.OpenDocument(......... //индивидуально для каждого объекта
..........
← →
jeka_t (2005-09-07 14:05) [2]Спасибо...
Этот способ работает, но он медленнее чем CreateProcess...
Хотелось бы использовать именно эту процедуру...
← →
Reindeer Moss Eater © (2005-09-07 14:14) [3]но следущий файл, которого надо открыть, процедура сного запускает приложение AutoCAD...
А по твоему CreateProcess не должна каждый раз создавать новый процесс?
А должна только когда?
← →
Reindeer Moss Eater © (2005-09-07 14:17) [4]>Как можно запустить одно приложение с более одним документом???
Изучить параметры командной строки этого приложения.
← →
jeka_t (2005-09-07 14:24) [5]Но приложений очень много и знать все приложения, которые работают с документами(pdf, max, plt, dwg, dwf, cdr) невозможно... и потом не все приложения работают с параметрами запуска...
← →
Reindeer Moss Eater © (2005-09-07 14:28) [6]Но приложений очень много и знать все приложения, которые работают с документами(pdf, max, plt, dwg, dwf, cdr) невозможно... и потом не все приложения работают с параметрами запуска...
Отсюда вывод - не задавай бессмысленных вопросов, подобных заданному тобой в этой ветке (jeka_t (07.09.05 13:33)).
← →
jeka_t (2005-09-07 14:33) [7]Я думаю задача форумов не потыкать, а помогать или же у Вас другое мнение по этому поводу?
← →
Digitman © (2005-09-07 14:34) [8]
> jeka_t (07.09.05 14:24) [5]
а их и знать не надо.
достаточно знать приложение по умолчанию.
инф-ция же о приложении по умолчанию и ком.строке для открытия им указанного документа находится в реестре
ты же не удивляешься, что по щелчку мышью на иконке txt-файла всегда стартует, скажем, Notepad а не WordPad ?
спрашивается, откуда система узнала, какой процесс стартовать и какие параметры в ком.строке ему передать ?
ответ : из реестра эта инф-ция взята системой
то же самое и ты можешь проделать программно у себя в приложении
← →
Reindeer Moss Eater © (2005-09-07 14:35) [9]Я думаю, что задача форумов - это иметь как можно большую аудиторию.
← →
Германн © (2005-09-07 14:49) [10]>Изучить параметры командной строки этого приложения.
2 jeka_t (07.09.05 14:24) [5]
... и потом не все приложения работают с параметрами запуска...
Ну уж, а если некие приложения и не работают так как тебе хочется, то тут все-равно облом. Нельзя заставить открыть в блокноте несколько документов.
← →
alpet © (2005-09-07 15:58) [11]Используй ShellExecute и не мучайся.
← →
jeka_t (2005-09-08 12:26) [12]Спасибо, это лучший на данный момент метод... Не такой уж гипкий, но при желании можно достичь нужного результата...
Всем спасибо...:)))
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c