|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как отправить текст в Word
Здравствуйте!
Вот код он отправляет текст в блокнот Код:
var wnd: HWND; i: Integer; s: string; begin wnd := FindWindow('notepad', nil); if wnd <> 0 then begin wnd := FindWindowEx(wnd, 0, 'Edit', nil); s := 'Hallo'; for i := 1 to Length(s) do SendMessage(wnd, WM_CHAR, Word(s[i]), 0); PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0); end; end; |
#2
|
|||
|
|||
OLE Automation.
Код:
uses ComObj, ... procedure TForm1.SpeedButton4Click(Sender: TObject); Var W : variant; begin W:=CreateOleObject('Word.Application'); W.Visible:=true; W.Documents.Add; W.ActiveDocument.Range.InsertAfter('Hello Word'); end; |
#3
|
||||
|
||||
Спасибо конечно, но это не то...
|
#4
|
|||
|
|||
pesi, листик Word отличается от Блокнота как минимум классом окна. В моем MS Office XP этот класс — «_WwG». В других версиях Word смотрите сами, какой класс окна. Все остальное можете делать (почти) так же, как в случае с Блокнотом.
Код:
... var Form1: TForm1; WordDoc: HWND; function EnumChildWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall; implementation {$R *.dfm} function EnumChildWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall; const WordDocClass = '_WwG'; var WndClassName: PChar; begin Result := True; GetMem(WndClassName, 255); try GetClassName(hndl, WndClassName, 255); if StrPas(WndClassName) = WordDocClass then begin WordDoc := hndl; Result := False; end; finally FreeMem(WndClassName, 255); end; end; procedure TForm1.Button1Click(Sender: TObject); var wnd: HWND; i: Integer; s: string; begin WordDoc := 0; wnd := FindWindow(nil, PChar('Документ1 - Microsoft Word')); if wnd <> 0 then begin EnumChildWindows(wnd, @EnumChildWndProc, 0); if WordDoc <> 0 then begin s := 'Hello'; for i := 1 to Length(s) do PostMessage(WordDoc, WM_CHAR, Word(s[i]), 0); PostMessage(WordDoc, WM_KEYDOWN, VK_RETURN, 0); end else ShowMessage('Word list is not found!'); end else ShowMessage('MS Word is not found!'); end; |
#5
|
||||
|
||||
Nyctos Kasignete, большущее - пребольшущие вам спасибо.
|