Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||
Готовые решения и полезные коды на Visual Basic .NET (Часть-1)18.08.2011, 22:44. Показов 559855. Ответов 250
Предлагаю в этой теме размещать ответы на часто задаваемые вопросы и просто делиться полезными кодами.
Обращаю внимание на некоторые моменты, которые являются дополнением к основным правилам
Просьба к постившим: не спешите постить решения "сгоряча", тщательно обдумайте список вопросов, их тематику и порядок Если вы найдете информацию, которой можно было бы дополнить ваши предыдущие сообщения, что-то изменить или перегруппировать, пишите в л/с.
Примечание: некоторые коды приведены без учета строгой типизации (Параметр Strict), поэтому для их использования необходимо выполнить приведение типов
55
|
18.08.2011, 22:44 | |
Ответы с готовыми решениями:
250
Готовые решения и полезные коды на Visual Basic .NET (Часть-2)
|
![]() 1491 / 586 / 106
Регистрация: 26.03.2012
Сообщений: 1,039
|
|
18.08.2011, 22:44 | |
Содержание темы
1
|
18.08.2011, 22:44 | ||||||
Помогаю со студенческими работами здесь
3
Basic4Android. Готовые решения полезные коды Полезные коды для PascalABC.NET Готовые коды для решения лабораторных работ Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18.08.2011, 22:45 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Как получить размер папки?
Как получить размер папки?
Если узнать размер файла можно штатными средствами, то с папкой все обстоит немного иначе. Даже сама операционная система "не знает" этого. Но как же так? Если мы наводим мышь на какую-либо папку, то во всплывающей подсказке видим ее размер, бывает что точный, а бывает, что система сообщает "Размер папки более..." И это неудивительно, потому что, когда мы наводим мышь на какую-либо большую папку, система "задумывается" на какое-то время. Что она делает? Она перебирает все файлы в папке и ее вложенных подпапках и суммирует их общий "вес". Нам ничего другого не остается, как следовать ее "примеру". Для получения размера нашей папки мы будем рекурсивно "пробегаться" по ее файлам и подкаталогам и складывать размер каждого нового файла с предыдущим:
Немаловажно здесь использование конструкции Try Catch End Try, поскольку в системе есть папки, доступ к которым закрыт, такие, как System Volume Information. Функция возвращает значение типа Integer, не что иное, как размер папки в байтах. Советую в теле функции не манипулировать преобразованием байтов в килобайты или мегабайты (делением размера файла на 1024, например), поскольку это может привести к огромной погрешности в вычислениях, и чем больше файлов в папке, тем больше погрешность. Если нужен размер в мегабайтах, то деление производим тогда, когда функция полностью отработала:
Отправка почты с вложением с компьютера с русскоязычным именем
Отправка почты с вложением с компьютера с русскоязычным именем
Часто попадаются коды для отправки почты и очень часто пользователи сообщают об ошибке "Сбой при отправке почты" Выяснения причин показывают, что большинство проблем возникало из-за содержания русских букв в имени компьютера. А что, если пользователь не хочет ничего менять? Следующий код позволяет этого избежать:
Создать папку на FTP-сервере
Создать папку на FTP-сервере
В следующем коде на ftp-сервере TestFtp будет создана папка MyPhotos Обращаю внимание, что имя создаваемой папки должно содержать только буквы латинского алфавита, цифры и символы подчеркивания "_" Иначе будет сгенерировано исключение "Bad directory name"
Определить размер файла на FTP-сервере
Следующий код позволяет узнать размер файла, лежащего на FTP-сервере:
Работа с ярлыками
Работа с ярлыками
Следующий пример демонстрирует получение свойств ярлыка. Для того, чтобы запустить код, необходимо сделать следующее: В меню Visual Studio: Проект -> Добавить ссылку, перейти на вкладку COM, найти и выбрать из списка Windows Script Host Object Model
Состояния окна возвращаются следующие: 1 - обычный размер окна 3 - развернутое на весь экран 7 - свернутое в значок Если это ярлык на папку, то свойство "Рабочая папка" не возвращается. В следующем примере мы программно создадим ярлык и зададим его свойства:
Иконку установить можно, например, из системной библиотеки shell32.dll, указав индекс иконки:
Перевод строки в массив байт и обратно
Перевод строки в массив байт
Перемещать форму не за заголовок
Перемещать форму не за заголовок
Показывать индикатор скачивания файла из Интернета
Показывать индикатор скачивания файла из Интернета
Как скачать файл из Интернета
Как скачать файл из Интернета
10000 - это тайм-аут отклика от сервера, по истечении которого, если файл не был скачан, процедура прерывается. Последний параметр отвечает за то, будет ли уже имеющийся файл переписан одноименным новым. Для обычного скачивания достаточно первых двух параметров (Ссылка, путь) К сожалению, некоторые сайты не дают возможности воспользоваться таким методом, поэтому есть альтернативный вариант (API!)
51
|
![]() 559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
|
||||||||||||||||
18.08.2011, 23:14 | ||||||||||||||||
Из 10ричной системы счисления в 2,8,16 c.c."
из 10ричной системы счисления в 8ричную систему счисления
24
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23.08.2011, 01:17 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с датами, временем
Как прибавить к текущей дате определенное количество часов, дней, месяцев и т.д.
Разница между двумя датами в днях, месяцах и т.д.
Получить текущую дату и время
Узнать день недели
День недели в численном представлении
Узнать, високосный год или нет
Установить в компьютере системное время и дату
Подробнее о форматировании дат. Мы можем использовать даты и время еще гибче, благодаря функции Format. Например:
Исходя из этого, легко составлять свои строки для вывода информации: dd-MM-yyyy Или
46
|
![]() |
|||||||||||||||||||||||||||||||||||||||||
24.08.2011, 14:09 | |||||||||||||||||||||||||||||||||||||||||
Работа с базами данных на примере Access.
Пусть есть база данных БД.mdb которая лежит в папке Debug или Release. В ней создана таблица с именем Таблица1. Первоначально структура такая:
Загрузка таблицы в DataGridView
На форме DataGridView и кнопка.
Добавление в таблицу новой записи
Обновление существующей записи
Удаление записи из базы
66
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27.08.2011, 09:10 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с файлами
Как записать в файл все содержимое многострочного текстового поля
Как записать в файл все содержимое многострочного текстового поля
Четвертый параметр (здесь не указан) - кодировка (например, System.Text.Encoding.Default) При такой записи этот параметр необязателен, если пишется информация в обычной кодировке. Еще вариант:
Если нужна дозапись во втором способе:
Еще один из способов:
Это вовсе не означает, что он хуже остальных. Как прочитать из файла все строки
Как прочитать из файла все строки
чтения кирилицы в большинстве случаев возникнут проблемы. Другой способ:
Способ "из шестого" рассматривать не буду, потому, что в нем чтение "разом" не предусмотрено. Как записать в файл все элементы массива.
Как записать в файл все элементы массива.
Пусть у нас имеется одномерный массив Massiv
Прочитать все строки из файла в массив
Прочитать все строки из файла в массив
Пожалуй, единственное преимущество этих способов перед описанными выше - это бОльшая гибкость в том плане, что строки можно изменять уже при считывании или считывать не все, а соответствующие, например, каким-то определенным условиям. Я бы даже сказал, что способ с My.Computer.FileSystem здесь и вовсе не годится. Как записать в файл массив байт
Как записать в файл массив байт
Старый способ:
Прочитать в переменную все байты из файла
Прочитать в переменную все байты из файла
Раз:
Как сохранить файл из ресурсов на диск
Как сохранить файл из ресурсов на диск
Предыдущие способы это предусматривают, однако есть небольшие нюансы. От Visual Studio ничего не скроешь, и поэтому, если у нас в ресурсах, например, Wav-файл, картинка, Html-страница, текстовый документ и прочие "известные" форматы, то как есть сохранить их не получится. Лечится путем изменения расширения этих файлов или вовсе путем его удаления. Исполняемые файлы, архивы, mp3-файлы и все остальные сохраняются без проблем:
Как скопировать файл из одного места в другое
Как скопировать файл из одного места в другое
Как удалить файл
Как удалить файл
Узнать, существует ли файл
Узнать, существует ли файл
Переместить файл из одного места в другое
Переместить файл из одного места в другое
Переименование файла
Переименование файла
Заменить файл другим и сделать его резервную копию
Заменить файл другим и сделать его резервную копию
Применить атрибуты к файлу
Применить атрибуты к файлу
Получить атрибуты файла можно так:
рассматривать не будем. Как получить расширение файла
Как получить расширение файла
Как получить имя файла без полного пути
Как получить имя файла без полного пути
Как получить имя файла без расширения
Как получить имя файла без расширения
Как получить полное имя файла
Как получить полное имя файла
Как узнать имя корневого каталога для файла
Как узнать имя корневого каталога для файла
Как узнать, есть ли у файла расширение
Как узнать, есть ли у файла расширение
Получить дату создания файла
Получить дату создания файла
Так же можно получить и другие сведения подобного характера о файле: GetCreationTime GetCreationTimeUtc GetLastAccessTime GetLastAccessTimeUtc GetLastWriteTime GetLastWriteTimeUtc
63
|
![]() 559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
|
||||||||||||||||
29.08.2011, 22:15 | ||||||||||||||||
Как получить все ключи реестра и занести их в listview ?
разместим на форме Listview1 изменим свойства таким образом: .view=Details добавим три колонки
Как использовать ?
вызвать код ниже в кнопке
Внимание!!! Если Вы не знаете, что такое реестр или не знаете для чего он, то код предоставленный выше запрещается использоваться Вам по кодексу Сис.админов. Если Вы все же имеете представление о реестре и работали с ним, то будьте аккуратны, любое неверное движение может привести к неработоспособности компьютера или не правильной работе ЭВМ или ПО.
16
|
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
|
||||||
30.08.2011, 17:14 | ||||||
Как разрешить запуск только одного экземпляра программы
23
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31.08.2011, 13:22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В VB.NET доступ к основным математическим функциям осуществляется с помощью класса Math
Поставив после имени класса точку, вы сможете увидеть перечисление всех функций, констант, методов и вполне ими пользоваться. Рассмотрим несколько примеров использования: Тригонометрические функции
Рассмотри на примере одной функции. Sin Удобно искать значение по значению углу в градусах, по умолчанию в функцию нужно передавать значение в радианах, а перегрузок у функции нет. Мы это и будем делать, но вводить значение будем в градусах, и с помощью простенькой самописной функции переводить в радианы.
Поиск максимума и минимума из двух значений
Если нужно найти максисмум или минимум из двух чисел, то есть функции Max и Min. Эти функции имеют перегрузку под разный тип сравниваемых переменных.
Основные математические функции
Перечислять все функции и константы не вижу смысла. Думаю их использование не вызовет затруднений.
21
|
![]() 559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
|
||||||
31.08.2011, 19:54 | ||||||
Как организовать поиск файлов без рекурсии?
20
|
![]() |
|||||||||||
01.09.2011, 12:22 | |||||||||||
Использование класса StringBuilder
Для конкатенации строк в .Net присутсвует очень полезный класс StringBuilder из пространнстваимен System.Text. Операции объединения, замены, вставки и т.д. с помощью этого класса выполняются намного быстрее ранее используемых методов. Особенно рентабельно его использовать при формировании большой строки из множества маленьких в цикле. Рассмотрим пример пользования классом. Использование класса StringBuilder
Особенно класс пригодится для построения строки SQL-запросов большой длины по условию, а также объемного текста. Печать Вопрос слабо освещен в книжках и на форумах по поводу вывода теста и рисунка на принтер через предварительный просмотр. Рассмотрим простой вариант вывода текста и изображение в окно предпросмотра печати и печати оттуда. Вывод в окно предпросмотра печати и печать
На форме только кнопа.
Разумеется, это самый простой вариант.
17
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
01.09.2011, 15:39 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с каталогами
Как создать папку в указанном месте
Как создать папку в указанном месте
Как удалить папку, даже если она не пуста
Как удалить папку, даже если она не пуста
С параметром False в случае наличия в каталоге по крайней мере одного файла или папки будет сгенерировано исключение Узнать, существует ли папка
Узнать, существует ли папка
Получить из папки все директории
Получить из папки все директории
По умолчанию возвращаются все папки (любое имя). Второй параметр - глубина поиска, с IO.SearchOption.TopDirectoryOnly мы ищем папки только в текущей директории тогда как с IO.SearchOption.AllDirectories поиск будет осуществлен и во всех вложенных подкаталогах. По умолчанию поиск производится только в текущей папке. Как получить все файлы, а также папки в директории
Как получить все файлы, а также папки в директории
Получить все файлы из директории
Получить все файлы из директории
Как узнать корневой раздел папки
Как узнать корневой раздел папки
Узнать время последнего обращения к папке
Узнать время последнего обращения к папке
Время последней записи в каталог
Время последней записи в каталог
Узнать имя родительского каталога
Узнать имя родительского каталога
Если нужен не полный путь, а лишь имя родительского каталога, то выбираем свойство Name На других свойствах заострять внимание не будем. Как переместить каталог из одного места в другое
Как переместить каталог из одного места в другое
Установить дату создания для каталога
Установить дату создания для каталога
Установить дату последнего доступа к каталогу
Установить дату последнего доступа к каталогу
Установить текущий каталог для приложения
Установить текущий каталог для приложения
Поэтому следует соблюдать осторожность. Установить для каталога определенные атрибуты
Установить для каталога определенные атрибуты
удобочитаемый для пользователя формат. Обсуждать здесь это не будем. Имеется неплохая возможность комбинировать атрибуты, например, делаем папку скрытой и системной:
Создать в директории несколько вложенных друг в друга поддиректорий
Создать в директории несколько вложенных друг в друга поддиректорий
Узнать имя папки без полного пути
Узнать имя папки без полного пути
Класс DirectoryInfo тоже позволяет создавать каталоги, удалять, осуществлять поиск файлов и папок и все то, что уже было рассмотрено. Скопировать каталог
Скопировать каталог
29
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03.09.2011, 22:10 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с дисками
Получить имена всех дисков в системе
Получить имена всех дисков в системе
Например, в следующем примере мы получаем имена только жестких дисков:
Узнать объем свободного места на диске в мегабайтах
Узнать объем свободного места на диске в мегабайтах
Узнать имя файловой системы на диске
Узнать имя файловой системы на диске
Узнать тип диска
Узнать тип диска
Узнать, доступен ли диск
Получить имя диска
Получить имя диска
Узнать полный объем диска
Узнать полный объем диска
Узнать или назначить метку тома
Узнать или назначить метку тома
23
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10.09.2011, 01:17 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Динамическое создание контроллов
Как программно создать объект
Как программно создать объект
Как задать свойства этому объекту
Как задать свойства этому объекту
Например, создаем новую кнопку с текстом "Кнопка" Способ 1:
Как заставить объект "что-то уметь делать"
Как заставить объект "что-то уметь делать"
Мы должны задать соответствие нашего контролла какому-либо событию. Для этого создадим простую процедуру:
программировании. Теперь в процедуре создания кнопки мы добавляем код:
После Btn. нам будут предложены все уже известные нам события, характерные для кнопки. Почему для кнопки? Потому что мы сами так объявили эти 3 произвольные буквы. Объяви мы их как TextBox, получили бы события, характерные лишь для текстового поля. Как узнать, в каком объекте было вызвано событие
Как узнать, в каком объекте было вызвано событие
Если мы создаем не один, а несколько объектов, например, кнопок, то невозможно описать всевозможные процедуры. Да это и не нужно. Нам просто достаточно добавить нужные параметры в процедуру:
сами. Второй параметр e дает информацию о том, ЧТО вызвало событие. В таком примере толку от него мало. Как удалить обработчик события с объекта
Как удалить обработчик события с объекта
Немного усложним наш пример. Объявим глобально коллекцию кнопок:
Как создать форму, аналогичную текущей со всеми свойствами.
Как создать форму, аналогичную текущей со всеми свойствами.
Задача решается аналогично
когда у каждого написавшего сообщение пользователя открывается свое окно, с его сообщениями и другой его персональной информацией. Я хотел бы подчеркнуть, что хоть мы и пишем
У ней, как и у всех последующих будут все свойства первой формы, в том числе и имя. Поэтому имя всех таких форм - "Form1", и идентификация формы по ее имени невозможна. Другое дело, когда мы создаем экземпляр Кнопки "С нуля". У такой кнопки нет ни имени, ни текста на ней. Поэтому все такие экземпляры - безымянны. Если бы мы аналогично создавали и форму, у ней бы так же не было имени. Создать "одним махом" экземпляр (копию) уже имеющейся кнопки нельзя (а формы - можно) Итак, мы для идентификации объектов можем использовать их имена (Вспоминаем sender) Я бы хотел заострить внимание еще на одном свойстве контроллов, оно называется Tag. Его незаслуженно редко используют. Поэтому это еще один козырь, который мы можем использовать не только для идентификации контроллов, но и для хранения практически любой строковой информации. Создавать новые контроллы мы можем, разумеется, не только на форме, а и на других объектах. Обращаю внимание, что координаты нового контролла будут рассчитываться не относительно формы, а относительно родительского объекта, например, если мы разместим свежеиспеченную кнопку с координатами {0, 0} на PictureBox, расположенного в центре формы, то контролл будет находиться в верхнем левом углу PictureBox, но не формы. И еще один пример создания кнопки с событием
И еще один пример создания кнопки с событием
Используем WihtEvents вместо AddHandler:
29
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24.09.2011, 01:34 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с процессами
Как открыть файл программой по умолчанию
Как открыть файл программой по умолчанию
Таким образом, этот код откроет Html-страницы и ссылки браузером по умолчанию. Как запустить файл с параметрами
Как запустить файл с параметрами
Допустим, потребовалось открыть Яндекс именно в Internet Explorer. Передаем ему в качестве параметра ссылку:
Как запустить приложение свернутым, развернутым, скрытым и с обычным размером окна
Как запустить приложение свернутым, развернутым, скрытым и с обычным размером окна
Приостановить работу своего приложения, пока работает запущенная программа
Приостановить работу своего приложения, пока работает запущенная программа
В следующем примере мы запускаем калькулятор, и пока он открыт, наша программа недоступна:
Как завершить процесс
Как завершить процесс
Как закрыть программу "мягко"
Как закрыть программу "мягко"
Под "мягко" я имею ввиду выполнение в программе кода, что находится в ее закрытии, ведь при завершении процесса программа "умирает" внезапно
Убиваем процесс на вкладке "процессы" "Мягко" закрываем на вкладке "Приложения" Как отловить завершение стороннего процесса
Как отловить завершение стороннего процесса
Узнать имя модуля процесса и путь к нему
Узнать имя модуля процесса и путь к нему
Получить имя продукта, компанию, версию, описание и т.д. программы по процессу
Получить имя продукта, компанию, версию, описание и т.д. программы по процессу
Получить заголовок главного окна
Получить заголовок главного окна
Получить все модули процесса
Получить все модули процесса
Получить время старта процесса
Получить время старта процесса
Узнать занимаемую память процесса
Узнать занимаемую память процесса
Использование класса Process для работы с библиотеками
Использование класса Process для работы с библиотеками
Чтобы получить доступ к компонентам библиотек, воспользуемся rundll32.exe и методом Start Некоторые диалоги: Свойства мыши:
По поводу запуска библиотек через RunDll32.exe: Команды
rundll32 rnaui.dll,RnaWizard - вызов мастера "Удаленный доступ к сети".
rundll32 rnaui.dll,RnaWizard /1 - вызов мастера "Удаленный доступ к сети" без отображения начального окна. rundll32 shell,ShellExecute - открыть Проводник (папка "Рабочий стол"). rundll32 shell32,Control_RunDLL - открыть в Проводнике папку "Панель управления". rundll32 shell32,Control_RunDLL main.cpl @0 - открыть диалог "Свойства мыши". rundll32 shell32,Control_RunDLL main.cpl @1 - открыть диалог "Свойства клавиатуры". rundll32 shell32,Control_RunDLL main.cpl @2 - открыть папку "Принтеры". rundll32 shell32,Control_RunDLL main.cpl @3 - открыть папку "Шрифты". rundll32 SHELL32,Control_RunDLL modem.cpl, add - открыть диалог "Свойства модема". rundll32 shell32,Control_RunDLL timedate.cpl - открыть диалог "Дата и время". * rundll32 shell32,OpenAs_RunDLL - вызвать диалог "Открыть с помощью...". rundll32 shell32,ShellAboutA - информация о версии Windows. rundll32 shell32,SHExitWindowsEx 0 - закрыть все программы, перегрузить оболочку. rundll32 shell32, SHExitWindowsEx 1 - выключить ПК. rundll32 shell32, SHExitWindowsEx 2 - перегрузить ПК. rundll32 shell32,SHExitWindowsEx 4 - принудительно закрыть все программы. rundll32 shell32,SHExitWindowsEx 8 - выход из Windows и выключение ATX-совместимого ПК. rundll32 shell32,SHFormatDrive - вызов диалога форматирования диска А:. rundll32 SHELL32,SHHelpShortcuts_RunDLL AddPrinter - запуск "Мастера установки принтера". rundll32 shell32,SHHelpShortcuts_RunDLL Connect - запуск мастера подключения сетевого диска. rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintTestPage - распечатать тестовую страницу. rundll32 sysdm.cpl,InstallDevice_Rundll - вызов мастера установки оборудования. rundll32 url.dll,FileProtocolHandler %1 - открыть веб-страницу, где %1 - URL сайта (включая http://). rundll32 url.dll,MailToProtocolHandler %1 - создать новое письмо, где %1 - e-mail адресата. rundll32 user,CASCADECHILDWINDOWS - расположить все окна каскадом. rundll32 user,TILECHILDWINDOWS - расположить все окна по экрану. rundll32 user,disableoemlayer - сбой системы (!) - выключить все функции ввода-вывода (клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать. rundll32 user,ExitWindowsExec - быстрая перезагрузка Windows. rundll32 user,WNetDisconnectDialog - вызов диалога "Отключение сетевого диска". rundll32 AppWiz.Cpl,NewLinkHere %1 - запуск мастера создания нового ярлыка, где %1 - путь к исходному файлу. rundll32 shell32.dll,Control_RunDLL hotplug.dll - диалоговое окно Отключение или извлечение аппаратного устройства rundll32 мсprint2.dll,RUNDLL_PrintTestPage - распечатать тестовую страницу на принтере. rundll32 netplwiz.dll,AddNetPlaceRunDll - вызов мастера подключения нового сетевого ресурса "Добавление в сетевое окружение". rundll32 user,RepaintScreen - выполнить команду "Обновить". rundll32 user,SetCaretBlinkTime n - задать частоту мигания курсора, соответствующую значению параметра n. rundll32 user,SetCursorPos - переместить курсор мыши в верхний левый угол экрана. rundll32 user,SetDoubleClickTime n - задать скорость двойного нажатия левой кнопки мыши (Double Click), соответствующую параметру n. rundll32 user,SwapMouseButton - поменять местами клавиши мыши (обратная смена невозможна). rundll32 user,WNetConnectDialog - вызов диалога "Подключение сетевого диска". rundll32.exe", "shimgvw.dll, ImageView_Fullscreen C:\1.jpg - открыть картинку в программе просмотра изображений и факсов
39
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||||||||||||||||
06.12.2011, 22:20 [ТС] | |||||||||||||||||||||
Как написать простейший сервис (Службу Windows)
Наша служба будет предельно простой. В ее задачу будет входить лишь ведение бесполезного лога в файл. Вся задача сводится к двум моментам:
Чтобы приступить к написанию программного кода, необходимо выбрать соответствующий шаблон в составе Visual Studio (рис. 1) Предполагается, что у нашего сервиса не будет визуального интерфейса. Нам понадобится таймер, но не тот, что мы привыкли использовать в WinForms На рис. 2 показан этот таймер в момент его выбора и размещения на панели инструментов. Добавляем его в проект привычным двойным щелчком (рис. 3) Настраиваем его свойства, в частности, интервал, пусть это будет 1 секунда. Активность таймера выставлять не будем, пусть за нас это сделает сам сервис. В редакторе кода код будет выглядеть следующим образом:
По желанию можно зайти в свойства проекта и настроить его. Компилируем сервис как обычно - Меню - Построение - Построить <Имя Вашего сервиса> После этого в папке Release появится исполняемый файл. Здесь же отмечу, что такие файлы двойным щелчком не запускаются и так же по F5; В этом случае VS пояснит, что служба не может быть запущена непосредственно из-под отладчика. Как бы там ни было, файл готов. И мы хотим видеть его работу. Чтобы это сделать, нам придется установить сервис в систему. Для этого воспользуемся одним из методов. Создадим Bat-файл в той же директории, что и сам файл сервиса. Содержание файла:
Третьей строкой запускаем службу. Результат показан на рис. 4 Достаточно простой установки, а настройку можно произвести в: Панель управления - Администрирование - Службы Сразу же замечу, что в такой службе не будет визуализации, даже MsgBox Написанное ниже применимо к ОС Windows XP. Чтобы сообщения были видны пользователю, нужно, чтобы служба работала в интерактивном режиме. Для этого в настройках службы (Панель управления - Администрирование - Службы) нужно поставить флаг "Разрешить взаимодействие с рабочим столом" Либо установить службу немного иначе:
20
|
Ефрейтор
![]() 186 / 157 / 6
Регистрация: 20.07.2009
Сообщений: 226
|
||||||||||||||||
09.12.2011, 11:59 | ||||||||||||||||
как очень легко изменить цвет заголовка столбцов (ColumnHeaders) в DataGridView, без использование описания стилей
к этому коду нужно установить свойство грида EnableHeadersVisualStyles = False програмно изменить шрифт в DataGridView
програмно изменить шрифт в DataGridView конкретного столбца
6
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||||||||||||||||||||||
11.12.2011, 02:34 [ТС] | ||||||||||||||||||||||||||
Сохранение в файл классов, коллекций и структур
Разберем это на примере коллекции классов, т.к. принцип применим и к классам в отдельности, и структурам. Для демонстрации напишем простой класс с двумя свойствами, тип Integer и тип String. Разумеется, в классе могут быть и методы, и события, и коллекции и другие классы, и все, что угодно. Листинг класса:
В классе формы мы объявляем коллекцию наших классов
Класс формы:
Любой из них, я еще раз подчеркиваю, дожен быть сериализуемым
16
|
11.12.2011, 02:34 | ||||||
Помогаю со студенческими работами здесь
20
Basic4Android. Готовые решения полезные коды Полезные коды для PascalABC.NET Готовые коды для решения лабораторных работ Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
|
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
|
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
|
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
|
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
|
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
|
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
|
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
|
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
|
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
|