AleXeY1123

На Пикабу
632 рейтинг 5 подписчиков 66 подписок 4 поста 2 в горячем
Награды:
5 лет на Пикабу
358

Отображение имени компьютера и ip-адреса на панели задач1

Всем привет, захотелось мне сделать отображение имени компьютера и его ip-адреса на панели задач. Сразу покажу как это будет выглядеть.

Отображение имени компьютера и ip-адреса на панели задач C++, Программирование, Сисадмин, Эникейщик

Знаю, что есть программа BgInfo, которая выводит информацию на рабочий стол, но по моему это очень неудобно. Вывод на панель задач на много удобнее.


Одним из самых сложных моментов было понять что искать, как оказалось эта часть панели задач называется deskbands и у microsoft уже есть шаблон для вывода информации на нее. Он лежит по этой ссылке. Написан на с++, компилируется в виде dll. Напрямую с гитхаба не скачать, можно скачать отсюда.


Теперь опишу какие переменные за что отвечают.


Название, отображаемое в меню Панели, указывается в файле DllMain.cpp в массиве WCHAR const szName[].

Отображение имени компьютера и ip-адреса на панели задач C++, Программирование, Сисадмин, Эникейщик

Основные изменения производятся в файле DeskBand.cpp. Размеры области для вывода указывается в переменных: pdbi->ptMinSize.x,

pdbi->ptMinSize.y, 

pdbi->ptActual.x, 

pdbi->ptActual.y.


Цвет текста задается в переменной:

dttOpts.crText.


Если оставить строку:

dttOpts.iGlowSize.

Будет эффект светящейся обводки вокруг текста, я ее закомментировал.


В шаблоне microsoft

static WCHAR szContent[] = L"DeskBand Sample";

в этом массиве указывается текст, который будет выведен в deskband. В моем варианте она убрана, пришлось переработать вывод.


Саму dll, как и код, для вывода имени хоста и ip выложил на гитхаб.


Для запуска нужно зарегистрировать dll через командную строку с правами администратора командой regsvr32 ПОЛНЫЙПУТЬ/Deskband_Hostname_Ip_64.dll или regsvr32 ПОЛНЫЙПУТЬ/Deskband_Hostname_Ip_32.dll соответственно.


Затем нажать ПКМ по панели задач -> Панели.

В этот момент она еще не появится, нужно еще раз нажать ПКМ по панели задач и открыть панели, затем поставить галочку у названия, как на скрине выше.


Если меняется ip или имя компа, то изменения на панели будут после ее перезапуска или после перезагрузки компьютера.


Надеюсь кому-нибудь будет полезно.


p.s. Не понял как сделать, чтоб надпись была в две строки, может кто подскажет?

Показать полностью 1
0

Multicast прием видео (прошу помощи)

Здравствуйте, прошу подсказки для написания приложения принимающего и отображающего видеопоток из мультикаст группы. Отправителем является VLC. Нужно на С++ или C# написать клиент. Как подключатся к мультикаст группе я разобрался, но не могу понять как обрабатывать и выводить видеопоток. В инете информации очень мало по этой теме, нашел только как передавать/получать текстовые сообщения через мультикаст и как выводить видео в плейер из файла. Буду благодарен за любую информацию на эту тему.

6

Помогите найти игру

Давно играл в игру, не могу вспомнить название. Сюжет не помню, помню только некоторые локации. Игра 3D. ГГ сопровождают несколько человек, то - ли 2, то - ли 3. Начинается в лагере на который кто - то нападает и нужно из него сбежать. Спустя какое - то время ГГ с сопартийцами приходит в лес, в котором живут враги, с туловищем змеи и человеческими головами и руками, похожие на наг. В конце локации круглая арена с боссом, тоже нагой. Затем, через какое - то время герои приходят в замок, на этот раз локация снежная. Владелец замка просит защитить его от нападения. После этого сразу нападают великаны, похожие на етти, они имеют белую шерсть и что - бы их победить нужно использовать огонь, по моему нужно подбегать к жаровням, поджигать меч и бить их, тогда у них загорается шерсть. Мне тогда так и не удалось пройти эту миссию.

79

Arduino. Регулировка частоты ШИМ настройками таймера - счетчика

Понадобилось мне недавно установить частоту ШИМ у Arduino на 20кГц, с возможностью менять скважность (отношение периода повторения импульсов к длительности импульса). Хотелось это сделать без использования библиотек - настройками таймера счетчика. Убив на это два дня, перелопатив кучу форумов, перепробовав кучу вариантов(хз, это я такой тупой или выложены нерабочие коды) удалось найти на ютубе рабочий вариант на канале: "микроконтроллеры с нуля!" в видео с номером 26. Решил поделиться этим на Пикабу, вдруг кому пригодится.

Сам код:

cli(); //запрет прерываний

//режим вывода не инверсный
TCCR1A|=(1<<COM1A1);  //1
TCCR1A&=~(1<<COM1A0);  //0

//режим шим c точной фазой и частотой
TCCR1A&=~(1<<WGM10);  //0
TCCR1A&=~(1<<WGM11);  //0
TCCR1B&=~(1<<WGM12);  //0
TCCR1B|=(1<<WGM13);  //1

//предделитель 8
TCCR1B|=(1<<CS11);  //1
TCCR1B&=~((1<<CS10)|(1<<CS12));  //0 0

OCR1A =25;  // 50% длительность импульса
ICR1=50;  // 20кГц

sei(); //разрешение прерываний

Код нужно добавить в Setup. Настраивается таймер - счетчик 1, только канал А, соответственно нужный сигнал будет только на пине D9. Частота задается значением в регистре ICR1. Ниже представлены протестированные значения и соответствующая им частота.
ICR1=10; // 100 кГц
ICR1=20; // 50 кГц
ICR1=30; // 33 кГц
ICR1=40; // 25 кГц
ICR1=50; // 20 кГц
ICR1=60; // 16,6 кГц
ICR1=70; // 14,3 кГц
ICR1=80; // 12,5 кГц
ICR1=90; // 11,1 кГц
ICR1=100; // 10 кГц

Если изменить предделитель, то частоты будут другие, например при предделителе 64 и ICR1=50, частота будет 2,5 кГц.

Скважность регулируется значением в регистре OCR1A, она зависит от значения в ICR1, таким образом, что максимальное значение OCR1A равно значению в ICR1, если они равны получится постоянный сигнал. При значении OCR1A = ICR1 / 2 получится меандр (длительность импульса и длительность паузы между импульсами равны). Еще пример: при ICR1 = 50 (20кГц) и OCR1A = 10, длительность импульса будет 20%.

В loop можно менять значение OCR1A и соответственно будет меняться скважность.

Протестировано в Proteus, затем было выполнено на Arduino Nano, все работает.

P.S. Если кто - то знает еще рабочие способы изменения частоты шим и скважности, особенно на таймере - счетчике 2 буду благодарен за информацию.

Arduino. Регулировка частоты ШИМ настройками таймера - счетчика Arduino, Шим, Длиннопост

UPD: Еще один вариант

Показать полностью 1
Отличная работа, все прочитано!