Gå til innhold

Globale hurtigtaster, eks.Play, Pause, Next & Last


Anbefalte innlegg

Skrevet

Er det mulig å skrive et program som kan bruke hurtigtastene man finner på en del keyboard som play, pause, last og next? Disse styrer vanligvis programmer som WMP, Winamp og tilsvarende.

 

Jeg lager en liten videospiller og det hadde vært greit om den kunne bruke disse knappene.

 

På forhånd takk for hjelpen! :)

Videoannonse
Annonse
Skrevet (endret)
       private void Form1_KeyUp(object sender, KeyEventArgs e)
       {
           if (e.KeyCode == Keys.MediaNextTrack)
             ;// blah
           if (e.KeyCode == Keys.MediaStop)
             ;// blah
       }

Endret av jorn79
Skrevet

Oh, ligger de der? Det visste jeg ikke, takker og bukker! :)

 

Men hva skal til for å gjøre dem "globale"? Programmet vil vel neppe reagere på det hvis det ikke har fokus...

 

La oss si at jeg skriver i Word. Jeg vil skippe til neste sang og trykker Next på tastaturet. Kan det ordnes?

Skrevet (endret)

Ikke direkte rett frem men det kan gå! Takk! :)

 

Desverre ser det ut som om eksempel-programmet ikke reagerer på Play/Pause, Next og Last, men det får vi ta som det kommer...

Endret av moskus
Skrevet
Ikke direkte rett frem men det kan gå! Takk! :)

 

Desverre ser det ut som om eksempel-programmet ikke reagerer på Play/Pause, Next og Last, men det får vi ta som det kommer...

7088095[/snapback]

 

 

Si ifra om du får til noe fornuftig da :)

Skrevet

Tipper det "enkleste" er å lage en C++ wrapper eller noe lignende, som catcher de knappene, og sender det videre dit du vil?

 

Men det blir straks litt mer avansert.

Skrevet

Som jeg nettopp skrev til Moskus på msn:

 

problemet er jo å lage en "listener" i .net, da .net befinner seg litt i "etasjen over"

Med tanke på "nivåer" (høynivå, lavnivå, osv...)

Skrevet

Eureka! :D

 

Men jeg skal innrømme at jeg er lat. Jeg er ikke god nok i hverken VB.net eller C# til å oversette det prosjektet fra C# til VB, så jeg jukset litt, men det fungerer jo. Bare prøv å argumentere mot suksess! Ha! :p

 

For dem som måtte lure:

Jeg lagde et C#-prosjekt som et Class Library, la til ""UserActivityHook.cs" og kompilerte. Så lot mitt VB-prosjekt referere til C#-prosjektet, og kunne da uten problemer hente ut tastetrykk og mus-posisjon i VB.net. :)

 

 

 

    Private Sub fmrMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       actHook = New UserActivityHook
       actHook.Start()
       AddHandler actHook.KeyDown, AddressOf Me.MyKeyDown
   End Sub


   Public Sub MyKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
       Select Case e.KeyCode
           Case Is = Keys.MediaPlayPause
               PlayPauseStream()
           Case Is = Keys.MediaNextTrack
               NextTrack()
           Case Is = Keys.MediaPreviousTrack
               LastTrack()
       End Select
   End Sub

Skrevet
nyttig... eller... om ikke nyttig, så i alle fall morsomt :p hehe.

 

Godt når du paster løsningen også moskus... (feil språk da, men *mumlemumle*) ;)

7094346[/snapback]

Nyttig for meg, iallfall. Og så vet jeg at det er enkelt å lage globale hurtigtaster til andre programmer. :)

 

Og språket er jo helt riktig. ;)

Du burde tilogmed være fornøyd ettersom jeg faktisk måtte kode bittelitt i C# for å få det til. :p

 

 

 

 

Det eneste problemet nå er at tastaturet jeg bruker på jobb ikke sender "Keys.MediaPlayPause" når jeg trykker på den knappen.... :mad:

Skrevet
Det eneste problemet nå er at tastaturet jeg bruker på jobb ikke sender "Keys.MediaPlayPause" når jeg trykker på den knappen.... :mad:

7094365[/snapback]

Catch alle keystrokes og print hvilken knapp som trykkes, så ser du kjapt hvilken kommando denne sender :)

 

Jeg er ikke fornøyd før hele prosjektet ditt er i C#. Det blir infisert av satans verk (aka. VB)

Skrevet
Det eneste problemet nå er at tastaturet jeg bruker på jobb ikke sender "Keys.MediaPlayPause" når jeg trykker på den knappen.... :mad:

7094365[/snapback]

Catch alle keystrokes og print hvilken knapp som trykkes, så ser du kjapt hvilken kommando denne sender :)

Det er akkurat det: Det blir tydeligvis ikke sendt noen tastetrykk!

J*vla Logitech tastatur.... :nei:

 

 

Jeg er ikke fornøyd før hele prosjektet ditt er i C#. Det blir infisert av satans verk (aka. VB)

Du nærmer deg grensen for "patetisk", men det er du vel kanskje klar over... :p

Skrevet
Jeg er ikke fornøyd før hele prosjektet ditt er i C#. Det blir infisert av satans verk (aka. VB)

Du nærmer deg grensen for "patetisk", men det er du vel kanskje klar over... :p

7094442[/snapback]

Kan jeg aaaaldri tenke meg...

Skrevet (endret)

Suksess igjen!

 

Å avslutte det "stygge programmet" til Logitech gjorde jobben (det var sikkert skrevet i C#, ikke sant Manfred? :p )

Endret av moskus

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...