Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум 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

 

Новый участник


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

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


Всем привет.
Появилась проблема с написанием WEB-приложения.
Нужно отправить GET-запрос на сервер, но значение Connection в хедерах не должно присутствовать...

GET / HTTP/1.1
Host: www.google.ru
Connection: Close

Отправить запрос я коекак научился с помощью HttpWebRequest, а вот избавиться от Connection не получается.
Помогите плиз!

Отправлено: 18:57, 25-03-2009 | #301



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

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


Ветеран


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

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


Мессир доброго времени суток.
Вроде всё тривиально, указываем KeepAlive = False и Connection = Nothing но на последней записи во время выполнения сваливается с ошибкой о необходимости присваивать через свойство объекта.
Только не понятно через что по их мнению сейчас идёт присвоение?
На форуме MS вопрос по данному поводу уже подымался - Get rid of Connection header in HttpWebRequest (использовали C#), отправили читать MSDN (здесь по-русски HttpWebRequest.Connection - свойство), только там поданному поводу не привели пример, а сказали как присвоить/задать.
Здесь - не отрабатывает Headers.Add вроде как поняли (в контексте другого объекта), что именно за свойство и как присваивать.
Вот так же запись в блоге Setting HTTP headers in .NET: This header must be modified using the appropriate property как раз по тексту данной ошибки.
Есть другая информация, конкретно бага в VB.NET 2008 - Assigning null to the Connection property of HttpWebRequest results in an exception только там указанно что с данным столкнулись в Windows Server 2003


Код: Выделить весь код
Imports System.Net

Module Module1

    Dim myHttpWebRequest As HttpWebRequest

    Sub Main()
        Dim myHttpWebRequest As HttpWebRequest
        myHttpWebRequest = HttpWebRequest.Create("http:\\www.google.ru")

        myHttpWebRequest.Proxy = New WebProxy("127.0.0.1", 8888)
        myHttpWebRequest.Method = "GET"

        myHttpWebRequest.KeepAlive = False
        'myHttpWebRequest.Connection = Nothing
        'myHttpWebRequest.Headers.Remove(HttpRequestHeader.Connection)
        myHttpWebRequest.GetResponse()

    End Sub

End Module
Пускаю через прокси, что б видеть что передаётся в хедерах заголовках (лучше всё же использовать перевод, или если на то пошло писать оригинальный термин - Headers), подробнее в Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Вопрос остаётся открытым, быть может другие участники имеющий, опыт работы с объектом HttpWebRequest, предложат своё решение по прятанью значения Connection или вовсе его не передачи, как бывает в случаи с https.

Отправлено: 21:25, 27-03-2009 | #302


Новый участник


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

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


Admiral,
Я именно так как в примере запрос и отправляю.
и с myHttpWebRequest.Connection = Nothing тоже получал ошибку...
Но значение Connection: Close в заголовке все равно остается... Мне бы от него совсем избавиться...

P.S. Из информации, которую нашел в интернете делаю вывод что HttpWebRequest нельзя отправить вообще без заголовка Connection

P.P.S. Сейчас нашел вроде способ. Пытаюсь запросы не через HttpWebRequest отправлять а с помощью ActiveX компонента AxWinsock
Вроде получается. Только все заголовки приходится прописывать переменными.. Строка запроса вырастает до невероятных размеров.. И программа не работает без файла MSWinSck.ocx.
Но это всё же лучше чем ничего.

Отправлено: 21:54, 28-03-2009 | #303


Новый участник


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

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


Всем привет.

Есть небольшой вопрос. При нажатии на иконку в трее форма скрывается, либо появляется. (ShowInTaskbar = False)
Код: Выделить весь код
    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
        If Me.Visible Then
            Me.Hide()
        Else
            Me.Show()
        End If
    End Sub
Но если после скрытия, сделать активным какое-нибудь другое окно (например блокнот), то при попытке "развернуть" свою программу она окажется под этим окном (под блокнотом*). Т.е. проще говоря, я не знаю как вывести окно на первый план.

Отправлено: 13:34, 13-04-2009 | #304


Ветеран


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

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


GolfNorth, Me.TopMost = True
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:22, 13-04-2009 | #305


Новый участник


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

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


Благодарю, но не совсем то - Me.TopMost = True оставляет окно поверх всех окон постоянно. Я же хочу сделать так, чтоб при нажатии на иконку в трее окно просто выходило на передний план, а не оставалась поверх постоянно. Таким напильным методом пока сделал:

Код: Выделить весь код
.....
            Me.Show()
            Me.TopMost = True
            Me.TopMost = False
.....
Т.е. делаю окно поверх всех окон, потом опцию поверх всех окон отключаю.

Отправлено: 17:38, 13-04-2009 | #306


Ветеран


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

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


GolfNorth если не охота связываться c Win32 Api это как раз решение не отходя от VB, на чём так же сошлись на форуме MS
Если всё же интересно, вот как это можно организовать применив Win32 Api функцию SetForegroundWindow
Код: Выделить весь код
Public Class Form1
    Public Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

    Private Sub '...'
        'Me.TopMost = True
        'Me.TopMost = False
        SetForegroundWindow(Me.Handle)
    End Sub

End Class

Отправлено: 18:10, 13-04-2009 | #307

N93 N93 вне форума

Новый участник


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

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


Помогите пожалуйсто разобраться ) Дело в том что самоучитель у меня для Visual Basic 6, а установлен 2008 и вот возникают некоторые проблемы при освоении этого языка.
1й вопрос: Каким оператором в VB 2008 заменяется старый
Код: Выделить весь код
Print
и как им пользоваться? ( В VB 6 он выводил текст на форму, а в 2008й версии походу он делает что то другое и мне приходится использовать оператор Debug.Print который выводит текст только в окно отладки ;( )
Пример:
Код: Выделить весь код
Print "Объём="; V
End sub
2й вопрос : Как сделать что бы при завершении работы программы выполнясь какое-то действие? (У меня в книге написано что это делаеться с помощью оператора
Код: Выделить весь код
Form_Terminate
, а вот в 2008мом он уже не используется) объясните плыз как пользоваться новой версией этого оператора
Пример:
Код: Выделить весь код
Form_Terminate()
MsgBox("bb world")
EndSub
Заранее спасибо )
PS: Хотя не уверен что выразился понятно.

