Moskus Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 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
GeirGrusom Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 (endret) 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 31. mai 2010 av GeirGrusom Lenke til kommentar
Moskus Skrevet 31. mai 2010 Forfatter Del Skrevet 31. mai 2010 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... Lenke til kommentar
GeirGrusom Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 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. Lenke til kommentar
Moskus Skrevet 1. juni 2010 Forfatter Del Skrevet 1. juni 2010 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
Wattengård Skrevet 3. juni 2010 Del Skrevet 3. juni 2010 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... -C- Lenke til kommentar
Moskus Skrevet 3. juni 2010 Forfatter Del Skrevet 3. juni 2010 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
morten242 Skrevet 5. juni 2010 Del Skrevet 5. juni 2010 Kjør en Alt+TAB så går den tilbake til vinduet som var, deretter kan du vel sjekke hva vinduet heter? Lenke til kommentar
Moskus Skrevet 6. juni 2010 Forfatter Del Skrevet 6. juni 2010 Det fungerer nok, men nydelig er det ikke... Men Geirs løsning fungerte. Sjekk prosess-IDen før vinduet dukker opp. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå