Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Как открывать документы при помощи 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 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.068 c
14-1129747692
ArtemESC
2005-10-19 22:48
2005.11.13
Delphi environment


5-1109742825
Аюс
2005-03-02 08:53
2005.11.13
FreeNotification(Self) принцип работы ?


3-1128080674
SERGEY-ZZZ
2005-09-30 15:44
2005.11.13
Базы данных через интернет


2-1129779847
Alex77777
2005-10-20 07:44
2005.11.13
Нужно отфильтровать базу по пустому полю


14-1130082127
alexsis
2005-10-23 19:42
2005.11.13
Дискеты