Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-99700
Serj
2003-12-09 06:08
2003.12.30
Цифровая фотокамера


1-99585
MoGiLsHiKK
2003-12-17 15:21
2003.12.30
Как программно определить OS?


14-99754
MPS
2003-12-06 13:51
2003.12.30
Ручная компиляция проекта


6-99665
St!ff
2003-10-28 23:39
2003.12.30
Поиск по фтп...


14-99699
Думкин
2003-12-07 05:47
2003.12.30
С днем рождения! 7 декабря.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский