Я пытался нарисовать любую вещь на окно рабочего стола с помощью GetDC(GetDesktopWindow)
, как следующий простой программы:Не удалось привлечь на DesktopWindow
#include <windows.h>
int main()
{
TextOut(GetDC(GetDesktopWindow()), 10, 10, TEXT("Test TextOut Tester!!"), 21);
return 0;
}
Это кажется, что мои текущие привилегии пользователя влияют на поведение рисования, я не admin на моем ПК, это причина для этого? есть ли какая-либо документация по этой проблеме? Заранее спасибо
Проблема в том, что окно рабочего стола не принадлежит вам. Нет контрактной документации, которая указывает, что это поддерживаемый сценарий. GDI не регулируется привилегиями. То, что вы делаете, терпит неудачу по другой причине. Полное отсутствие обработки ошибок не будет полезно для выяснения. – IInspectable
Что мне делать? если я попытаюсь создать «TextOut» в созданном окне, это будет успешным, но это не удастся, если вы сделаете это на рабочем столе, так что в чем проблема? даже если возвращаемое значение из 'GetDC' и' GetDesktopWindow' не равно нулю. –
Выполнение этого трудно сделать, не является постоянным между перерисовками и 99,9% времени страшной идеей с лучшими альтернативами (вы должны указать конечную цель). Окно GetDesktopWindow() не является окном, которое вы видите, которое содержит значки, обои и т. Д., То есть syslistview, который вам нужно найти, начиная с GetShellWindow(). –