Ich habe gesucht, und ich habe nicht gefunden, wie ich das von C# machen würde.C# - Senden von Nachrichten an Google Chrome von C# -Anwendung
Ich wollte es machen, so konnte ich Google Chrome sagen gehen nach vorne, Zurück, Neue Registerkarte öffnen, Tab schließen, Neues Fenster öffnen und Fenster schließen von meinem C# -Anwendung.
habe ich etwas ähnliches mit WinAmp
[DllImport("user32", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);
und ein paar andere. Aber ich weiß nicht, welche Nachricht ich senden soll oder wie ich finde, an welches Fenster ich sie weiterleiten kann.
Also könnte mir jemand zeigen, wie ich diese 6 Befehle von C# an Chrome senden würde? Danke
BEARBEITEN: Ok, ich werde abgewählt, also vielleicht war ich nicht klar genug, oder Leute nehmen an, dass ich nicht versucht habe, dieses heraus allein herauszufinden.
Zunächst einmal, ich bin nicht sehr gut mit dem ganzen DllImport-Zeug. Ich lerne immer noch, wie alles funktioniert.
Ich fand vor ein paar Jahren die gleiche Idee in Winamp, und ich sah mir meinen Code an. Ich habe es so gemacht, dass ich ein Lied überspringen, zurückgehen, spielen, pausieren und Winamp mit meinem C# -Code beenden konnte. Ich begann durch den Import:
[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);
der Code Dann fand ich diese diese Konstanten für die Nachrichten verwendet verwenden, ich sende.
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;
Ich würde erhalten die Hwnd durch (das Programm, um die Nachricht zu senden):
IntPtr hwnd = FindWindow(m_windowName, null);
dann würde ich eine Nachricht an das Programm senden:
SendMessageA(hwnd, WM_COMMAND, WA_STOP, WA_NOTHING);
I gehe davon aus, dass ich etwas Ähnliches für Google Chrome tun würde. aber ich weiß nicht, was einige dieser Werte sein sollten, und ich googelte herum und versuchte, die Antwort zu finden, aber ich konnte nicht, weshalb ich sie hier fragte. Also meine Frage ist, wie bekomme ich die Werte für:
m_windowName und WM_COMMAND
und dann werden die Werte für die verschiedenen Befehle, vorwärts, zurück, neuen Tab, close tab, neues Fenster, Fenster schließen?
Ich sehe durch, und ich sehe nichts, das mir helfen wird zu erreichen, was ich versuche zu tun. Ich möchte Chrome nicht neu kompilieren. Ich möchte Chrome einfach eine kleine Nachricht schicken, in der es heißt "Geh zurück" oder was auch immer. Ich möchte Chrome überhaupt nicht ändern. Tun Sie alles von C# – Joel