USER32.DLL как правильно декларировать

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

USER32.DLL как правильно декларировать

Сообщение Invader » 30.10.2011 (Вс) 22:37

интересует FindWindow декларирую так:
Код: Выделить всё
<DllImport("user32.dll")> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function

выдаёт - Ошибка 1 Недопустимый оператор для пространства имен.
как же её прописать?
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 30.10.2011 (Вс) 22:51

Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 30.10.2011 (Вс) 22:58

спасибо за ответ, но я от туда и взял код из примера, либо я что то не так понял. что то отдельно надо подключать visual studio 2100
умён и жаден,
характер отсуствует

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 30.10.2011 (Вс) 23:02

Так никакой ошибки нет:
Код: Выделить всё
Imports System.Runtime.InteropServices

Module All

<DllImport("user32.dll")> _
Private Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function

Public Sub Main()
  MsgBox(FindWindow("", ""))
End Sub

End Module


По описанию ошибки похоже, что функция не находится ни внутри класса, ни внутри модуля. Кроме того, для можуля нельзя использовать Shared.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 30.10.2011 (Вс) 23:18

сглупил, теперь функция внутри, код сейчас выглядит так
Код: Выделить всё
Imports System.Runtime.InteropServices

Module All
    Dim ikw As Long
    <DllImport("user32.dll")> _
    Private Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    End Function

    Public Sub Main()
        ikw = FindWindow(vbNullString, "1  - Блокнот")
        Form1.TextBox1.Text = ikw
    End Sub

End Module

и ничего не происходит - Form1.TextBox1.Text =0 , хотя в текстовое поле должен был прийти ответ
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 31.10.2011 (Пн) 2:29

Invader писал(а):Form1.TextBox1.Text =0 , хотя в текстовое поле должен был прийти ответ

Ответ? Телеграмма?

MSDN (NULL = 0)

MSDN писал(а):Return value

Type: HWND

If the function succeeds, the return value is a handle to the window that has the specified class name and window name.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 31.10.2011 (Пн) 3:37

Код: Выделить всё
        ikw = FindWindow(vbNullString, "1  - Блокнот")

Потому что название блокнота содержит не обычное тере, а а длинное тере [Em Dash] (CharCode = &2014h)

Код: Выделить всё
Imports System.Runtime.InteropServices

Public Class Form1
    Private Delegate Function EnumWindowsProc(ByVal hWnd As IntPtr, ByVal lParam As IntPtr) As Boolean

    <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
    End Function

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, ByVal childAfter As IntPtr, ByVal lclassName As String, ByVal windowTitle As String) As IntPtr
    End Function

    <DllImport("User32.dll")>
    Public Shared Function SendMessage(hWnd As IntPtr, uMsg As Integer, wParam As Integer, lParam As String) As Integer
    End Function

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim lpszParentClass As String = "Notepad"
        Dim lpszParentWindow As String = "Безымянный " & ChrW(8212) & " Блокнот"
        Dim lpszClass As String = "Edit"

        Dim ParenthWnd As New IntPtr(0)
        Dim hWnd As New IntPtr(0)

        ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow)

        If ParenthWnd.Equals(IntPtr.Zero) Then
            Console.WriteLine("Notepad Not Running!")
        Else
            hWnd = FindWindowEx(ParenthWnd, hWnd, lpszClass, "")

            If hWnd.Equals(IntPtr.Zero) Then
                Console.WriteLine("Notepad doesn't have an Edit component, how strange.")
            Else
                Console.WriteLine("Notepad Window: " & ParenthWnd.ToString())
                Console.WriteLine("Edit Control: " & hWnd.ToString())

                SendMessage(hWnd, &HC, 0, "Привет")
            End If
        End If
    End Sub
End Class
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 31.10.2011 (Пн) 4:30

Спасибо, я пытался в место длинного тире ставить -- :oops:
но вот вопрос из Вашего кода FireFenix мне не ясно. если я не знаю lpszParentClass тогда
Код: Выделить всё
Dim lpszParentClass As String = ""
?
с классом разобрался! В моей ситуации он имеет имя #32770

