Gå til innhold

Hvilket program hadde fokus sist?


Anbefalte innlegg

Har prøvd å søke så godt jeg kan, men jeg er ikke i stand til å finne det. Kanskje det ikke finnes?

 

Jeg trenger en API for å finne ut hvilket program som hadde fokus rett før mitt program starter. Er det i det hele tatt mulig?

 

 

På forhånd takk for hjelpen! :)

Lenke til kommentar
Videoannonse
Annonse

Etter det jeg vet er det ingen historie på hvilke vinduer som har vært aktive, men du ha derimot GetForegroundWindow

 

[DllImport("user32")]
public static extern IntPtr GetForegroundWindow();

Public Declare Auto Function Lib "user32" GetForegroundWindow() As IntPtr

 

edit: for å finne hvilken prosess som eier vinduet kan du bruke GetWindowThreadProcessId

[DllImport("user32")]
public static uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

Public Declare Auto Function Lib "user32" GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer

Endret av GeirGrusom
Lenke til kommentar

Så det er egentlig ikke mulig å finne hvilket vindu programmet mitt "stjal" fokus fra?

 

Hvis jeg bruker GetForegroundWindow får jeg vel bare mitt eget program...

Ikke hvis du sjekker før vinduet ditt dukker opp.

Det er jo alltid verdt et forsøk... :)

 

Problemet er at vinduet egentlig ikke skulle hatt fokus, dvs. i den forrige versjonen av programmet fungerte det optimalt. Det var et lite program som kjørte i bakgrunnen og trigget på innkommende samtale til telefonsentralen. Det dukket opp et lite informasjonsvindu (á la Messenger) nederst over klokka med innringers nummer, navneoppslag via GuleSider og om det var direkte til meg eller sentralbordet.

 

Med den nye telefonsentralen fikk jeg dessverre ikke mitt program til å fungere lenger, så det må startes via PIMphony. Og der tror jeg problemet ligger... :(

Lenke til kommentar

Vil du ikke bare få enten skrivebords"vinduet", startmenyen eller et explorer-vindu som resultat? Du fjerner jo fokus fra aktivt vindu hvis du aktivt starter programmet ditt...

Ikke hvis det startes av et program som kjører i bakgrunnen. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...