Отправлено: 18:38, 13-04-2009 | #308


Ветеран


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

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


N93, доброго времени суток.
Это оператор в VB6 был оставлен для переходящих с QBasic, его основное предназначение печать в файл, указав после служебного символа # конкретный номер соответственно открыто файла.
В VB.NET с возможностью печатать на форме с помощью данного оператора попрощались, наиболее близкий вариант, основанный на кодах из этих тем
[2008] VB.NET Equivalent Of VB6's "Print"
Прозрачность PictureBox'ов
Код: Выделить весь код
Public Class Form1
    Dim j As String = 3
    Public Sub WriteSomeText(ByVal g As Graphics, ByVal s As String)
        Dim myFont As New Font(System.Drawing.FontFamily.GenericSansSerif, 10, FontStyle.Regular)
        g.DrawString(s & Environment.NewLine, myFont, Brushes.Black, 3, j)
        j = j + 12
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim V As Integer = 10
        Dim Gr As Graphics = Me.CreateGraphics
        WriteSomeText(Gr, "Объём =" & V.ToString)
    End Sub
End Class
Debug.Print весьма удобное средство разработчика, здесь оно работает аналогично как и в VB6

По второму вопросу тут несколько проще
Код: Выделить весь код
Private Sub Form1_HandleDestroyed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleDestroyed
        MsgBox("bb world")
End Sub

Последний раз редактировалось Admiral, 13-04-2009 в 21:26.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:11, 13-04-2009 | #309

N93 N93 вне форума

Новый участник


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

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


'Public Sub WriteSomeText' , а где этот элемент брать? или его только вводить вручную?

Отправлено: 21:02, 13-04-2009 | #310



Компьютерный форум 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




 
Переход