вопрос как за декларировать SendDlgItemMessage на http://pinvoke.net что то ничего не увидел,
дело в том что у окна 2 поля edit с ID 1001 и с ID 1002
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 31.10.2011 (Пн) 12:15

Invader писал(а):если я не знаю lpszParentClass тогда
Код: Выделить всё
Dim lpszParentClass As String = ""
2

Да, или использовать другие сигнатуры
Код: Выделить всё
    <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindowByClass(ByVal lpClassName As String, ByVal zero As IntPtr) As IntPtr
    End Function

    <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindowByCaption(ByVal zero As IntPtr, ByVal lpWindowName As String) As IntPtr
    End Function

и посылать 0
Код: Выделить всё
FindWindowByCaption(0, lpszParentWindow)


Invader писал(а): SendDlgItemMessage на http://pinvoke.net что то ничего не увидел

http://pinvoke.net/default.aspx/user32/ ... ssage.html

Прояви уже смекалку! Изображение Посмотри сигнатуры и какие типы в msdn, и сделай по аналогии для других функций
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 31.10.2011 (Пн) 15:24

FireFenix писал(а):Да, или использовать другие сигнатуры и посылать 0

Почему бы Nothing не послать просто?

Invader писал(а):
Код: Выделить всё
Dim ikw As Long

Конечно, это не ошибка, но почему тут Long, а не Integer или IntPtr?

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 03.11.2011 (Чт) 13:39

в целом весь проект на vb6 работал, код укажу ниже:
Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Private Declare Function GetDlgItem Lib "user32.dll" ( _
     ByVal hDlg As Long, _
     ByVal nIDDlgItem As Long) As Long
Private Declare Function SendDlgItemMessage Lib "user32.dll" Alias "SendDlgItemMessageA" ( _
     ByVal hDlg As Long, _
     ByVal nIDDlgItem As Long, _
     ByVal wMsg As Long, _
     ByVal wParam As Long, _
     ByVal lParam As Long) As Long
Const WM_SETTEXT = &HC
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HE
Const WM_CLOSE = &H10
Const WM_LBUTTONDOWN As Long = &H201
Const BM_CLICK As Long = &HF5&
Dim x As String
Dim hw As Long

Private Sub Text1_Change()
          x = Text1.Text
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
          hw = FindWindow(vbNullString, "форма2" & Chr(0))
          If KeyAscii = 13 Then SendDlgItemMessage hw, 1004, BM_CLICK, 0, 0
         If KeyAscii = 13 Then Text1.Text = Empty
End Sub

Private Sub Timer1_Timer()
         Dim hw As Long
         Dim bw As Long
         Dim ikw As Long
         Dim sw As Long

        Dim WindowHandle As Long

         ikw = FindWindow(vbNullString, "форма1" & Chr(0))
          SendDlgItemMessage ikw, 1018, BM_CLICK, 0, 0
         hw = FindWindow(vbNullString, "форма2" & Chr(0))
         bw = FindWindowEx(hw, ByVal 0&, "EDIT", vbNullString)
         sw = GetDlgItem(hw, 1002)
         SendMessage bw, WM_SETTEXT, 0, x
         WindowHandle& = sw
         Dim buffer As String, TextLength As Long
         TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&)
         buffer$ = String(TextLength&, 0&)
         Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$)
          Label3.Caption = buffer$


         Label1.Caption = hw
         Label2.Caption = bw

End Sub


суть есть екзешник, я его запускаю появляться (форма1), на ней кнопка(button ID=1018) по нажатию которой я перехожу на (форму2)
на (форме2) есть два текстовых поля и (кнопка ОК, нажатие ввод) в одно я ввожу данные и нажимаю ввод, со второго я получаю ответ

код написанный на VB.NET
я решил задачу с открытием файла передачи первой форме нажатие на кнопке (button ID=1018), и открывается форма2 далее ошибка
на функции GetDlgItem ниже код с пометкой ошибки
Код: Выделить всё
Imports System.Runtime.InteropServices
Public Class Form1
    <DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindowByCaption(ByVal zero As IntPtr, ByVal lpWindowName As String) As IntPtr
    End Function
    <DllImport("User32.dll")>
    Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal uMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
    End Function
    <DllImport("User32.dll")>
    Private Shared Function SendDlgItemMessage(ByVal hDlg As IntPtr, ByVal nIDDlgItem As Integer, ByVal Msg As UInteger, ByVal wParam As UIntPtr, ByVal lParam As IntPtr) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
    Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, ByVal childAfter As IntPtr, ByVal lclassName As String, ByVal windowTitle As String) As IntPtr
    End Function
    <DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
    Private Shared Function GetDlgItem(ByVal hWnd As HandleRef, ByVal nIDDlgItem As Integer) As IntPtr
    End Function
    Public BM_CLICK As Integer = &HF5
    Public WM_SETTEXT = &HC
    Dim x As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim lpszClass As String = "Edit"
        Dim lpszParentWindow As String = "Проекты"
        Dim num2 As String = "form2"
        Dim ParenthWnd As New IntPtr(0)
        Dim hWnd As New IntPtr(0)
        Dim naihWnd As New IntPtr(0)
        Dim sWnd As New IntPtr(0)
        Dim sw As Long
        hWnd = FindWindowByCaption(0, lpszParentWindow)
        Label1.Text = hWnd
        SendDlgItemMessage(hWnd, 1018, BM_CLICK, 0, 0)
        naihWnd = FindWindowByCaption(0, num2)
        sWnd = FindWindowEx(ParenthWnd, naihWnd, lpszClass, vbNullString)
        sw = GetDlgItem(sWnd, 1001) 'Ошибка   1   Невозможно преобразовать значение типа "System.IntPtr" в "System.Runtime.InteropServices.HandleRef"

        SendMessage(sWnd, WM_SETTEXT, 0, x)
        Label2.Text = naihWnd


    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        x = TextBox1.Text
       
    End Sub
End Class


перемененная sWnd не определяется, в смысле равна 0
умён и жаден,
характер отсуствует

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 04.11.2011 (Пт) 14:30

ошибка устранена путем изменения декларации GetDlgItem
Код: Выделить всё
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
    Private Shared Function GetDlgItem(ByVal sWnd As IntPtr, ByVal nIDDlgItem As Integer) As IntPtr
    End Function


теперь имею следующее
Код: Выделить всё
   naihWnd = FindWindowByCaption(0, num2)
        sWnd = FindWindowEx(ParenthWnd, naihWnd, lpszClass, vbNullString)
        sw = GetDlgItem(naihWnd, 1001)
        SendMessage(sw, WM_SETTEXT, 0, x) 'замечательно передаёт значение x полю edit id1001
  '




    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        sWnd = FindWindowByCaption(vbNullString, "form2")
        If e.KeyChar = ChrW(Keys.Enter) Then SendDlgItemMessage(sWnd, 1004, BM_CLICK, 0, 0)  'нажатие передается form2
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        x = TextBox1.Text
       
    End Sub

и так всё работает но появился вопрос в передаче
у меня код на VB6
Код: Выделить всё
sw = GetDlgItem(hw, 1002)

WindowHandle& = sw
Dim buffer As String, TextLength As Long
TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&)
buffer$ = String(TextLength&, 0&)
Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$)
Label3.Caption = buffer$

buffer$ = String(TextLength&, 0&) как это правильно записать в VB.net тоесть
bufer as string = string (textlenght as long) как прировнять к стринговой переменой лонговую переменую
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 04.11.2011 (Пт) 18:37

Использовать StringBuilder
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 04.11.2011 (Пт) 18:52

Данке, но так всё усложнено на vb6 одна строчка а здесь целый класс
умён и жаден,
характер отсуствует

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 05.11.2011 (Сб) 0:35

что то не понял, как это использовать записал так, но чую бред полный
Код: Выделить всё
Dim buffer As String
        Dim TextLength As Integer
        Dim stringBuilder As New StringBuilder(buffer, TextLength)
            TextLength = SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0&, 0&)

       
        Call SendMessageByString(WindowHandle, WM_GETTEXT, TextLength + 1, stringBuilder)' Пропускает но ругается на тип stringBuilder
        Label3.Text = stringBuilder

