dave_bulac Ответов: 1

Как лучше всего работать с рабочим столом на языке Си#


Привет, ребята, я начинаю работать над своим проектом, но мне нужно знать, в каком направлении двигаться. В моем проекте мне нужно все время следить за десктопом и замечать , если на рабочем столе появилось что-то интересное для меня, например, я запустил свою программу, а потом просто что-то делаю в Интернете. Я хочу бросать Messagebox каждый раз, когда на рабочем столе появляется логотип Facebook.

Что я уже пробовал:

У меня есть две идеи, как это сделать. Один из способов - сделать скриншоты во время работы программы, а затем в каждом скреншоте искать логотип Facebook, но мне сказали, что делать такие операции долгое время плохо для процессора. Другой способ-использовать AForge Framework, но я не понял, как это сделать. Поэтому, если у кого-то есть еще одна идея, пожалуйста, скажите ее мне.

Richard MacCutchan

Это было бы очень трудно сделать. Обнаружение изменений на рабочем столе означало бы, что вам нужно делать скриншоты почти непрерывно. И каждый раз вам нужно будет сравнивать с предыдущим изображением, чтобы увидеть, отличается ли оно. Затем вам нужно будет каким-то образом найти, где произошло изменение, извлечь его и сравнить с базой данных логотипов и т. д. Звучит как 100-летний проект.

Philippe Mori

Не делай этого... Которые могут вызвать значительное воздействие на производительность.

BillWoodruff

Как только что сказали Ричард и Филипп, это не очень хорошая идея. Возможно, вы можете создать какую-то программу, которая следит за запуском браузера и взаимодействует с доступом к FaceBook, но я предсказываю, что это будет технически сложно (если это возможно).

dave_bulac

Я хочу сделать примерно что-то вроде этого : в моей форме Windows у меня есть логотипы Facebook, Twitter, Google, Yahoo ..... И я почти знаю, где будут появляться эти логотипы на рабочем столе(я знаю координаты). Если программа обнаружит некоторые из этих логотипов, то в windows Form этот логотип придется отключить.

1 Ответов

Рейтинг:
1

Eric Sundquist

Я не уверен из вашего вопроса, если вы говорите об элементе на рабочем столе пользователя Windows. Но если это так, то что-то вроде этого подскажет вам, есть ли на рабочем столе значок быстрого доступа:

bool foundFacebook = false;
var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var files = Directory.GetFiles(desktop);
foreach (var file in files)
{
    var fileName = Path.GetFileName(file).ToLower();
    foundFacebook |= fileName.Contains("facebook");
}