Programa za vruska s Word

9 отговора 272 прегледа
#1

Programa za vruska s Word

Hi, programiram na Delphi 5. Izkam da napravia programa, koieto da stoi vuv fonov re}|{im i da sledi koga che se natisne bytona za pe4at v Word i kato tova stane da svur6i opredeleno nechto. Neznam kak da nakaram moiata programa da sledi za tova. Dryg variant e tia da sledi za zaiavki do printera, no i tova neznam kak da napravia. Ako niakoi mo}|{e da mi ka}|{e kak to4no da go napravia ili sait s primeren kod za tova chte my buda mnogo blagodaren.

P.S. Printera e mre}|{ov, no misli 4e tova ne e ot zna4enie

Отговор
в отговор на vasil_fx #2

Re: Programa za vruska s Word

mo}|{e li da ka}|{a da ne pi}|{e}|{ taka bukwata }|{ ?

ne ti li wyrshat rabota print spooler API funkciite?
ima niakakyw examlpe PRINTMON w MSDN...
predpolagam che ne e problem da wikash API funkcii w Delpi

Отговор
в отговор на vasil_fx #3

Re: Programa za vruska s Word

ако можеш да вземеш Application обекта на Word, най-лесно е да се вържеш към DocumentBeforePrint и там да правиш каквото ти трябва.

стой та гледай
Отговор
в отговор на lndependent #4

Re: Programa za vruska s Word

Hi, mo}|{E6 li da mi ka}|{e6 ot kude moga da si nameria primeren cod za tova. Zachtoto taka kato mi go kazva6 nichto ne razbiram. Predvaritelno ti blagodaria.

Отговор
в отговор на vasil_fx #5

Re: Programa za vruska s Word

присъединявам се към молбата на колегата да пишеш по някой по-нормален начин.
а щом ти трябва код - отиваш в google групите или на codeguru.com или programmersheaven.com или още поне десетина места, които ме мързи да ги търся.

стой та гледай
Отговор
в отговор на vasil_fx #6

Re: Programa za vruska s Word

ако помолиш по нормален начин ще ти кажа аз (тоя номер става с ROT и Word Automation)


Отговор
в отговор на az #7

Re: Programa za vruska s Word

OK. може ли някой да ми каже как мога да го направя това. Предварително ви благодаря.

Отговор
в отговор на vasil_fx #8

Re: Programa za vruska s Word

[линк]
search.microsoft.com/gomsuri.asp?n=1&c=rp_Results&siteid=us&target=[линк]

IRunningObjectTable *pTable;
HRESULT hr;
try
{
if(!FAILED(GetRunningObjectTable(0, &pTable)))
{
IEnumMoniker* pEnum;
if(!FAILED(pTable->EnumRunning(&pEnum)))
{
IUnknown* pUnknown;
IMoniker* pCurMoniker;
ULONG lFetched = 0L;
while (pEnum->Next(1, &pCurMoniker, &lFetched) == S_OK)
{
if(!FAILED(pTable->GetObject(pCurMoniker, &pUnknown)))
{
Word::_Application *pWordApplication=NULL;
if(!FAILED(pUnknown->QueryInterface(__uuidof(Word::_Application), (void**)&pWordApplication)))
{
pWordApplication->Quit(); //:)
}
}
}
}
}
}
catch (_com_error& e)
{
TRACE(e.ErrorMessage());
}


този пример е за VC++, след това се връзваш към горепосочения event DocumentBeforePrint, но това как става в Delphi незнам

Отговор
в отговор на az #9

Re: Programa za vruska s Word

Добре обаче на мен ми трябва за Delphi.

Отговор
в отговор на vasil_fx #10

Re: Programa za vruska s Word

uses
Windows, Messages, SysUtils, SHDocVw, ComObj, ActiveX, MSHTML, StrUtils;

function GetWord: string;
var
WordApp: Variant;
begin
try
WordApp := GetActiveOleObject('Word.Application');
Result := WordApp.Selection.Range.Text;
except
Result := '';
end;
end;

Eto tova gepi teksta na nqkoi aktiven word prozorec. podobno e i zadavaneto na tova za printera. sorry, no trqbva sam da porabotish. tova za izbroqvaneto na vsi4ki OLE ot C++ e mnogo cenno i trqbva da se vmukne v tozi kod. drugata promqna e da se prikachish kum onova... PrintBegin.

by Waz Gaa
[email protected]
Отговор