[C#] plakken in actief scherm

Pagina: 1
Acties:

  • Woef
  • Registratie: Juni 2000
  • Niet online
Ik heb een programma gemaakt dat een XML-bestand uitleest. Dit programma plaatst de gewenste data op het klembord. Nu wil ik graag dat dit programma op de achtergrond draait en dat als ik op een toetscombi druk (bijv alt + F6) dat er tekst geplakt wordt in het het actieve scherm ( een ander programma dus).
Welke functie moet ik aanroepen iets te plakken in het actieve scherm?
Ik heb al een poging gedaan met
code:
1
ActiveControl.Text = "hello world"

maar dan krijgt een button in het door mij gemaakt programma de tekst "hello world".
Ook heb ik al gelezen dat er enkele problemen zijn met Vista ivm beveiliging. Het programma hoeft alleen te draaien op windows 2000/XP, maar een algehele oplossing zou mooier zijn.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
SendKeys (CTRL+V) is 't makkelijkst; anders moet je naar SendMessage achtige API zaken gaan kijken. Een andere term die je nodig gaat hebben is "Global Hotkey".

Geen dank :Y)

[ Voor 71% gewijzigd door RobIII op 03-09-2009 18:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

RobIII schreef op donderdag 03 september 2009 @ 18:06:
SendKeys (CTRL+V) is 't makkelijkst; anders moet je naar SendMessage achtige API zaken gaan kijken. Een andere term die je nodig gaat hebben is "Global Hotkey".

Geen dank :Y)
SendKeys werkt lang niet altijd, ik heb hier laatst ook mee moeten werken en er zijn aardig wat programma's die ondersteunen dat niet.

'You like a gay cowboy and you look like a gay terrorist.' - James May


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Phyxion schreef op donderdag 03 september 2009 @ 18:09:
[...]

SendKeys werkt lang niet altijd, ik heb hier laatst ook mee moeten werken en er zijn aardig wat programma's die ondersteunen dat niet.
Vandaar dat ik een alternatief geef ;) Maar 'garantie' dat 't werkt heb je nooit.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Woef
  • Registratie: Juni 2000
  • Niet online
RobIII schreef op donderdag 03 september 2009 @ 18:06:
SendKeys (CTRL+V) is 't makkelijkst; anders moet je naar SendMessage achtige API zaken gaan kijken. Een andere term die je nodig gaat hebben is "Global Hotkey".

Geen dank :Y)
Hotkeys heb ik al klaar.
SendKeys had ik ook al gevonden maar zie nu pas dat die dus ook strings aan kan.
ik dacht dat je alleen commando's kon sturen.
Het werkt inmiddels. Maar zal het op locatie nog even moeten testen.
* Woef is blij met z'n eerste C# applicatie (ook de eerste dag dat ik er mee werk)
toch bedankt :P

  • Down
  • Registratie: Februari 2005
  • Laatst online: 22:29
SendKeys is inderdaad een makkelijke oplossing maar redelijk beperkt. Zoals RobIII zegt kun je met de win32 api (SendMessage en/of PostMessage) ook berichten sturen naar windows die bijvoorbeeld niet active zijn. Die windows zou je dan kunnen vinden met b.v. FindWindow en FindWindowEx. Daarvoor zul je wel user32.dll moeten importeren. Zie ook www.pinvoke.net :) (bv http://pinvoke.net/default.aspx/user32.PostMessage)

Dit overigens puur ter extra info ;)

Mother north, how can they sleep while their beds are burning?

Pagina: 1