Toon posts:

[VB.NET] Externe events afvuren.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik zoek nu al een hele tijd hoe ik een event in een ander programma kan afvuren.
Dus simpel gezegd zou ik willen dat mij programma bijvoorbeeld op een knop drukt in een ander programma.

Kan iemand mij op weg helpen, of zelfs gewoon zeggen waarop ik moet zoeken in google?

thnx
CC

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoi Cool Cow, en welkom op GoT. :)

En wat heb je zelf al gevonden? Of als je niets gevonden hebt: waar heb je op gezocht? Lees ook P&W FAQ - De "quickstart" even door om te zien wat we hier in Programming & Webscripting van een topicstart verwachten, want deze topicstart is wat mager. :)

Probeer daarna [google=generate mouse event windows api] eens, of eventueel [google=generate mouse events vb.net].

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
ah k, sry daarvoor, even duidelijk uitleggen:

Dus wat ik al gevonden heb die min of meer gerelateerd is:
Reflection, dat is "iets" in VB.NET waarmee men eigenschappen van andere .NET forms kan aanpassen. Dus dat is iets in het genre, maar dat werkt enkel tussen .NET forms en events afvuren lijkt me op het eerste zicht niet mogelijk.
Ten tweede weet ik voor 50% zeker dat dit gebeurt met het aanspreken van klassen van processen/threads en daarnaar kan men het even sturen. Het zoeken van die processen/threads, klassen kan met bv met microsoft spy++. Er zijn nog veel alternatieve tools voor, op google vindt je onder spy++ een hele hoop zo'n programmas.
Nu dit wetende vindt ik nog steeds niet hoe ik die klassen in men code kan gaan aanspreken en hoe ik events kan gaan sturen.

En hetgeen jij bedoeld is in diezelfde zin, maar toch iets anders. Mouse events genereren in VB.NET is vrij simpel, je kan de muis van de pc volledig gaan besturen met slechts enkele lijntjes code.

  • whoami
  • Registratie: December 2000
  • Laatst online: 30-04 15:31
Een button heeft in .NET ook een aantal methods waarmee je z'n events kunt invoken; een button heeft bv. een PerformClick method.

Het probleem is nu wel natuurlijk dat je niet zo maar aan die button kan, want hij is 'private' op je form.

Je zult dus op die form een public method moeten maken waarmee je die event kunt invoken dmv de PerformClick.

Echter, als je zo'n dingenwilt doen, dan duidt dat meestal op een slecht ontwerp...

https://fgheysels.github.io/


Verwijderd

Topicstarter
nja je begrijpt me verkeerd. Ik weet hoe ik verschillende forms in 1 process moet doen communiceren met elkaar, gewoon constructors maken en via de singleton design pattern kan je alles doen wat je wil in alle richtingen...

Maar ik wil dus met een knop in mijn programma een knop bedienen in een ander process die zelfs niet door mij gemaakt is.
Bv, ik wil als ik in mijn programma die knop indruk dat in de windows calculator de + knop wordt ingedrukt. De enige vereiste is dat het programma effectief draait. Maar dat kan je controleren bij de processen op het systeem en het evenueel eerst zelf starten.

Indien je denkt dat zoiets onmogelijk is, kijk dan ff naar het programma Girder op http://www.promixis.com (deze hier waarschijnlijk ook wel bekend zijn). Dit programma is in staat om eender welke event in eender welk programma aan te roepen...
Dat is dus hetgene dat ik ook wil.

Met promixis heb ik ook geprobeerd contact op te nemen, maar die hebben me genegeerd...

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Er zijn een aantal API functions waarmee je andere windows die open staan kunt benaderen en ook events daarop kunt uitvoeren. Ik weet niet precies meer hoe ze heten maar je zult ieder geval de handle van het window moeten achterhalen ( volgens mij iets van GetWindowEx ) en dan kan je daar de losse controls weer van achterhalen en dan events naar het window sturen ( volgens mij iets van SendEvents ofzo ).

Op die manier is het mogenlijk om andere applicaties te bedienen. Ik weet alleen de namen van de functies niet zeker aangezien ik ze niet gebruik maar daar hebben ze de msdn voor uitgevonden.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
ok uw uitleg heeft me weer iets verder geholpen, ben nu alvast zeker dat ik functies moet aanmaken die in user32 library zitten. Daarmee kan ik blijkbaar vensters gaan zoeken, messages zenden enz...
Die functie die jij bedoelde noemt FindWindowEx, enkel ter informatie mocht iemand later ook hetzelfde willen doen en hier komt zoeken.... :)

Nuja, kga ff gaan uitzoeken hoe die user32 in zen werk gaat...

user32.dll api reference: http://www.webtropy.com/articles/art9-2.asp?lib=user32.dll

Alvast bedankt iedereen, het gaat in de goeie richting :D

[ Voor 9% gewijzigd door Verwijderd op 06-09-2005 12:04 ]

Pagina: 1