![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008 |
|
VBA - Visual Basic 2008
|
Старожил Сообщения: 161 |
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).
Спасибо за внимание. >>Блин, не дописал в названии темы : Действие при нажатии правой кнопки |
|
Отправлено: 17:47, 24-04-2008 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Вообщем, ещё одна трабла : Необходимо написать прогу, которая бы удаляла файлы по маске (*а.txt) , либо в имени которых есть только цифры (*цифры*.txt) или только буквы (*любые буквы*.txt)
Просто решил немного поэсперементировать с создниями файла, создал прогу Public Class Form1 Dim i = 1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Do Until i = 0 i = i + 1 FileOpen(1, i & ".txt", OpenMode.Append) PrintLine(1, "123") FileClose(1) Loop End Sub End Class ![]() Можно как-то выдирать значения из переменной? Например у меня перемнная если z =0, тогда выдирается первое значение, если z=1, выдирается второе значение. Это малый пример. мне необходимо сделать чтобы все это происходило автоматически, а не прописывать каждое значение в ручную, как например Можно ли как-то в GoTo сделать не одно действие, а несколько? |
Последний раз редактировалось Uzvern, 11-05-2008 в 13:25. Отправлено: 18:59, 10-05-2008 | #61 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Admiral:
Вот ещё. Вообщем выклаюываю пример, помогите разобраться и дописать. Что необходимо : 1. Когда ничего не делаешь с главным окном, то иконка в трее и контекстное меню работают нормально. Если чуть потеребить окно, то после нажатия на иконку в трее правой кнопкой, появляются какие-то дополнительные штуки в пуске. Дак вот и и необходимо как-то убрать. 2. Когда вызываем контекстное меню, то его невозможно закрыть, только если выбрать какой-то компонент, или выбрать другое окно. Любое нажатие вне контекстного меню игнорируются. Это тоже надо как-то исправить. |
|
Последний раз редактировалось Uzvern, 11-05-2008 в 18:33. Отправлено: 18:00, 11-05-2008 | #62 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Можно указав GoTo на первый нужный оператор, а заним без условий написав второй нужный оператор.
Там же чуть выше указано Цитата Admiral:
|
|
Отправлено: 18:47, 11-05-2008 | #63 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Admiral:
|
|
Отправлено: 21:07, 11-05-2008 | #64 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать DeleteSubKey - удаляет параметра, DeleteSubKeyTree - удаляет раздел.
|
Отправлено: 21:41, 11-05-2008 | #65 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Хм...как я понял, можно каким-то способом получить хэш. Как это можно организовать?
+ ещё : как можно сделать, чтобы когда открыта программа и реестр, то выбраная ветка/значение записывалось в программу?! Как отменить закрытие формы? как сделать чтобы она не закрывалась непонимаю. Как я понял, нужно копать где-то здесь : CancelButton, но это не точно |
Последний раз редактировалось Uzvern, 17-05-2008 в 18:38. Отправлено: 17:13, 17-05-2008 | #66 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Да можно, плюс от .NET
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load MsgBox(Me.GetHashCode) End Sub Если нужен полноценный, 128 битный вывод согласно MD5 тогда его нужно написать, вот пример Calculating an MD5 Hash in VB.net Что бы пример работал необходимо либо включить в диапазон имён System.Security.Cryptography (про саму службу Cryptographic Services) Project - > Properties -> References -> Imported namespaces и указать собственно System.Security.Cryptography ![]() либо добавить к проекту новый модуль Solution Explorer ->правой кнопкой мыши Add -> Module... ![]() туда скопировать пример, добавив в начале следующую строчку кода Imports System.Security.Cryptography Использование в этом случаи будет таким Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load MsgBox(getFileMd5(System.Windows.Forms.Application.ExecutablePath)) End Sub .NET Framework Class Library System.Security.Cryptography Namespace Ещё по теме MD5 Class, MD5CryptoServiceProvider Class, HashAlgorithm.ComputeHash Method. Не проще ли считать нужные строки из реестра самостоятельно? А то в предложенном варианте получается некий перехватчик с другого приложения, в данном случаи с Regedit.exe Если идея перехватчика вдохновляет то тут .NET языки не лучший выбор, С++/Delphi лучше с этим справятся, так как нужно будет писать ещё драйвер хука. Блокировка, такого никогда не писал, не было необходимости. По сути не уважения к пользователю, так как не всем такое понравится в виду того что оно ведёт себя как повисшие, если нет диалога. Самое простое что приходит на ум это повторный запуск приложения Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Shell(System.Windows.Forms.Application.ExecutablePath) End Sub Боюсь такое не подойдёт, ведь результат роботы будет потерян. Об этом стоит подумать. Не совсем, CancelButton лишь определяет что было не нажато в случаи если пользователь нажимал ESC, чаше всего в этом случаи на него вешают закрытия того диалога, на который предполагалось нажать Enter. |
Отправлено: 21:20, 17-05-2008 | #67 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Admiral:
|
|
Отправлено: 21:59, 17-05-2008 | #68 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Составив цикл и комбинировав операторы чтения из реестра. Но если ветки массивные приложение будет подтормаживать.
|
Отправлено: 00:27, 18-05-2008 | #69 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Как отпределить : файл или папка, т.е. например Dir("C:\Program Files\") - выводит "Это папка", если Dir("C:\boot.ini") - выводит "Это файл".
Примечание : Пути могут быть любыми. |
Отправлено: 20:11, 18-05-2008 | #70 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - MS Visual Basic 2008 Expres Edition файлы проекта | Anton Naumov | Программирование и базы данных | 7 | 14-05-2010 14:09 | |
VBA - Visual basic 2008 | Anton Naumov | Программирование и базы данных | 1 | 02-01-2010 22:35 | |
visual basic 6 | иоанн | Хочу все знать | 1 | 27-04-2009 18:51 | |
visual basic 6 | guma | Программирование и базы данных | 1 | 26-04-2007 20:41 | |
Visual basic | carlos | Программирование и базы данных | 1 | 04-08-2003 02:03 |
|