Avatar billede nemezis_aalborg Nybegynder
21. februar 2003 - 16:16 Der er 3 kommentarer og
1 løsning

Winamp Control

Hej,
jeg har lavet et Winamp Control ud fra en guide jeg fandt et eller andet sted (kan ikke huske hvor).
Desværre virker det ikke :(

Jeg får en exception (den i koden nedenunder) fordi den ikke kan finde winduet.. "Winamp v1.x"

Men hvad hedder vinduet så??

Her er koden:
-----------------------------
        public Control()
        {
            // Try to find a Winamp window.
            WINDOW_HANDLER = FindWindow("Winamp v1.x",null);
   
            if(WINDOW_HANDLER == 0)
            {
                // Throw exception if we can not find a Winamp window.
                throw new System.Exception("Could not find a Winamp window!");
            }
        }

        /// <summary>
        ///    The value returned is a 32-bit value representing the window.
        ///    If no window is found, the return value will be 0 and we will
        ///    throw an exception. Since the method mentioned is a native API
        ///    method in the file user32.dll, we somehow need to declare a method
        ///    as having an implementation from a DLL export. This is where the
        ///    DllImport-attribute and the extern keyword is used.
        /// </summary>
        [System.Runtime.InteropServices.DllImport("user32.dll",EntryPoint="SendMessage")]
        private static extern int SendMessage(int _WindowHandler, int _WM_USER, int _data, int _id);

        /// <summary>
        ///    The first argument is of course the file, in which we expect to
        ///    find the method. The second argument, the entrypoint, is the actual
        ///    name of the method. This argument only has to be passed if we want
        ///    to name our extern C# method to something else. This is not the case,
        ///    and the argument is shown mostly for convinience. Note that extern
        ///    methods have to be declared as static and we must use the keyword
        ///    extern.
        /// </summary>
        [System.Runtime.InteropServices.DllImport("user32.dll",EntryPoint="FindWindow")]
        private static extern int FindWindow(string _ClassName, string _WindowName);
-----------------------------
Avatar billede burningice Nybegynder
21. februar 2003 - 19:31 #1
det kommer an på hvilken version af winamp du kører med
Avatar billede nemezis_aalborg Nybegynder
21. februar 2003 - 20:21 #2
Winamp 3... den nye :=)
Avatar billede nemezis_aalborg Nybegynder
21. februar 2003 - 21:46 #3
Ja så har jeg fundet ud af det, så pointene går til mig selv :/

Til andre, der måske gerne vil vide det;

brug WINDOW_HANDLER = FindWindow("klassens navn","vinduets navn");

For den nyeste Winamp er det:
WINDOW_HANDLER = FindWindow("Studio","Winamp3");

Fandt det ved at prøve mig frem, da det ikke rigtig stod noget sted på nettet. Det virker helt perfekt :)
Avatar billede burningice Nybegynder
21. februar 2003 - 22:06 #4
det kunne jeg godt have fortalt dig.. skulle bare lige vide versionsnummeret på din winamp :)... men det var godt at du fik det til at virke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester