Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Ответить
Настройки темы
VBA - Visual Basic 2008

Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Uzvern
Дата: 24-04-2008
Описание: Забыл дописать название темы. Прошу простить.
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).

Спасибо за внимание.

>>Блин, не дописал в названии темы : Действие при нажатии правой кнопки

Отправлено: 17:47, 24-04-2008

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


По предыдущему вопросу есть готовый компонент Registry Toolkit .NET если не охота с циклами заморачиватся. Там уверяют что он может сохранить всё содержимое реестра в один XML файл. Так что осталось парсить сей файл на нужные ключи.

Я проверяю само их наличие (файла или папки), а уже потом указываю соответствующие манипуляции.
Можно анализируя ошибки возвращаемые от этих функций
Код: Выделить весь код
 Public Function FileExists(ByVal FileFullPath As String) _
      As Boolean

        Dim f As New IO.FileInfo(FileFullPath)
        Return f.Exists

    End Function

    Public Function FolderExists(ByVal FolderPath As String) _
   As Boolean

        Dim f As New IO.DirectoryInfo(FolderPath)
        Return f.Exists

    End Function
Determine if a File or a Folder Exists (ASP.NET/VB.NET)
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:44, 18-05-2008 | #71



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Кстати, нашел более качественный код для перетаскивания формы без "прыжков форы по экрану"

Код: Выделить весь код
Private b_Down As Boolean
    Private oldPoint As Point
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        b_Down = True
        oldPoint = e.Location
    End Sub
    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If b_Down Then
            Me.Location = New Point(Me.Left + e.X - oldPoint.X, Me.Top + e.Y - oldPoint.Y)
        End If
    End Sub
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        If b_Down Then
            Me.Location = New Point(Me.Left + e.X - oldPoint.X, Me.Top + e.Y - oldPoint.Y)
            b_Down = False
        End If
    End Sub
bbs.vbstreets.ru

Отправлено: 01:05, 19-05-2008 | #72


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Как сделать поиск определенного файла? Например мне нужно узнать где лежит файл cmd.exe или какой-нибудь другой. Необходимый путь должен выглядеть так : "C:\WINDOWS\System32\" , а не "C:\WINDOWS\System32\cmd.exe"

Отправлено: 17:29, 21-05-2008 | #73


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


C VB6 поставлялась даже готовая формочка SEEK.FRM.
В VB.NET 2008 я подобного не нашёл. Возможно плохо искал или она присутствует в не Експресс редакциях.
VB.Net: Recursive File Searching... организовано по принципу рекурсивного поиска.
Плюс там же организована возможность поиска по маске.
Так что можно доделать до необходимого ранее
Цитата Uzvern:
по маске (*а.txt) ... только цифры (*цифры*.txt) или только буквы (*любые буквы*.txt) »

Отправлено: 17:40, 21-05-2008 | #74


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Можно ли как-то подгружать картинку из интернета в PictureBox ?

Отправлено: 16:06, 23-05-2008 | #75


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Да.
Код: Выделить весь код
PictureBox1.Load("http://forum.oszone.net/image.php?u=91692&dateline=1209059773")

Отправлено: 16:55, 23-05-2008 | #76


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


О...круто. я так понял можно подгружать почти в любой объект, но не об этом сейчас речь.
У меня вопрос по теме : как-то можно счиать размеры картинки и по результату создать PictureBox ?

Уже ненадо. Сам разобрался...
Код: Выделить весь код
PictureBox1.Load("http://forum.oszone.net/image.php?u=91692&dateline=1209059773")
        Me.Size = PictureBox1.Image.Size
Только возникает следующий вопрос : как сделать чтобы изображение было по середине экрана?

Последний раз редактировалось Uzvern, 23-05-2008 в 19:09.


Отправлено: 18:21, 23-05-2008 | #77


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Uzvern, считать ничего не надо.
Создаём PictureBox
Код: Выделить весь код
Dim PictureBox1 As New PictureBox()
Добавляем его к форме, по умолчанию в верхнем левом углу.
Код: Выделить весь код
Controls.Add(PictureBox1)
и грузим картинку,
Код: Выделить весь код
PictureBox1.Load("C:\Windows\Blue Lace 16.bmp")
он примет её размер.

Есть обратная задача, что б картинка приняла размер компонента.
Тогда несомненно указываем его размер
Код: Выделить весь код
PictureBox1.Size = New System.Drawing.Size(10, 20)
выбираем режим Streetch, что б картинка приняла пропорции компонента
Код: Выделить весь код
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Подробнее здесь.

Цитата Uzvern:
Me.Size = PictureBox1.Image.Size »
Этот код приводит размеры формы к размерам компонента PictureBox1, и как следствия к размерам загруженной картинки, а не процесс который требует
Цитата Uzvern:
счиать размеры картинки и по результату создать PictureBox »
Цитата Uzvern:
как сделать чтобы изображение было по середине экрана? »
Для предложенного варианта трактования изображения (форма изменяющая свой размер под размер картинки) это реализируэться следующим кодом
Код: Выделить весь код
Me.Size = PictureBox1.Image.Size
Me.Left = Screen.PrimaryScreen.Bounds.Width / 2 - Me.Left / 2
Me.Top = Screen.PrimaryScreen.Bounds.Height / 2 - Me.Top / 2
См. также Get the Current Screen Resolution (VB.NET)

Последний раз редактировалось Admiral, 23-05-2008 в 19:36. Причина: Добавил код размещающий изображение по центру экрана


Отправлено: 18:56, 23-05-2008 | #78


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Можно ли как-то сделать эмуляцию нажатия клавишь?
Например запустил прогу, надал на пару кнопок, она автоматом сворачивается, открываешь например окно аси и она автоматом начинет печатать и отправлять. Возможно такое замутить?

Отправлено: 20:59, 24-05-2008 | #79


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Можно. Отличают два вида нажатий: в свою прогу, через свойство нужной кнопки (или элемента) Button1.Value
и для чужой проги через упомянутый SendKey.
Только что б отправить необходимо нужное окно найти и активировать, прийдётся использовать Win32 Api
Сразу после Public Class Form1 пишем
Код: Выделить весь код
    Declare Auto Function FindWindow Lib "USER32.DLL" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean
для использования необходимых Win32 Api
Код: Выделить весь код
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim HWND As IntPtr = FindWindow(vbNullString, "ICQ")
        If HWND <> IntPtr.Zero Then
            Dim theForegroundWindow As Boolean = SetForegroundWindow(HWND)
            If theForegroundWindow = True Then
                For I As Integer = 0 To 10
                    SendKeys.SendWait(I)
                Next I
            End If
        End If
    End Sub

Отправлено: 22:48, 24-05-2008 | #80



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход