Я пытаюсь создать приложение в C#, используя которое мне нужно изменить BackColor / Forecolor некоторых определенных c элементов управления в другом процессе / приложении. Например, у меня на компьютере запущено несколько приложений. Когда я запускаю новое приложение C# (которое не имеет пользовательского интерфейса), задний цвет / передний цвет нескольких элементов управления в других приложениях должен быть изменен на новые цвета, которые я установил. И когда я закрываю приложение, цвета должны быть сброшены до исходных цветов. Я попробовал SetTextColor, SetBkColor windows apis от gdi32, но они не работают. Не могли бы вы подсказать, как мне этого добиться?
Примечание. Координаты элементов управления, для которых необходимо изменить цвета, уже отмечены, и я использую API WindowFromPoint для получения дескриптора элемента управления.
Это код, который Я пытался.
point = new Point(1340, 144);
IntPtr hWnd = DllImports.WindowFromPoint(point);//this is a button control in one of the applications
if (hWnd != IntPtr.Zero)
{
IntPtr wDC = DllImports.GetDC(hWnd);
int result = DllImports.SetBkMode(wDC, TRANSPARENT);
int i = DllImports.SetTextColor(wDC, ColorTranslator.ToWin32(Color.Red));
i = DllImports.SetBkColor(wDC, ColorTranslator.ToWin32(Color.Yellow));
result = DllImports.SetBkMode(wDC, OPAQUE);
}
Заранее спасибо