/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
At fange beskeder til et vindue i Java
Fra : Toke Eskildsen


Dato : 15-10-03 13:17

Jeg har en maskine med et gammelt Delphi program der sender en
broadcast med en måleværdi ud i Windows. Så vidt jeg kan forstå
Windows' beskedsystem, betyder det at alle vinduer kan lytte efter
sådanne beskeder og reagere på dem hvis de vil.

Når jeg kigger i Swing API kan jeg kun finde faste begivenheder, såsom
lukning af vinduet, flytning, minimering o.l. Jeg vil gerne opsnappe
beskeder med id $0C010 og den medfølgende værdi.

Når jeg søger på nettet ser det ud til at en gængs metode er at lave et
lille c-program og indkapsle den med JNI, men det virker noget
omstændigt. Nogen bud på en nem måde at opsnappe sådanne beskeder på?

 
 
Lars Dam (15-10-2003)
Kommentar
Fra : Lars Dam


Dato : 15-10-03 18:41

On Wed, 15 Oct 2003 12:17:11 +0000 (UTC)
Toke Eskildsen <darkwing@daimi.au.dk> wrote:

> Jeg har en maskine med et gammelt Delphi program der sender en
> broadcast med en måleværdi ud i Windows. Så vidt jeg kan forstå
> Windows' beskedsystem, betyder det at alle vinduer kan lytte efter
> sådanne beskeder og reagere på dem hvis de vil.
>
> Når jeg kigger i Swing API kan jeg kun finde faste begivenheder, såsom
> lukning af vinduet, flytning, minimering o.l. Jeg vil gerne opsnappe
> beskeder med id $0C010 og den medfølgende værdi.
>
> Når jeg søger på nettet ser det ud til at en gængs metode er at lave et
> lille c-program og indkapsle den med JNI, men det virker noget
> omstændigt. Nogen bud på en nem måde at opsnappe sådanne beskeder på?

Nej. Brug den angivne JNI metode. Tænk på at java er platformsuafhængigt, og at den måde som det foregår på i windows kun gælder for windows. Så derfor er der ingen direkte/nem vej til detr du vil. Og dog der findes et java bibliotek der hedde coroutine som måske kan hjælpe dig noget af vejen.

http://www.nevaobject.com/products.htm

vh. ld


Toke Eskildsen (15-10-2003)
Kommentar
Fra : Toke Eskildsen


Dato : 15-10-03 21:50

Lars Dam wrote:

[Snip Fange brugerdefinerede beskeder til vinduer?]

> Nej. Brug den angivne JNI metode. Tænk på at java er
> platformsuafhængigt, og at den måde som det foregår på i windows
> kun gælder for windows.

Nogen lignende kunne man vel sige om så mange andre ting i Java?

Beskeder til vinduer er jo også at programmet skal lukkes, at
størrelsen på vinduet er ændret osv: Beskeder med en bestemt ID.
Et brugerdefineret broadcast i Windows benytter blot en ID der ligger
i et afgrænset område reserveret til den slags.

> Så derfor er der ingen direkte/nem vej til detr du vil.

Jeg leder nok lidt endnu før jeg giver op og laver en wrapper.

> Og dog der findes et java bibliotek der hedde
> coroutine som måske kan hjælpe dig noget af vejen.

Mjaeh... Det er i hvert fald en pænere måde at gøre det på end jeg har
set andre steder, men jeg kommer ikke udenom at skulle lave et ikke-
Java program (eller DLL) til at lytte efter broadcasts. Tak for hintet.
--
Toke Eskildsen - http://ekot.dk/

Toke Eskildsen (20-10-2003)
Kommentar
Fra : Toke Eskildsen


Dato : 20-10-03 11:39

Lars Dam <larsdam@post2.tele.dk> wrote

> Brug den angivne JNI metode.

Nå, det blev til at jeg lavede et lille Delphi program der lytter efter
Windows Messages med en given ID og sender dem videre til en port med
UDP. Det gør også det hele lidt mere fleksibelt da Java programmet ikke
behøver køre på den maskine der opsamler temperaturen.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste