powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Определение идентификатора (API)
36 сообщений из 36, показаны все 2 страниц
Определение идентификатора (API)
    #33673977
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги!
Случайно никто не использовал вызов

FUNCTION long RasEnumConnections(Any lpRasCon, long lpcb, long lpcConnections) LIBRARY "RasApi32.dll" ALIAS FOR RasEnumConnectionsA

Мне срочно надо получить параметр подключенного через RAS коннекта
long lpcConnections для использования в функции RASHangUp
Дело в том, что если вызов осуществлялся через систему, то указатель равен 0 и вызываеться через раз. А время поджимает

Если кто может помочь....
Pb 9.0.3 Build 8511
WinXP
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674086
Konstantin Goldobin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пробовал так, как написано в последнем письме ветки
http://makeashorterlink.com/?E2AB169FC

Правда, на билдере 6.5 под виндовс 98.

--
With regards,
Konstantin Goldobin
http://www.vsi.ru/~kgold


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674131
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что - то не то, возвращает код 87
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674134
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура наверное не та
Системы разные
Придется где-нибудь на MSDN полазить
Спасибо за поддержку
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674178
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята я наверное чего-то не допонимаю

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rras/rras/rasconn.asp


Какая - же все-таки структура rasconn
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674302
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674331
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
встречный вопрос
Ребята а как вы структуры в PB описываете?
а то я уже собирался поднять вопросик, как же всетаки к PB подключить С++ (а то спомощью мануала я так и не разобрался к сожалению)
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674368
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да знаю, что WINVER 0x0501
Код функции
long i
long ll_ret
RasConn lpRasConn[256]
long lpcb
long lpcConnections
Long hRasConn
//Set the structure's size
lpRasConn[1].dwSize = 412
lpcb = 256 * lpRasConn[1].dwSize
lpcConnections = 0

ll_ret = RasEnumConnections(lpRasConn[1], lpcb, lpcConnections)
If ll_ret = 0 Then
For i = 1 To lpcConnections
hRasConn = lpRasConn .hRasConn
//'Hang up

Next
End If
Структура
type rasconn from structure
ulong dwsize
ulong hRasConn
character szEntryName[257]
character szDeviceType[16]
character szDeviceName[129]
string szPhonebook
long dwSubEntry
end type

Все-равно возвращает код 87
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674382
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто может кто знает

