[java] switchen tussen applicaties

Pagina: 1
Acties:

  • tommy320
  • Registratie: Februari 2000
  • Laatst online: 12-04 12:40
Ik heb in mijn applicatie een knop zitten die een extern programma start via Runtime.exec() dat werkt allemaal prima. Nu is mijn probleem dat als iemand twee keer op die knop klikt het programma 2 keer gestart wordt. Dit heb ik ondervangen door een vlagetje te zetten zodat het programma maar 1 keer gestart kan worden. Ik wil echter graag dat als ze op die knop drukken dat dan wel het scherm van die andere applicatie naar voren komt.

Weet iemand of dit kan ? Mijn gebruikers zitten allemaal op Windows dus over platform onafhankelijkheid hoef ik me niet druk te maken (jammer genoeg).

Bastiaan

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 15:39

pjvandesande

GC.Collect(head);

Je kunt in Windows gewoon de running processes opvragen, hoe dit in Java precies kan kun je even opzoeken en dan is dit misschien wel het antwoord.

  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 04-02 10:03
Misschien niet echt de oplossing die je zoekt maar op sommige sites
wordt de knop disabled als er 1 x op geklikt is. Misschien is dit voor jou ook een optie.
Vind dit persoonlijk wat gebruiksvriendelijker. Succes!

Twitter @cmeerbeek / Halo Waypoint Profile


  • tommy320
  • Registratie: Februari 2000
  • Laatst online: 12-04 12:40
Beide zijn niet echt een antwoord op mijn vraag.

Ik wil dus dat als de gebruiker op mijn knop klikt en het programma is al open dat dan het andere programma actief wordt (dat het naar de voorgrond komt en dan het focus krijgt)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Zijn die andere applicaties ook java applicaties?

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
Als ik jou was zou ik op zoek gaan naar een JNI wrapper voor de windows API. Je moet het window een focus message sturen en voor zover ik weet biedt Java daarvoor geen standaard interface daar dit nogal systeem specifiek is.

https://niels.nu


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:28

Robtimus

me Robtimus no like you

Je zal idd met native code moeten gaan werken, dit soort dingen is niet mogelijk met standaard Java. Of je die native code zelf schrijft of download vanaf het internet mag je zelf bepalen natuurlijk ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Sterker nog: Onder Windows XP kun je een applicatie niet naar de voorgrond sturen. Het enige wat mogelijk is, is om op de task bar een indicatie te geven (knipperend icon). Je kunt natuurlijk wle jezelf naar de achtergrond sturen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • tommy320
  • Registratie: Februari 2000
  • Laatst online: 12-04 12:40
De andere programmas zijn gewone windows programma's, ze zijn niet intergreerbaar in mijn applicatie maar ze zijn wel handig om vanuit mijn applicatie op te starten.

Mag je ook geen applicaties naar de voorgrond halen die je zelf gestart hebt ?

  • bvp
  • Registratie: Maart 2005
  • Laatst online: 16-04 19:03

bvp

Mag je ook geen applicaties naar de voorgrond halen die je zelf gestart hebt ?
Voor zo ver ik weet is dat je geen externe applicaties naar de voorgrond kan halen.
Wat je misschien wel kunt doen is het externe programma starten. Heeft dat programma dan na jouw javaprogramma altijd de eerste focus?
In dat geval hoef je namelijk alleen nog maar jouw programma naar de achtergrond te sturen met bijv.: this.toBack();

Dan heeft het opgestarte programma automatisch de focus.

  • qless
  • Registratie: Maart 2000
  • Laatst online: 14:16

qless

...vraag maar...

Alarmnummer schreef op maandag 10 oktober 2005 @ 17:07:
Zijn die andere applicaties ook java applicaties?
Is er een speciale "truck" om vanuit een java applicatie een andere java applicatie jar te starten?

Website|Air 3s|Mini 4 Pro|Avata 2|Canon R6|Canon 5d2|8 fisheye|14f2.8|24f2.8|50f1.8|135f2|10-22|17-40|24-105|70-300|150-600


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:28

Robtimus

me Robtimus no like you

qless schreef op dinsdag 11 oktober 2005 @ 10:52:
Is er een speciale "truck" om vanuit een java applicatie een andere java applicatie jar te starten?
Yep.
Zoals je waarschijnlijk wel weet heeft een JAR een main class nodig om te kunnen starten dmv javaw -jar <jarfile> of java -jar <jarfile>. Laten we deze class eventjes package.Main noemen.

Wat je dan moet doen is die JAR in je classpath zetten, en de volgende code aanroepen:
Java:
1
package.Main.main(new String[] {}});

Indien nodig kun je zelfs het array vullen met data. Handig he? ;)

Dit is trouwens wat je virtual machine ook voor je doet

[ Voor 9% gewijzigd door Robtimus op 11-10-2005 13:02 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1