Я искал вокруг, и я не нашел, как это сделать с С#.
Я хотел сделать так, чтобы Google Chrome мог перейти Вперед, Назад, Открыть новую вкладку, Закрыть Tab, Открыть новое окно и закрыть окно из моего приложения С#.
Я сделал что-то подобное с WinAmp, используя
[DllImport("user32", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);
и несколько других. Но я не знаю, какое сообщение отправить или как найти, в каком окне передать это, или что-нибудь еще.
Так может кто-нибудь показать мне, как я отправлю эти 6 команд в Chrome с С#? спасибо
EDIT: Хорошо, меня проголосовали, так что, возможно, я не был достаточно ясен, или люди предполагают, что я не пытался это понять сам по себе.
Во-первых, я не очень хорош со всем материалом DllImport. Я все еще изучаю, как все это работает.
Я нашел, как сделать ту же идею в winamp несколько лет назад, и я смотрел на свой код. Я сделал это, чтобы я мог пропустить песню, вернуться, сыграть, приостановить и остановить winamp из моего кода на С#. Я начал с импорта:
[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);
Затем код, который я нашел для использования, использовал эти константы для отправляемых сообщений.
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;
Я бы получил hwnd (программа для отправки сообщения):
IntPtr hwnd = FindWindow(m_windowName, null);
то я бы послал сообщение этой программе:
SendMessageA(hwnd, WM_COMMAND, WA_STOP, WA_NOTHING);
Я предполагаю, что сделаю что-то очень похожее на это для Google Chrome. но я не знаю, каковы некоторые из этих ценностей, и я искал поиски ответа, но я не мог, поэтому я спросил здесь. Поэтому мой вопрос заключается в том, как получить значения для:
m_windowName и WM_COMMAND
а затем значения для разных команд, переслать, назад, новую вкладку, закрыть вкладку, новое окно, закрыть окно?