[ Visual Basic / VBScript (без WEB-кодинга) ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SuperTroll, 29 Mar 2011.

  1. SuperTroll

    SuperTroll Member

    Joined:
    19 Jul 2010
    Messages:
    36
    Likes Received:
    14
    Reputations:
    4
    В этой специальной теме новички могут задавать "элементарные" вопросы по синтаксису и прочим начинаниям в языке. Аспекты программирования на данном языке под Web рекомендуется обсуждать в соседнем разделе (браузерный VBScript, кодинг под IIS и проч.).
    .
    Moderator.
    __________________________________________





    Не флуди,убьет!​

    Тут я постепенно выкладываю примеры кода, которые помогали мне в изучении языка.


    Запуск файла
    На форму кидаем Process
    Code:
    Process1.StartInfo.FileName = ("C:\WINDOWS\system32\calc.exe")
    Process1.Start()
    Удаление файла
    Code:
    Kill("c:\1.txt")
    Информация о Информация о системе
    Code:
    Label1.Text = My.Computer.Info.OSFullName
    Label2.Text = My.Computer.Info.OSPlatform
    Label3.Text = My.Computer.Info.OSVersion
    Переход на сайт​

    Code:
    System.Diagnostics.Process.Start("www.google.ru")
    Screenshot​

    Code:
          Try
                Dim ScreenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
                Dim screenGrab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
                Dim q As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenGrab)
                q.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
                screenGrab.Save("c:\Screen.jpeg")
            Catch ex As Exception
                MsgBox("Error", MsgBoxStyle.Critical, "Error!")
            End Try
    Снятие процесса
    Code:
            Dim pList() As System.Diagnostics.Process = _
          System.Diagnostics.Process.GetProcessesByName("taskmgr")
            For Each proc As System.Diagnostics.Process In pList
                proc.Kill()
            Next
    Проигрывание музыки
    Только wav формат!
    Code:
      My.Computer.Audio.Play("C:\instal\1.wav", AudioPlayMode.Background)
    Установка курсора в определённую точку
    Code:
    Cursor.Position = New Point(192, 123) 
    Local ip
    На форму кидаем TextBox1
    Code:
    Dim ip As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName)
    TextBox1.Text = ip.AddressList.GetValue(0).ToString
    OpenFileDialog
    На форму кидаем TextBox1 и OpenFileDialog1
    Code:
    OpenFileDialog1.ShowDialog()
    TextBox1.Text = (OpenFileDialog1.FileName)
    ProgressBar​

    На форму кидаем ProgressBar1
    Code:
    ProgressBar1.Value = ProgressBar1.Value + 10
    If ProgressBar1.Value = ProgressBar1.Maximum Then
    MsgBox("Done!")
    End If
    Создание папки
    Code:
    MkDir("c:\Папка")
    Случайные числа​
    Code:
    Dim num As String
    Randomize()
    Dim value As Integer = CInt(Int((9999 * Rnd()) + 1))
    num = (value)
    Закачка файлов из Интернета​
    Code:
    My.Computer.Network.DownloadFile("www.test.ru\1.txt", "c:\Antichat.ru.txt")
    Время​
    Code:
    Label1.Text = CStr(TimeOfDay)
    Ping​
    Code:
    If My.Computer.Network.Ping("www.google.ru", 1000) Then
    MsgBox("Сервер работает.")
    Else
    MsgBox("Сервер не работает.")
    End If
    Переименовываем папку​
    Code:
    My.Computer.FileSystem.MoveDirectory("C:\test", "C:\Antichat.ru", True)
    Проверяем существование файла​
    Code:
            If My.Computer.FileSystem.FileExists("c:\test.txt") Then
    MsgBox("File found.")
    Else
    MsgBox("File not found.")
    End If
    Имя компьютера​
    Code:
    MsgBox(My.Computer.Name)
    Имитируем нажатия клавиш клавиатуры​
    Code:
    My.Computer.Keyboard.SendKeys("A")
    My.Computer.Keyboard.SendKeys("n")
    My.Computer.Keyboard.SendKeys("t")
    My.Computer.Keyboard.SendKeys("i")
    My.Computer.Keyboard.SendKeys("c")
    My.Computer.Keyboard.SendKeys("h")
    My.Computer.Keyboard.SendKeys("a")
    My.Computer.Keyboard.SendKeys("t")
    
    или
    
    My.Computer.Keyboard.SendKeys("Antichat")
    Цвет пикселя под курсором​

    На форму кидаем Label1 и PictureBox1
    Code:
    Dim a As New Drawing.Bitmap(1, 1)
    Dim b As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(a)
    b.CopyFromScreen(New Drawing.Point(Cursor.Position.X, Cursor.Position.Y), New Drawing.Point(0, 0), a.Size)
    Dim c As Drawing.Color = a.GetPixel(0, 0)
    PictureBox1.BackColor = c
    Label1.Text = PictureBox1.BackColor.Name
    Получаем заголовок окна, которое находится в фокусе​

    Объявляем декларации
    Code:
    Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Integer
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
    Code:
    Dim hWndActive As String
    hWndActive = GetForegroundWindow()
    Dim capt As String
    Dim lenC As Integer
    capt = Space(200) 
    lenC = GetWindowText(hWndActive, capt, 255) 
    Label1.Text = capt
    Передаём фокус определённому окну​

    Объявляем декларации
    Code:
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
    Code:
    Dim lFoundWindow As Long
    Dim lOK As Long
    Dim lOK1 As Long
    lFoundWindow = FindWindow(vbNullString, "Диспетчер задач Windows")
    If lFoundWindow <> 0 Then
    lOK = SetForegroundWindow(lFoundWindow)
    lOK1 = ShowWindow(lFoundWindow, 9)
    lOK1 = ShowWindow(lFoundWindow, 10)
    lFoundWindow = 0
    lOK = 0
    lOK1 = 0
    End If
    Переключаем раскладку клавиатуры​

    Объявляем декларации
    Code:
    Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal Flags As Long) As Long
    Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long
    Const KbdRu = "00000419"
    Const KbdEn = "00000409"
    Ru - En
    Code:
      Dim hLayout As Long
    hLayout = LoadKeyboardLayout(KbdEn, 0)
    ActivateKeyboardLayout(hLayout, 0)
    En - Ru
    Code:
    Dim hLayout As Long
    hLayout = LoadKeyboardLayout(KbdRu, 0)
    ActivateKeyboardLayout(hLayout, 0)
    Считаем MD5 файла​
    функции
    Code:
        Public Function MD5CalcFile(ByVal filepath As String) As String
    Using reader As New System.IO.FileStream(filepath, IO.FileMode.Open, IO.FileAccess.Read)
    Using md5 As New System.Security.Cryptography.MD5CryptoServiceProvider
    Dim hash() As Byte = md5.ComputeHash(reader)
    Return ByteArrayToString(hash)
    End Using
    End Using
    End Function
    
        Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
    Dim sb As New System.Text.StringBuilder(arrInput.Length * 2)
    For i As Integer = 0 To arrInput.Length - 1
    sb.Append(arrInput(i).ToString("X2"))
    Next
    Return sb.ToString().ToLower
    End Function
    Code:
    TextBox1.Text = MD5CalcFile("c:\test.exe")


    MD5 Encrypter
    функции
    Code:
       Public Shared Function MD5(ByVal Text As String, Optional ByVal Seperator As String = Nothing) As String
    Dim Hash As Byte()
    Dim Encoder As New System.Text.UTF8Encoding()
    Dim Hasher As New System.Security.Cryptography.MD5CryptoServiceProvider()
    Hash = Hasher.ComputeHash(Encoder.GetBytes(Text))
    Text = Replace(BitConverter.ToString(Hash), "-", Seperator)
    Return Text
    End Function
    Code:
    TextBox2.Text = MD5(TextBox1.Text) 
    Получаем внешний IP​

    Imports
    Code:
    Imports System.Text.RegularExpressions
    Imports System.Net
    Imports System.IO
    Code:
    Dim FindIP As New System.Net.WebClient
    Label1.Text = System.Text.Encoding.ASCII.GetString((FindIP.DownloadData("http://whatismyip.com/automation/n09230945.asp")))
    FindIP.Dispose()
    Host Name​

    Imports
    Code:
    Imports System.Text.RegularExpressions
    Imports System.Net
    Imports System.IO
    Code:
    Dim HostNameAs String
    HostName= Dns.GetHostName
    Label1.Text = HostName
    CD-ROM​

    декларация
    Code:
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Открыть дверцу CD-ROM
    Code:
    Call mciSendString("Set CDAudio Door Open Wait", 0&, 0&, 0&)
    Закрываем дверцу CD-ROM
    Code:
    Call mciSendString("Set CDAudio Door Closed Wait", 0&, 0&, 0&)
    Загрузка файла на сервер по FTP
    Code:
        Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://ftp.narod.ru/file.txt"), System.Net.FtpWebRequest)
            request.Credentials = New System.Net.NetworkCredential("Ваш Login", "Ваш Password")
            request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
            Dim file() As Byte = System.IO.File.ReadAllBytes("c:\file.txt")
            Dim strz As System.IO.Stream = request.GetRequestStream()
            strz.Write(file, 0, file.Length)
            strz.Close()
            strz.Dispose()
    Убираем программу из TaskBar и прячем форму
    Code:
    Me.Hide()
    Me.ShowInTaskbar = False
    
    Продолжение следует…
     
    #1 SuperTroll, 29 Mar 2011
    Last edited by a moderator: 26 Sep 2011
    maza-in, Andrej1928, makag and 2 others like this.
  2. Mr.Replica

    Mr.Replica Member

    Joined:
    18 May 2010
    Messages:
    124
    Likes Received:
    41
    Reputations:
    10
    Эмм,прости конечно,но в чём смысл темы???Для изучающих VB есть отдельные площадки типо Cyberforum и т.д где всё расписанно вдоль и поперег.
     
  3. SuperTroll

    SuperTroll Member

    Joined:
    19 Jul 2010
    Messages:
    36
    Likes Received:
    14
    Reputations:
    4
    кому надо - тот поймёт
     
  4. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Помогите мне где находятся компоненты кроме стандартных(general) ничего не нашел.
     
  5. SuperTroll

    SuperTroll Member

    Joined:
    19 Jul 2010
    Messages:
    36
    Likes Received:
    14
    Reputations:
    4
    Если для VB6 то:
    [​IMG]
    [​IMG]
    P.S.
    Ставь Visual Studio 2008 или Visual Studio 2010
     
  6. GRAFMC

    GRAFMC New Member

    Joined:
    7 Aug 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    зараствуйте, помогите, как сделать так что бы из Textbox1 и Textbox2 введённые даные при нажатии на Button1 отправлялись на мыло/аську. Заранее спасибо.
     
  7. UltraLoh

    UltraLoh New Member

    Joined:
    12 Apr 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Как на ICQ - не знаю, а вот на мыло можно двумя способами:
    1. Создать сайт (Например на hostinger.ru), залить на него PHP скрипт, который при обращении к нему отсылает тексты на Ваше мыло.
    2. Через SMTP-сервер. Пример на gmail.com :
    Code:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Try
                Dim SmtpServer As New SmtpClient()
                Dim mail As New MailMessage()
                SmtpServer.Credentials = New Net.NetworkCredential("твояпочта@gmail.com", "твойпароль")
                SmtpServer.Port = 587
                SmtpServer.Host = "smtp.gmail.com"
                mail = New MailMessage()
                mail.From = New MailAddress("твояпочта@gmail.com")
                mail.To.Add("почтаполучателя@gmail.com")
                mail.Subject = "Тема сообщения"
                SmtpServer.EnableSsl = True
                mail.Body = TextBox1.Text & TextBox2.text
                SmtpServer.Send(mail)
                MsgBox("Сообщение отправлено")
            Catch ex As Exception
                MsgBox("Сообщение не отправлено")
            End Try
        End Sub
        End Sub
     
  8. rtyy

    rtyy Member

    Joined:
    8 Mar 2008
    Messages:
    12
    Likes Received:
    7
    Reputations:
    -2
    Почти всё что выше справедливо лишь для VB.NET и никоим образом не относится ни к классическому Visual Basic, ни уж тем более к VBScript.
     
    #8 rtyy, 10 Aug 2011
    Last edited: 10 Aug 2011
  9. rtyy

    rtyy Member

    Joined:
    8 Mar 2008
    Messages:
    12
    Likes Received:
    7
    Reputations:
    -2
    VBScript: работа с CD-rom (оригинальный подход).
    С помощью контрола Windows Media Player, можно не только открыть трей CD-рома, но также успешно и закрыть:
    Code:
    openCD()
    WSCRIPT.SLEEP 2000
    closeCD()
    
    '--------------------
    'OPEN
    sub openCD
    	Set WMP = CreateObject ("WMPlayer.OCX")
    		WMP.cdromCollection.Item(0).Eject()
    end sub
    '--------------------
    'CLOSE
    sub closeCD
    	Set WMP = CreateObject ("WMPlayer.OCX")
    		WMP.cdromCollection.Item(0).Eject()
    		WMP.cdromCollection.Item(0).Eject()
    end sub
     
  10. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Как отправить бинарный файл на сервер в виде POST запроса?
    Я понимаю, что нужно использовать WebRequest Class, но как туда засунуть файл?
     
  11. aka_maestro

    aka_maestro Фрикер

    Joined:
    11 Jan 2010
    Messages:
    388
    Likes Received:
    74
    Reputations:
    104
    VB

    ребят, может и глупо но
    прошу помощи
    мой товарищ находящийся на первом курсе требует от меня следующие.
    я в программировании 1.5% из ста

    вот задача. я хз что он просит, но сказал выглядит так

    denny (22:30:20 25/09/2011)
    кароче "ввести с клавиатуры число в десятичной системе и вывести в шестнадцетиричную" :rolleyes:

    просьба меня сильно не троллить и не пинать.
    как я понял вводишь в консоль число, она выдаёт в 16ой системе. помогите с написанием
     
    #11 aka_maestro, 25 Sep 2011
    Last edited: 25 Sep 2011
  12. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    Гугл не?
    http://www.cyberforum.ru/vba/thread38130.html
     
    1 person likes this.
  13. Demon__666

    Demon__666 New Member

    Joined:
    26 Sep 2011
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    как подключить курсорные клавиши методом if chr(keycode) = "?????"
     
  14. Feonor

    Feonor Elder - Старейшина

    Joined:
    23 Jul 2008
    Messages:
    128
    Likes Received:
    52
    Reputations:
    19
    лови
    Code:
    Dim s As String
    s = = Console.ReadLine()
    s = s.ToString("X")
    Console.Writeline(s)
     
    #14 Feonor, 21 Oct 2011
    Last edited: 21 Oct 2011
  15. Demon__666

    Demon__666 New Member

    Joined:
    26 Sep 2011
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    Помогите

    каким компонентом можно заменить Panel с 2010 VB в visual basic 6
    Дело в том что пишу теннис .. написал его в 2010 VB
    вот код :
    Public Class Form1
    Dim Links As Double = 20
    Dim oben As Double = 20

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Ball.Left -= Links
    Ball.Top -= oben

    If Ball.Top <= 0 Then oben = -25
    If Ball.Bottom >= 325 Then oben = +10
    If Ball.Left <= -100 Then Links = -20
    If Ball.Right >= 1000 Then Links = +20
    Plattform1.Top = MousePosition.Y - Me.Location.Y - 50

    If Ball.Top > Plattform2.Top Then Plattform2.Top += 15
    If Ball.Bottom < Plattform2.Bottom Then Plattform2.Top -= 15

    If Ball.Left <= Plattform1.Right Then
    If Ball.Bottom >= Plattform1.Top Then Links = -20 Else Label1.Text = "Игрок2 выиграл"
    End If

    If Ball.Right >= Plattform2.Left Then
    If Ball.Bottom >= Plattform2.Top Then Links = +20 Else Label2.Text = "Игрок1 выиграл"
    End If



    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Timer1.Start()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Timer1.Stop()

    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Ball.Top = Location.Y = 156
    Ball.Top = Location.X = 434
    Label1.Text = " Игрок1 "
    Label2.Text = " Игрок2 "
    End Sub


    End Class
     
    #15 Demon__666, 27 Oct 2011
    Last edited: 27 Oct 2011
  16. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Бля это не яп, а конструктор лего... пздц
     
  17. C00LPack

    C00LPack Elder - Старейшина

    Joined:
    7 Oct 2010
    Messages:
    425
    Likes Received:
    72
    Reputations:
    19
    то же самое я могу сказать про делфи\с#\подставить_нужное.
     
  18. Feonor

    Feonor Elder - Старейшина

    Joined:
    23 Jul 2008
    Messages:
    128
    Likes Received:
    52
    Reputations:
    19
    из MSDN
    Используй Frame control

    2 De-visible, что то новое для себя открыл? хаха))
     
  19. cerber3000

    cerber3000 Member

    Joined:
    8 Nov 2008
    Messages:
    76
    Likes Received:
    31
    Reputations:
    2
    Здравствуйте задали задчку сделать программу которая создает базу данных работников предприятия (информация должна записываться в файл Acess) что могу сказать по функционалу программы то в ней должно вводиться ФИО работника его дата рождения и адрес и год поступления на работу, также чтобы из этой программы можно было распечатать эту информацию. Если сможите помогите пожалуйста пришлите исходник.
     
  20. pro100_4ydak

    pro100_4ydak New Member

    Joined:
    2 Sep 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    VB6.0
    задано 4 числа, найти минимальное по модулю число и каждое из заданных чисел умножить на него

    Private Sub Command1_Click()
    Dim A, B, C, D As Integer
    If Abs(A) < Abs(B) And Abs(A) < Abs(C) And Abs(A) < Abs(D) Then
    P1 = A * B And P2 = A * C And P3 = A * D
    ElseIf Abs(B) < Abs(A) And Abs(B) < Abs(C) And Abs(B) < Abs(D) Then
    P4 = B * A And P5 = B * C And P6 = B * D
    ElseIf Abs(C) < Abs(A) And Abs(C) < Abs(B) And Abs(C) < Abs(D) Then
    P7 = C * A And P8 = C * B And P9 = C * D
    Else: P10 = D * A And P11 = D * B And P12 = D * C
    End If
    End Sub

    не работает... при вводе например а=4 b=3 с =1 d=7 в P10 выдается 0, хотя ответы должны быть в P7,8,9
     
    #20 pro100_4ydak, 8 Dec 2011
    Last edited: 8 Dec 2011