Toon posts:

[.NET] bewerken actief word document

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hai,

Ik heb flink gegoogled en op got gezocht maar kan niks vinden over wat ik wil.
Ik ben bezig met een app die officedocumenten op sleutelwoorden afzoekt en deze sleutelwoorden v ervangt door relevante data. Dit werkt

Nu wil ik dit zelfde doen maar dan met het ACTIEVE word document wat op dit moment openstaat. Het programma moet dus geen template openen maar gebruik maken van het op dit moment geopende word document.

Iemand enig idee hoe dit is te realiseren ?

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 14:06

ThunderNet

Flits!

Dan moet je opzoek naar de hwnd van het huidige word document....
Door middel van die hwnd, kan je weer opdrachten versturen aan het element wat het document bevat :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

Topicstarter
En hoe zoek ik de hwnd van het huidige word document ?

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 14:06

ThunderNet

Flits!

je kunt met wat API calls, de huidige actieve window opvragen dacht ik.
Dan heb je de hwnd van de actieve window.
En dan moet je opzoek naar in van de childs van die hwnd, namelijk het 'edit' gedeelte.

it's all in the API's :9

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

Topicstarter
Heb je niet een heeeeeeeel klein voorbeeldje ?

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 14:06

ThunderNet

Flits!

Verwijderd schreef op woensdag 10 augustus 2005 @ 17:43:
Heb je niet een heeeeeeeel klein voorbeeldje ?
Ga eens spelen met het programmaatje Spy++ (van Microsoft) wordt meegeleverd bij Visual Studio dacht ik :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

Topicstarter
Klopt inderdaad ja. Heb ik mee gerommeld maar ben benieuwd naar de hwnd van het actieve word document en hoe ik daar dan mee kan searchen en replacen

  • ThunderNet
  • Registratie: Juni 2004
  • Laatst online: 14:06

ThunderNet

Flits!

Verwijderd schreef op dinsdag 11 oktober 2005 @ 12:44:
Klopt inderdaad ja. Heb ik mee gerommeld maar ben benieuwd naar de hwnd van het actieve word document en hoe ik daar dan mee kan searchen en replacen
dat kan vast met creatief gebruik van de functie findwindow... er moet ook wel een api-call zijn om de actieve window te achterhalen :)

Heb je liever vooraf, of achteraf, dat ik zeg dat ik geen flauw idee heb wat ik doe?


Verwijderd

de hwnd van het actieve document zal een child zijn van de applicatiehwnd, maar hiermee ga je de s&r functie nog niet kunnen aanroepen, dus ik zou dit pad niet verder volgen.
nee, je moet automatie hebben (dmv pio's):
automating office

[ Voor 3% gewijzigd door Verwijderd op 11-10-2005 12:55 ]


Verwijderd

Erm misschien heel debiel hoor maar volgens mij is er een ActiveDocument van het word object aanwezig. Volgens mij kan hij op die manier alle active documenten doorlopen zonder te kutten met HWND's en dergelijke... Heb het niet geprobeerd maar zou moeten werken volgens mij.

http://msdn.microsoft.com...eDocument1_HV05209592.asp

(Dit is de VBA uitleg maar volgens mij werkt dit ook in .NET, bijna 100% zeker).

Verwijderd

Topicstarter
Tony L dat stukje code werkt opzich wel maar alleen voor documenten die echt vanuit je applicatie zijn geopend. Zodra er dus al word documentjes op mn taakbalk openstaan ziet hij deze helaas niet

Verwijderd

Is dat ook zo wanneer je niet een nieuwe wordapp aanmaakt maar de huidige die ge-opent is pakt?
Ik kan me herinneren dat je de huidige app kan pakken en daar mee werken of werkt dat niet / is dat niet mogelijk?

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Gebruik VBA in je VB.net code, je moet wel van allerlei dingen gaan importeren dan.
Maar dat zal dus zeker werken.

SvennieG


Verwijderd

Topicstarter
thanx voor zover weer. ik ga ff zoeken

  • SlowMeDown
  • Registratie: Mei 2003
  • Laatst online: 15-04 08:14
Kun je niet verbinden met de huidige Word instance, zonder zelf een nieuwe op te starten? Dan kun je gewoon door de Documents Collection lopen alsmede de ActiveDocument property gebruiken. Ook voor een Word instantie die niet door jou is aangemaakt.

Kijk eens naar:
code:
1
Dim WordApplication As Object = GetObject(, "Word.Application")

Dit gebruik ik om vanuit een executable met een bestaande Word instance te verbinden.

Verwijderd

Topicstarter
SlowMeDown. Als je een meisje was had ik je gezoend :) Dit is precies wat ik moet hebben.
En het mooie is dat hij de search en replace het op het geselecteerde word document toepast

Verwijderd

Topicstarter
Is het nu ook mogelijk om te controleren of er een instance bestaat ?

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

dan zul je toch weer moeten de draaidende processen overlopen..

CreateObject() maakt zowiezo een nieuw object aant
GetObject() geeft het bestaande object terug, of indien geen bestaand aanwezig een nieuw.

ASSUME makes an ASS out of U and ME

Pagina: 1