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

Вниз

CreateProcess   Найти похожие ветки 

 
Suharew ©   (2003-11-01 23:55) [0]

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


 
panov ©   (2003-11-01 23:59) [1]

ShellExecute


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

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


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

ShellExecuteEx


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

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


 
Nick Denry ©   (2003-11-02 15:45) [5]

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
//


 
Suharew ©   (2003-11-02 22:44) [6]

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


 
nikkie ©   (2003-11-02 22:58) [7]

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



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.013 c
1-99524
wolf01
2003-12-16 14:16
2003.12.30
Узнать о изменеии свойства Visible


3-99434
Zhenja
2003-12-04 00:21
2003.12.30
Работа с локальной базой по сети


1-99642
Evgeniy_K
2003-12-13 17:53
2003.12.30
Форма границы, которой совпадают с границами Image


14-99735
Agrippina
2003-12-04 18:26
2003.12.30
Причины и следствия


1-99608
Vitaliygavrilov
2003-12-17 10:55
2003.12.30
Возможно ли при работе программы изменить ее интерфейс