![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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