Label3.Text всё равно выдаёт только первые два символа, а не всю строчку.
и ещё заметил: если изменять (уменьшать - стирать символ) значение TextLength заканчивается ошибкой :Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.
умён и жаден,
характер отсуствует

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 05.11.2011 (Сб) 3:56

FireFenix писал(а):Использовать StringBuilder

с StringBuilder так и не разобрался, но учитывая что проект на vb6 работал, на его базе я сделал библиотеку...
теперь получилось нагромождено - вызов и запуск екзешника подключение длл, Но работает!
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 05.11.2011 (Сб) 9:02

Invader писал(а):теперь получилось нагромождено - вызов и запуск екзешника подключение длл, Но работает!

Для этого нужно вначале открыть учебник, изучить целевой язык, а потом его использовать.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 05.11.2011 (Сб) 13:54

FireFenix писал(а):Для этого нужно вначале открыть учебник, изучить целевой язык, а потом его использовать.

я и не спорю, но я так же изучал vb6 :oops: правда учебники всё же читал. :roll:
ну и я не программист, а любитель....
всё что я писал не для коммерческой выгоды, а лишь для решения собственных задач. Да по рабочим примерам как то материал лучше усваивается. Жаль, что на все случаи жизни примеров много на vb6, а на .NET их мало.
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 05.11.2011 (Сб) 20:02

Invader писал(а):а на .NET их мало.

Да ладно... если бы примеры по vb6 не нашёл в гугле - это понятно. Но vb.net - чушь!

Технология вызова нативного API и конвертация данных называется P/Invoke (Platform Invoke), мануалов - вагон
Даже если хорошо погуглить - можно найти готовые решения на codeplex или sourceforge
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 05.11.2011 (Сб) 22:55

да я разве про мануалы говорил, я говорил про абсолютно рабочие примеры vbstreets.ru столько было хороших примеров статей, вот к примеру работа с word, именно с этого сайта я изучил и решил раз и навсегда все вопросы...
помимо грамотной статьи помогли грамотные простые примеры. Где по всем вопросам работы с WORD можно найти статью да и наглядные к ней примеры на vb.net
а поиски реальных примеров по SendMessageByString только нашёл советы по декларации на vb.net и то на английском, я ничего не говорю против языка, знаю я его плохо но в ответах разобраться могу, но это всё таки не то.... :oops:
FireFenix писал(а):
Даже если хорошо погуглить - можно найти готовые решения на codeplex или sourceforge
ну да, вполне "русские" ресурсы - можно связаться с автором задать вопросы
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: USER32.DLL как правильно декларировать

Сообщение FireFenix » 06.11.2011 (Вс) 12:32

Invader писал(а):да я разве про мануалы говорил, я говорил про абсолютно рабочие примеры vbstreets.ru столько было хороших примеров статей, вот к примеру работа с word, именно с этого сайта я изучил и решил раз и навсегда все вопросы...

Этот сайт не более чем достояние всех его пользователей и он не выступает в качестве большого справочника, а лишь призван помочь "гостям" по инициативе посетителей.

Invader писал(а):помимо грамотной статьи помогли грамотные простые примеры. Где по всем вопросам работы с WORD можно найти статью да и наглядные к ней примеры на vb.net
а поиски реальных примеров по SendMessageByString только нашёл советы по декларации на vb.net и то на английском, я ничего не говорю против языка, знаю я его плохо но в ответах разобраться могу, но это всё таки не то.... :oops:

Для это есть MSDN. Там полное описание всего языка с примерами, так и WinAPI.
Для понимания примеров и сигнатур WinAPI на С+ - достаточно маломальски знать синтаксис С++ и какие типы существуют, а так же P/Invoke и проблем с переносом не будет на любой .NET язык
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: USER32.DLL как правильно декларировать

Сообщение Invader » 06.11.2011 (Вс) 13:07

ОК. Вчера сам вышел на примеры msdn в целом ясно, и действительно на многие вопросы получаю ответы в синтаксе C++. Буду учить, в конце концов не асемблер :shock:
умён и жаден,
характер отсуствует


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 25

    TopList