|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||
Готовые решения и полезные коды на Visual Basic .NET (Часть-1)18.08.2011, 22:44. Показов 583361. Ответов 250
Предлагаю в этой теме размещать ответы на часто задаваемые вопросы и просто делиться полезными кодами.
Обращаю внимание на некоторые моменты, которые являются дополнением к основным правилам
Просьба к постившим: не спешите постить решения "сгоряча", тщательно обдумайте список вопросов, их тематику и порядок Если вы найдете информацию, которой можно было бы дополнить ваши предыдущие сообщения, что-то изменить или перегруппировать, пишите в л/с.
Примечание: некоторые коды приведены без учета строгой типизации (Параметр Strict), поэтому для их использования необходимо выполнить приведение типов
55
|
|||||||
| 18.08.2011, 22:44 | |
|
Ответы с готовыми решениями:
250
Готовые решения и полезные коды на Visual Basic .NET (Часть-2)
|
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 28.10.2016, 16:11 | ||||||
|
Как вывести графический примитив в консоль?
Пример ниже выводит зеленый круг в консоли.
4
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 04.11.2016, 10:21 | ||||||
|
Как узнать модель процессора (без использования реестра)?
Как известно, данные, описывающие характеристики процессора и хранящиеся в реестре, можно подделать, тем самым введя в заблуждение пользователя, но не программы вроде CpuId; прекрасно понимая это, в Microsoft почесали за ухом и решили пойти по пути наименьшего сопротивления: запихать сильно кастрированную версию cpuid в NtQuerySystemInformation. В перечислении SYSTEM_INFORMATION_CLASS сие значится как SystemProcessorBrandString (105) и доступно начиная с Vista SP1.
6
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 13.11.2016, 20:36 | ||||||
|
Как сделать курсор мыши [не]видимым в окне консоли?
Довольно распространенный вопрос, поэтому ниже приводится пример того, как это сделать с наименьшим количеством телодвижений.
4
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
|||||||||||
| 15.11.2016, 15:36 | |||||||||||
|
Как программно вызвать одно из пунктов контекстного меню консоли?
Что-то очень много вопросов в ящике именно о консоли... На сей раз довольно много насчитал сообщений с вопросом о том, возможен ли скролл консоли без мыши, - как "Прокрутить" в меню по Alt+Space в пункте "Изменить".
5
|
|||||||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 21.12.2016, 19:37 | ||||||
|
Свойство OSVersion класса Environment возврвщает неверные данные о версии Windows, как это исправить?
Свойство OSVersion помечено M$ как deprecated, что в свою очередь указывает на нежелательное использование данного свойства, а оно, свойство, в свою очередь реализуется за счет вызовов API'шных функций с той же "черной меткой", что и OSVersion. (И как после этого не послать M$ в /dev/null?!) Однако, есть единственный (на данный момент) надежный способ извлечения версии системы - RtlGetNtVersionNumbers.
3
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||||||||||||||||||||||
| 29.12.2016, 11:26 | ||||||||||||||||||||||||||
|
Как получить список альясов (макросов) консольных команд?
Заядлые консольщики обычно держат под рукой файл макросов команд, набор которых в консоли обычно занимает некоторое время; макросы же позволяют снизить это время за счет, например:
Существуют ли альтернативы свойству Is64BitOperatingSystem класса Environment? Например, WMI (Win32_OperatingSystem), однако если у пользователя не окажется достаточно прав, узнать является ли система 64 битной или нет можно путем вызова GetNativeSystemInfo:
2
|
||||||||||||||||||||||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 08.03.2017, 22:06 | ||||||
|
Как узнать тип охлаждения на текущий момент?
3
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
| 21.03.2017, 20:08 | ||||||
|
Вычисление энтропии строки
Энтропия по Шеннону, как оговорка по Фрейду. Но это так, к слову. Ниже пример реализации вычисления оной.
2
|
||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
| 17.06.2017, 20:21 | ||||||
|
Как сделать курсор из битмапа?
Точка клика в центре битмапа
4
|
||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|||||||||||||||||||||
| 25.07.2017, 16:53 | |||||||||||||||||||||
|
Экспорт содержимого контрола, в данном случае ListView, в файлы различных типов. Например, txt, csv, html, docx, xlsx.
Какими инструментами пользоваться? С txt и csv всё понятно — обычный текст, пишем через поток. html тоже можно так писать, но лучше использовать XmlTextWriter — результат гораздо лучше выглядит.Для офисных файлов можно пользоваться механизмом Interop: там довольно понятная объектная модель, однако очень низкая скорость и требуется установленный офис. Но главный минус — скорость. Поэтому я предлагаю использовать OpenXml. Объектная модель там посложнее, но получаемая скорость оправдывает затраченное время. Для начала сделаем интерфейс экспортёра IExport:
ListView, который нужно сохранить и булевый параметр, нужно ли сохранять заголовки. Под заголовками имеются ввиду заголовки столбцов.Реализацию интерфейса сделаем в абстрактном классе ExporterBase:
Save и объявляем абстрактный метод CreateFile, в котором наследники будут реализовывать конкрентный механизм экспорта. Осталось написать реализацию пять классов для экспорта: TxtExporter, CsvExpoter, HtmlExporter, WordExporter, ExcelExporter. Приведу код HtmlExporter и WordExporter
В архиве решение с 3-мя проектами: библиотека exporters.dll, приложение WinForms для демонстрации и юнит тесты библиотеки exporters.
12
|
|||||||||||||||||||||
|
|
|||||||||||
| 08.08.2017, 01:35 | |||||||||||
|
Выключение или перезагрузка ПК
Выключение ПК:
4
|
|||||||||||
|
79 / 72 / 4
Регистрация: 05.01.2016
Сообщений: 288
|
||||||||||||||||||||||||||||||||||||
| 24.09.2017, 10:33 | ||||||||||||||||||||||||||||||||||||
|
Работа с формой
Закрыть окно Кликните здесь для просмотра всего текста
Свернуть окно Кликните здесь для просмотра всего текста
Развернуть свернуть на весь экран окно Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Тень для формы Кликните здесь для просмотра всего текста
Анимация Windows Form Кликните здесь для просмотра всего текста
Пример: Кликните здесь для просмотра всего текста
4
|
||||||||||||||||||||||||||||||||||||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 01.11.2017, 13:14 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
В данном посте решил собрать различные приемы для запуска своей (и не только) программы от имени администратора.
(Вопрос часто поднимается многими начинающими программистами, поэтому решил вынести ответ на него здесь) Корректировка манифеста исполняемого файла: Кликните здесь для просмотра всего текста
1) Переходим в настройки проекта [Обозреватель решений -> My Project]
2) Нажимаем на кнопку "Посмотреть параметры Windows", откроется файл манифеста приложения 3) Первое что необходимо сделать, это во второй строке в открывающем теге добавить атрибут
Вот и все, программа теперь будет запускаться с правами администратора, что без проблем позволит вам сохранить файлы на системном диске и так далее. PS: На иконке исполняемого файла появится значок желто-синего щита. Запуск какого-то файла с правами администратора Кликните здесь для просмотра всего текста
Через реестр установить у файла "галочку" на "Запускать от имени администратора" Кликните здесь для просмотра всего текста
1) Рабочий раздел реестра: "HKEY_CURRENT_USER\Software\Microsoft\Wi ndows NT\CurrentVersion\AppCompatFlags\Layers"
2) Смотрим, есть ли в нем строковой параметр "REG_SZ" с именем равным "полному пути к EXE файлу" 3) Если нету, то создаешь новый параметр типа "REG_SZ" со значением "~ RUNASADMIN" (начало строки должно начинаться с символа "~", но и без него работает) 4) Если параметр с полным путем к нашему файлу уже существует, то нужно проверить нет ли у него в значении того, что мы хотим добавить. 5) Если того параметра в значении нет, то добавляем (через пробел) необходимое. 6) Если мы хотим отключить визуальные темы Windows у окна, то добавляем параметр DISABLETHEMES 7) Если мы хотим запускать программу в режиме совместимости с другой ОС, то добавляем ее короткое название (смотри ниже) Режимы совместимости с различными ОС
Пример: Имя параметра(путь к файлу): C:\MyApplication.exe Значение параметра: ~ RUNASADMIN DISABLETHEMES WIN98 Описание: Запускает программу с правами администратора, отключает визуальные стили окна и работает в режиме совместимости с Win98 Узнать, запущена ли программа с правами администратора или нет Кликните здесь для просмотра всего текста
Узнать, входит ли тeкущий пользователь в группу Администраторов или другую нужную нам группу Кликните здесь для просмотра всего текста
И еще немного полезностей: Отловить событие MouseDown по кнопкам заголовка формы Кликните здесь для просмотра всего текста
Заблокировать действия кнопок управления формой (в заголовке формы) Кликните здесь для просмотра всего текста
14
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|||||||||||
| 29.12.2017, 19:08 | |||||||||||
|
DTL, EVT File Reader
По мотивам найденного кода в сети и его копии на данном форуме сваял методы чтения бинарных файло DTL и EVT. На самом деле в сети нет никакой информации по формату данных файлов, ну или я не смог найти. Долго мучился с ними, так как есть проекты, которын грузят данные выборок с PLC в базу данных ПО и без ужасных костылей не обходилось, что очень тормозило процесс импорта данных в базу. Поэтому, чтоб не потерять, считаю код практически уникальным и выкладываю его на форум, надеюсь не я один с такими файлами намучался.В архиве проект, сборка и примеры файлов с разными типами данных. DTLreader.vb
EVTreader.vb
8
|
|||||||||||
|
|
||||||
| 06.04.2018, 17:07 | ||||||
|
SQLite, создание базы данных, установка, изменение и удаления пароля.
3
|
||||||
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||
| 09.05.2018, 19:46 | ||||||
|
Как открыть через оболочку Windows папку (и выделить в ней требуемые элементы)
Метод Shell.OpenFolderAndSelectItems(String, String[])
4
|
||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
| 21.06.2018, 23:44 | ||||||
|
Экспорт данных в документ Word
Ещё один вариант переноса значений в Word. Используется шаблон документа с закладками. Работает через OpenXml, поэтому только с форматом .docx. Не требует установленного Word.Закладки могут иметь форматирование, но единое в пределах всей закладки. В противном случае, форматирование пропадёт. В конечном документе закладки остаются. Кликните здесь для просмотра всего текста
В приложенном файле проект библиотеки, пример использования в WinForms и тесты. После открытия решения нужно восстановить пакеты NuGet
4
|
||||||
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||||||||||||
| 26.07.2018, 22:56 | ||||||||||||||||
|
Проецирование изображения (с анимацией) на другое окно вне зависимости от основного потока
Минимальная платформа .Net Framework 2.0 Вспомогательный класс ImageProjectionAsync, имеющий достаточный набор методов и свойств для проецирования изображения на окно или элемент окна по ссылке, поддерживающий отрисовку при помощи GDI. За основу взята часть исходного кода System.Drawing.ImageAnimator (В отличии от которого частота кадров задается параметрами изображения, а не фиксированные 50мс, как было ранее) Класс ImageProjectionAsync (Методы и свойства подписаны)
Пример 1
Пример 2
8
|
||||||||||||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||
| 12.11.2018, 00:51 | ||||||
|
bbbw, самостоятельно разобрался в теме События формы при нажатии Alt+Tab. Его решение позволяет блокировать сочетания клавиш, которые забирают фокус у окна. Что, в его случае, нужно для работы полноэкранного приложения.
Как оказалось, это всего лишь специфический случай использования клавиатурного хука. Позволю себе немного унифицировать его код, чтобы можно было применять в любых приложениях WinForms. Класс формы с блокировкой Alt+Tab, Alt+Esc, Ctrl+Esc, LWin, RWin
Теперь, чтобы блокировать сочетания клавиш Alt+Tab, Alt+Esc, Ctrl+Esc, а также левый и правый Win, нужно унаследовать свою форму от FormEx и установить в True соответствующее свойство. При изменении этих свойств генерируется событие.Пример использования во вложении.
7
|
||||||
|
Лень — мое второе и
|
||||||||||||||||
| 07.12.2018, 22:48 | ||||||||||||||||
|
Заменить иконку существующего приложения
Используется API UpdateResource Для начала
1 - путь к существующему exe файлу 2 - путь к иконке Класс Кликните здесь для просмотра всего текста
Как результат - замена иконки в exe файле
8
|
||||||||||||||||
| 07.12.2018, 22:48 | |
|
Помогаю со студенческими работами здесь
200
Basic4Android. Готовые решения полезные коды Полезные коды для PascalABC.NET Готовые коды для решения лабораторных работ Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|