Форум: "WinAPI";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c