Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CreateProcess [D6, Win2k]


Suharew ©   (2003-11-01 23:55:00) 

Как с помощью CreateProcess запустить файл 1.doc Я пытаюсь но функция возвращает ошибку 193 т.е. типа это не exe файл.


nikkie   (2003-11-02 22:58:00) [1]

>проще через createprocess...
нет, тогда уж проще через shellexecute(ex). но оба метода страдают одним и тем же недостатком - закрытие документа может не совпадать с закрытием ворда. а если отслеживать закрытие документа через локирование файла, то нет возможности определить момент, когда документ открылся.


Suharew   (2003-11-02 22:44:00) [2]

проще через createprocess(nil,"winword.exe 1.doc"..... ) жаль но для этого надо знать где расположен офис а точнее ворд. хотя ворд легко отыскивается через реестр или простым поиском.


Nick Denry   (2003-11-02 15:45:00) [3]

WordApplication на странице Servers. Только нужно знать версию установленного офиса, хотя не обязательно.

Могу пример:
unit main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, WordXP, jpeg, ExtCtrls,ClipBrd,ComObj,ShellApi;

type
TServerMain = class(TForm)
btnWord: TButton;
btnExit: TButton;
WordApplication1: TWordApplication;
Image1: TImage;
WordDocument1: TWordDocument;
Memo1: TMemo;
procedure btnExitClick(Sender: TObject);
procedure btnWordClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
ServerMain: TServerMain;

implementation

{$R *.dfm}

procedure TServerMain.btnExitClick(Sender: TObject);
begin
ServerMain.close;
end;

Procedure TServerMain.btnWordClick(Sender: TObject);
var
Direction : OleVariant;
FileName : OleVariant;
Time : TDateTime;
begin
//


nikkie   (2003-11-02 01:43:00) [4]

можешь ждать очень долго, поскольку ворд - mdi приложение. если надо открывать исключительно вордовские документы, то лучший вариант - ждать снятия лока с файла. а для того, чтобы быть уверенным, что документ успел открыться, лучше открывать его через OLE.


clickmaker   (2003-11-02 00:25:00) [5]

ShellExecuteEx


Suharew   (2003-11-02 00:19:00) [6]

да так то работает. но мне надо через createprocess т.к. мне надо запустить ворд и подождать пока он отработает. поэтому я делаю createprocess, а потом waitforsingleobject т.е. жду.


panov   (2003-11-01 23:59:00) [7]

ShellExecute


Наверх

Титульная страница Поиск, карта сайта Написать письмо