Заставить угол рабочего стола активировать заставку - PullRequest
4 голосов
/ 24 декабря 2011

Я пытаюсь написать простое приложение для активации моей заставки, когда мышь находится в верхнем правом углу экрана.Я нашел ответ на управление скринсейвером из C #, но у меня возникли проблемы при разработке способа проверки типа «горячего угла» для положения мыши.Это единственная часть, с которой я застрял, любая помощь будет оценена.

Это активирует заставку

[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
    private static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int  lParam);

private const int SC_SCREENSAVE = 0xF140;
private const int WM_SYSCOMMAND = 0x0112;

public static void SetScreenSaverRunning()
{
  SendMessage(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);
}

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

Вы можете использовать класс System.Windows.Form.Screen для получения текущего разрешения (посмотрите на этот ответ ).Затем используйте Cursor.Position.Property, чтобы определить, где находится курсор в данный момент (т. Е. Находится ли он в границах некоторого предопределенного прямоугольника, который должен его активировать).

1 голос
/ 24 декабря 2011

Я сделал то же самое, только он загружается в верхнем левом углу. Я просто сделал размер формы 1px на 1px без рамки и просто активировал заставку, когда мышка остается над формой в течение секунды. Чтобы сделать это таким образом, вам нужно найти все способы сохранить форму поверх всего.

Другим вариантом будет перехват мыши и просто наблюдение за (0,0) положением мыши или за верхним правым - (0, screen.width)

0 голосов
/ 08 января 2015

Вы также можете попробовать ScrHots от Lucian Wischik.Он бесплатен и делает именно то, что вам нужно, а также имеет «горячие углы» для возможности «никогда не активировать заставку».Все четыре угла могут быть запрограммированы для выполнения любой функции.Я использовал его годами, и он отлично работает.

http://www.wischik.com/scr/savers.html (ScrHots3, в разделе «Утилиты»)

Надеюсь, это кому-нибудь поможет.

...