structure:typedef struct _RASCONN {DWORD dwSize;
HRASCONN hrasconn;
TCHAR szEntryName[RAS_MaxEntryName + 1];
#if (WINVER >= 0x400)
TCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
TCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
#endif
#if (WINVER >= 0x401)
TCHAR szPhonebook [ MAX_PATH ];
DWORD dwSubEntry;
#endif
#if (WINVER >= 0x500)
GUID guidEntry;#endif
#if (WINVER >= 0x501)
DWORD dwFlags;
LUID luid;
#endif} RASCONN ;
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674390
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как GUID и LUID сконвертить
Как string?
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674408
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел какой-то вариант, буду пробовать
http://home.iprimus.com.au/billmcc/PlatformVB/dun/rasenumconns.htm
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33674500
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
явно обьявление ф-ции не правильное

из winapi help:

Код: plaintext
1.
2.
3.
4.
DWORD RasEnumConnections(
    LPRASCONN lprasconn,	// buffer to receive connections data
    LPDWORD lpcb,	// size in bytes of buffer
    LPDWORD lpcConnections	// number of connections written to buffer
   );

это значит обьявление должно быть примерно таким:
Код: plaintext
1.
FUNCTION long RasEnumConnections(ref MY_RASCON_STRUCT lpRasCon, ref long lpcb, ref long lpcConnections) LIBRARY "RasApi32.dll" ALIAS FOR RasEnumConnectionsA
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33678102
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас проверим
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33678107
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий спасибо, не все, но работает
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33678108
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужны объекты для RAS, пишите - мыло в профиле
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33723260
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, что возвращаюсь к прежней теме
Программа готова, единственная странность
В собранном ехе-файле почему-то не происходит ретурн
long i
long ll_ret
RasConn lpRasConn[256]
long lpcb
long lpcConnections
Long hRasConn
lpRasConn[1].dwSize = 692
lpcb = 256 * lpRasConn[1].dwSize
lpcConnections = 0
ll_ret = RasEnumConnections(ref lpRasConn[1], ref lpcb, ref lpcConnections)
Messagebox('','2')
If ll_ret = 0 Then
For i = 1 To lpcConnections
hRasConn = lpRasConn .hRasConn
//'Hang up
il_RASCON = hRasConn
exit
//RasHangupA( hRasConn )
Next
israsconnect=true

return 1
End If

return 0

В скомпиленном просто повисает, возврата из функции не происходит
Есть у кого-нибудь какие соображения
Да забыл добавить - все это происходит если соединение инициировано из-вне
, т.е. не из самой программы
Если запускаешь RAS из программы все проходит без сучка и задоринки
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33723748
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фил на тебя вся надежда может ты что новое выкопаешь
Самое прикольное видеть как в собранном файле теряется return
Может я вообще туплю
И ошибка исключительно pbvm выскакивает
Отрубать вроде отрубает, вообще как-то странно все происходит
Главное если пользуешься исключительно софтом - ок
иначе - вообще круговерть
Help me!!!!!!!!!!!! SOS me !!!!!!!!!!!!!!!!!!
Карьера под угрозой!!!!!!!!!
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33723838
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предположение:
если строишь "Machine code" то может "Pi code" может помочь
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33727121
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без разницы. Пробовал и pbd. Результат тот-же
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33727874
Oleg1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001Без разницы. Пробовал и pbd. Результат тот-же
Как вариант. Функции неверон передается область памяти, в которую она пишет. Из-за этого может быт перетерта нужная инфа.
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33737749
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да а почему под отладчиком все путем?
Короче почему-то теряется указатель точки возврата
Только почему это происходит только при скомпиленном коде и только
если коннект инициирован из-вне
Хотя видно что идентификатор определяется верно
Можно конечно разрешить вызов только из программы и завершение вызова тоже
Просто некрасивое решение
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33737821
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однозначно что-то с памятью

а как у тебя выглядит RasConn структура?
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33744971
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
type rasconn from structure
ulong dwsize
ulong hRasConn
character szEntryName[257]
character szDeviceType[16]
character szDeviceName[129]
string szPhonebook
long dwSubEntry
end type

Еще вопрос lpRasConn[1].dwSize = 692 ????
Т.е. какой размер под один элемент структуры
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33746144
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из винхелпа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#define RAS_MaxEntryName       256 
#define RAS_MaxDeviceType      16 
#define RAS_MaxDeviceName      128 

RASCONNA
{
    DWORD    dwSize;
    HRASCONN hrasconn;
    CHAR     szEntryName[ RAS_MaxEntryName +  1  ];
    CHAR     szDeviceType[ RAS_MaxDeviceType +  1  ];
    CHAR     szDeviceName[ RAS_MaxDeviceName +  1  ];
    CHAR     szPhonebook [ MAX_PATH ];
    DWORD    dwSubEntry;
};

итого в ПБ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ulong    dwSize
    ulong    hrasconn
    char     szEntryName[  257  ]
    char     szDeviceType[  17  ]
    CHAR     szDeviceName[  129  ]
    CHAR     szPhonebook [  260  ]
    ulong    dwSubEntry

4+4+257+17+129+260+4=675 bytes
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33747357
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При 675 вылазит ошибка 632 (маленький буфер)
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748030
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри. забыл. в структурах идет выравнивание по 4 байта.
676 должно быть
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748376
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При 692 функция отрабатывает нормально
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748475
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжение темы если производиться асинхронный вызов то RasEnumConnection все равно выдает коннект даже если само устройство еще не подключено, как определить, что коннект действительно установлен
При подключении из программы все понятно можно отследить статус подключения, а при внешнем подключении?
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748508
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает про функцию RasGetConnectionStatistics(hRasConnection, myStats)
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748519
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я даже попробовал. все ок.

структура:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
global type tras from structure
   ulong    dwSize
    ulong    hrasconn
    char     szEntryName[  257  ]
    char     szDeviceType[  17  ]
    CHAR     szDeviceName[  129  ]
    CHAR     szPhonebook [  260  ]
    ulong    dwSubEntry
end type


ф-я:

Код: plaintext
1.
FUNCTION long RasEnumConnections(ref tras lpRasCon[], ref long lpcb, ref long lpcConnections) LIBRARY "RasApi32.dll" ALIAS FOR RasEnumConnectionsA
скрипт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
tras t[]
long i
long cb
long count
long size= 676 

for i= 1  to  10 
	t[i].dwsize=size
next

cb=size*upperbound(t)

i=RasEnumConnections(t,cb,count)

mle_1.text+="ret="+string(i)+'~r~n'
mle_1.text+="count="+string(count)+'~r~n'
mle_1.text+='~r~n'


for i= 1  to count
	mle_1.text+='i='+string(i)+'~r~n'
	mle_1.text+='name='+t[i].szEntryName+'~r~n'
	mle_1.text+='type='+t[i].szDeviceType+'~r~n'
	mle_1.text+='device='+t[i].szDeviceName+'~r~n'
	mle_1.text+='~r~n'
next

результат:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ret=0
count=1

i=1
name=UMC
type=MODEM
device=Standard Modem over IR link
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748596
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас попробую
Дима ты в собранном виде пробовал
Из под отладчика и у меня ок
И соединение чтобы из-вне вызвано было
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748697
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь не вываливаеться - просто виснет без ответа
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748756
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и в exe все ок
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748804
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отрубать отрубает, но программа после этого чудно виснет
Никак не въеду в чем дело
ругается на hungapp
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748814
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот библиотека
...
Рейтинг: 0 / 0
Определение идентификатора (API)
    #33748899
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диман спасибо огромное
Понял в чем дело
Еще бы со статусом при асинхронном вызове разобраться
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Определение идентификатора (API)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]