не могу поладить с АПИ...

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

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

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

не могу поладить с АПИ...

Сообщение seelts » 31.05.2005 (Вт) 22:12

Код:
Код: Выделить всё

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
    lpClassName As String, ByVal lpWindowName As String) As Long

    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
    ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

    Private Declare Function GetWindowTextLength Lib "user32" Alias _
    "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

    Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
    ByVal wCmd As Long) As Long

    'Const GW_HWNDFIRST = 0

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim rc As Long
        Dim tekst As String
        tekst = Space(GetWindowTextLength(Me.Handle.ToInt32))
        rc = GetWindowText(Me.Handle.ToInt32, tekst, Len(tekst))
        ListBox1.Items.Insert(ListBox1.Items.Count, tekst)
    End Sub

когда получаю длину заголовка число оказывается слишком большим чтоб такую строку инициализировать... как быть?
и ещё: есть ли аналог "функции" string() из 6-ого басика?
спасиба.
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2005 (Вт) 23:43

В VB.net вместо Long надо писать Integer во всех объявлениях.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2005 (Ср) 7:59

А аналог "функции" string() теперь один из конструкторов класса String.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.06.2005 (Ср) 11:02

Разве какой-нибудь конструктор String заменит вызов String(10,65) :?:
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2005 (Ср) 11:23

Инициализирует новый экземпляр класса String значением, заданным знаком Юникода, повторяемым заданное число раз.

Поддерживается .NET Compact Framework.

[Visual Basic] Public Sub New(Char, Integer).


А Chr(const) компилятор заменяет на char-константу :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.06.2005 (Ср) 13:40

GSerg писал(а):А Chr(const) компилятор заменяет на char-константу :)

Ухты, и правда... Потрясающе. А какие ещё функции заменяются на константы?
Кстати к слову: можно ли как-нибудь объявить константу-массив? У меня чего-то не получалось :-(
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2005 (Ср) 14:37

MSDN писал(а):Нельзя использовать в initexpr переменные или функции. Однако можно воспользоваться зарезервированными словами преобразования, такими как CInt и CDate, а также использовать методы AscW и ChrW класса Strings в пространстве имен Microsoft.VisualBasic.


А массивы же все динамические, вроде как...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 01.06.2005 (Ср) 22:42

GSerg писал(а):
MSDN писал(а):Нельзя использовать в initexpr переменные или функции. Однако можно воспользоваться зарезервированными словами преобразования, такими как CInt и CDate, а также использовать методы AscW и ChrW класса Strings в пространстве имен Microsoft.VisualBasic.


А массивы же все динамические, вроде как...


Нефига, атрибутами рулится, щя непомню, чтото тиgf <Fixed>, это по размеру, а по значениям... хер знает, проще ридонли коллекцию использовать
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 02.06.2005 (Чт) 0:03

GetWindowTextLength отрабатывает и возвращает мне правильную длину, а GetWindowText возвращает 0. В описании написано что ГетВиндоуТекст должен возвращать длину заголовка, а если ноль, то ошибка или заголовка нет или в нём нет текста итд... но у меня есть заголовок и есть текст.
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.06.2005 (Чт) 15:16

Sebas писал(а):
GSerg писал(а):А массивы же все динамические, вроде как...


Нефига, атрибутами рулится, щя непомню, чтото тиgf <Fixed>, это по размеру, а по значениям... хер знает, проще ридонли коллекцию использовать

Можно ли объявить "ридонли коллекцию" как константу? Подозреваю, что нет.
Последний раз редактировалось tyomitch 02.06.2005 (Чт) 15:51, всего редактировалось 1 раз.
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.06.2005 (Чт) 15:32

tyomitch писал(а):
Sebas писал(а):А массивы же все динамические, вроде как...


Нефига, атрибутами рулится, щя непомню, чтото тиgf <Fixed>, это по размеру, а по значениям... хер знает, проще ридонли коллекцию использовать

Можно ли объявить "ридонли коллекцию" как константу? Подозреваю, что нет.[/quote]

ну, только запомнить ей надо будет из переопределившего класса
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.06.2005 (Чт) 15:52

Sebas писал(а):
tyomitch писал(а):Можно ли объявить "ридонли коллекцию" как константу? Подозреваю, что нет.


ну, только запомнить ей надо будет из переопределившего класса

Ничё не понял. Дашь пример?
Изображение


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

    TopList