Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 | 2 | 3 |

 

  Вопрос: Помогите с API в VB2005 Express или где скач VB 6 Добавлено: 02.10.06 19:46  

Автор вопроса:  dimon

Ответить

  Ответы Всего ответов: 36  

Номер ответа: 16
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #16 Добавлено: 03.10.06 17:47
2 dimon Ладно, забей :) Я сам... Все сделаю согласно т/з, от тебя работа на уровне входных параметров функции и их результатам...

т.е.
Private Type Carti
'продумает структуру карт :)
End type

Public Sub ПолучитьКуртыВПасьнсе () as Carti
...
тут я сам
и возвращу структуру которая содержим данные о текущих картах
End Sub

Демопримеры прилагаются :)

Ответить

Номер ответа: 17
Автор ответа:
 dimon



Вопросов: 6
Ответов: 23
 Профиль | | #17 Добавлено: 03.10.06 19:20
Да забил уже, но задело как-то- просишь помощи, а получаешь пинки
какие-то.
Вставили-бы нужные строчки, получили спасибо и все ок.

Ответить

Номер ответа: 18
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #18 Добавлено: 03.10.06 19:32
Да понимаю, хотя не все пинают... На этом форуме много хороших людей. Главное проявлять желание и активность, а технические тонкости и прочее непонятки, здесь решат и объяснять. Вливайся на форум, тусуйся с нами :)

Ответить

Номер ответа: 19
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #19
Добавлено: 03.10.06 20:03
dimon

Да и сразу непонятно что ты "чайник".
Кто на .NET перелазит - все чайники. Хотя на 6 спецы. Я так и подумал.
Вот HACKER в .NET тоже чайник, а в 6 спец.:)

Ответить

Номер ответа: 20
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #20
Добавлено: 03.10.06 20:50
Так я и прошу помочь объявить и использовать АПИ-функцию
Объявить функцию на VBNet - без проблем:
    Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
Другое дело, как hdc в неё вставить!Вот это уже проблема. Причем большая проблема, ни на одном форуме не знают как её решить

Ответить

Номер ответа: 21
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #21
Добавлено: 03.10.06 20:54
Да забил уже, но задело как-то- просишь помощи, а получаешь пинки
какие-то.
Прости за пинок в 6-ом посте. Что-то на меня нашло... больше не буду
Попробую помочь...

Ответить

Номер ответа: 22
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #22
Добавлено: 03.10.06 21:29
Кто на .NET перелазит - все чайники
Да это точно, попробуй понять этот vbnet, его не доделали наверно. Я тут Дымону помочь попытался и столкнулся с одной проблемой, кот. называется Загадка для школьника: найдите пять отлиий в объявлении функции getDC здесь, где она работает:
Option Strict Off
Option Explicit On
Friend Class Form1
    Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Integer
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal X As Integer, ByVal Y As Integer) As Integer
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Integer) As Integer
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Integer
    Dim x As Integer
    Dim y As Integer
    Structure POINTAPI
        Dim x As Integer
        Dim y As Integer
    End Structure
    Dim pos As POINTAPI
    Dim s, hW, hD As Integer
Private Sub Form1_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        x = pos.x
        y = pos.y
        TextBox1.Text = x & " , " & y
        hW = WindowFromPoint(x,y)
        hD = GetDC(Me.Handle.ToInt32) 'работает
        s = GetPixel(hW, x, y)
        TextBox2.Text = CStr(s)

End Sub
End Class
И здесь, где она выдает ошибку???
Option Strict Off
Option Explicit On
Public Class Form1

    Dim returnValue As String

    Dim x As Integer
    Dim y As Integer
    
    Structure POINTAPI
        Dim x As Integer
        Dim y As Integer
    End Structure
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Integer
    Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer

    Dim HdcScreen As Integer
    Dim pos As POINTAPI
    Dim n As Long = 0

    Dim returnVal As Integer

    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        GetCursorPos(pos)
        HdcScreen = GetDC(Me.Handle.ToInt32) 'пишет, что ошибка
        x = pos.x
        y = pos.y
        TextBox1.Text = x & " , " & y

        returnVal = GetPixel(HdcScreen, x, y)
        TextBox2.Text = returnVal.ToString
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        End
    End Sub
End Class
P.S На форме, как и говорил автор, два textbox и один button

Ответить

Номер ответа: 23
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #23
Добавлено: 03.10.06 21:36
Другое дело, как hdc в неё вставить!

Вообще на С# просто.

[;DllImport("user32";)]
public static extern uint GetDC(uint hwnd);


_hwnd = (uint)((this.Handle).ToInt32());
_hDC = GetDC(_hwnd);


HdcScreen = GetDC(Me.Handle.ToInt32) 'пишет, что ошибка


Возможно не приведен к правильному типу (uint)?

Ответить

Номер ответа: 24
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #24
Добавлено: 03.10.06 21:48
long в .NET - Signed 64-bit integer
Это к тому, что
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Ответить

Номер ответа: 25
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #25
Добавлено: 03.10.06 22:46
А... Точно, спасибо, vito!
Ну что ж, автор, сделали мы твоё задание. Удаляй всё, что у тебя было и вставляй это
Option Explicit On
Friend Class Form1
    Dim x As Integer
    Dim y As Integer

    Structure POINTAPI
        Dim x As Integer
        Dim y As Integer
    End Structure
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Integer) As Integer
    Public Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Integer
    Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
    Private Declare Function GetDesktopWindow Lib "user32" () As Integer

    Dim HdcScreen As Integer
    Dim pos As POINTAPI
    Dim returnColor As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        End
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        HdcScreen = GetWindowDC(GetDesktopWindow)

        GetCursorPos(pos)

        x = pos.x
        y = pos.y
        TextBox1.Text = x & " , " & y

        returnColor = GetPixel(HdcScreen, x, y)
        TextBox2.Text = returnColor.ToString
    End Sub
End Class
Да, и ещё, положи на форму таймер, а то работать ничё не буде...

Ох, по-мойму от твоего исходного кода, что ты привёл ничего не осталось-то ...

Работа сделана?

Магарыч?... :)

Ответить

Номер ответа: 26
Автор ответа:
 dimon



Вопросов: 6
Ответов: 23
 Профиль | | #26 Добавлено: 04.10.06 00:35
Ох, по-мойму от твоего исходного кода, что ты привёл ничего не осталось-то ...

 Это точно.

Заработало!!! правда таймер по умолчанию был выключен, хотел уже вам шпильку воткнуть- мол профи, а не работает. Но сам разобрался за часок -)).

Спасибо за помощь.
Приедете в Волгоград- заходите; магарыч будет.-))


Работа сделана? Нууу по №9 сделана ))


Ну не буду вас больше домогать, HACKER обещал помочь по всему проекту. Правда на VB6.

Отсюда одна загвоздка- сам интерпретатор VB6 не могу найти. Может подскажите рабочую ссылку?

Ответить

Номер ответа: 27
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #27
Добавлено: 04.10.06 01:31
dimon

Еще...
Смотря какая у тебя цель. Если просто получить прогу и забыть, то 6- ка.
Если решил вернуться в программирование, то только .NET.
6 - мертва. MS 6-ку больше не поддерживает. В общем прошлое. Вроде того басика с которого начинал.
Потому подумай стоит ли на 6 -ке?
Сейчас его роль - действительно учебного языка. Хотя, ИМХО, учиться на нем... переучиваться сложнее.

HACKER, не обижайся. 20 тугриков конечно деньги... На пиво.:) Но тебе тоже давно пора на .NET переезжать. А то и так уже отстал, а потом вообще не догонишь.

А насчет ссылки. Это к HACKER'y. Где - нить валяется.

Ответить

Номер ответа: 28
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #28 Добавлено: 04.10.06 02:44
а ассембер поддерживают? ))) а то учу в универа его щас, может стоит прогуливать?

Ответить

Номер ответа: 29
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #29
Добавлено: 04.10.06 02:47
HACKER

Ассемблер знать обязан.:)
Поддерживают. В С++. В виде вставок.:)
Без асма некоторые задачи не решить.

Ответить

Номер ответа: 30
Автор ответа:
 dimon



Вопросов: 6
Ответов: 23
 Профиль | | #30 Добавлено: 04.10.06 10:31
Ворачиватся в программирование поздновато, 35 уже, голова уже не так варит-))) (если серьезно, то на самом деле- в новое врубиться стало гораздо сложнее, чем в 20-25). Опять же- работа, проблемы и т.д.-просто времени недостаточно.

Да и задача у меня для как раз для того, старого басика.
Это как выкопать ямку для саженца экскаватором. Лопату хачу!!! -))

В следущий раз обращусь к программированию, когда опять что-нибудь понадобится.

Кстати, лазия по ВБшным форумам видел очень много вопросов где найти русскую МСДН. Если у вас тоже есть эта проблема, то вот ссылка: http://msdn.microsoft.com/library/rus/

Еще раз спасибо всем.

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам