C# - l'Envoi de messages à Google Chrome à partir de C# de l'application

J'ai cherché partout, et je n'ai pas trouvé comment je pourrais le faire à partir de C#.

Que je voulais faire donc je pourrais dire à Google Chrome pour aller Avant, Retour, Ouvrir un Nouvel Onglet, Fermer l'Onglet, Ouvrir une Nouvelle Fenêtre, et Fermer la Fenêtre à partir de mon application en C#.

J'ai fait quelque chose de similaire avec WinAmp à l'aide de

[DllImport("user32", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);

et quelques autres. Mais je ne sais pas ce message à envoyer ou comment trouver ce que la fenêtre de la passer, ou quoi que ce soit.

Si quelqu'un pourrait-il me montrer comment je pourrais envoyer les 6 commandes de google Chrome à partir de C#? grâce

EDIT:
Ok, je suis arriver a voté vers le bas, donc peut-être que je n'étais pas assez claire, ou les gens sont en supposant que je n'ai pas essayer de comprendre cela sur mon propre.

Tout d'abord, je ne suis pas très bon avec l'ensemble de l'DllImport choses. Je suis encore à apprendre comment tout cela fonctionne.

J'ai trouvé comment faire la même idée dans winamp il y a quelques années, et je regardais mon code. Je l'ai fait afin que je puisse sauter une chanson, revenir en arrière, de lecture, de pause et d'arrêter de winamp à partir de mon code C#. J'ai commencé par l'importation:

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr FindWindow([MarshalAs(UnmanagedType.LPTStr)] string lpClassName, [MarshalAs(UnmanagedType.LPTStr)] string lpWindowName);
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern int SendMessageA(IntPtr hwnd, int wMsg, int wParam, uint lParam);
    [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
    public static extern int GetWindowText(IntPtr hwnd, string lpString, int cch);
    [DllImport("user32", EntryPoint = "FindWindowExA")]
    private static extern int FindWindowEx(int hWnd1, int hWnd2, string lpsz1, string lpsz2);
    [DllImport("user32", EntryPoint = "SendMessageA")]
    private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);

Ensuite le code que j'ai trouvé pour utiliser ce utilisé ces constantes pour les messages que j'envoie.

    const int WM_COMMAND = 0x111;
    const int WA_NOTHING = 0;
    const int WA_PREVTRACK = 40044;
    const int WA_PLAY = 40045;
    const int WA_PAUSE = 40046;
    const int WA_STOP = 40047;
    const int WA_NEXTTRACK = 40048;
    const int WA_VOLUMEUP = 40058;
    const int WA_VOLUMEDOWN = 40059;
    const int WINAMP_FFWD5S = 40060;
    const int WINAMP_REW5S = 40061;

Je voudrais obtenir le hwnd (le programme pour envoyer le message) par:

IntPtr hwnd = FindWindow(m_windowName, null);

alors je voudrais envoyer un message à ce programme:

SendMessageA(hwnd, WM_COMMAND, WA_STOP, WA_NOTHING);

Je suppose que je ferais quelque chose de très similaire à ce pour Google Chrome. mais je ne sais pas ce que certaines de ces valeurs doivent être, et j'ai googlé autour d'essayer de trouver la réponse, mais je ne pouvais pas, c'est pourquoi j'ai demandé ici. Donc ma question est comment puis-je obtenir les valeurs pour:

m_windowName et WM_COMMAND

et puis, les valeurs pour les différentes commandes, avant, retour, nouvel onglet, fermer l'onglet, nouvelle fenêtre, fermer la fenêtre?

InformationsquelleAutor Joel | 2008-09-29