Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как получить?
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Светлана



Joined: 22 Jul 2002
Posts: 416
Location: Эпштейн Светлана

Interests: Бердск, Новосибирская обл

PostPosted: 08 Nov 2005 06:50    Post subject: Как получить? Reply with quote

Как получить в Harbour номер данной рабочей станции и пароль (или имя) оператора, с которым он вошел в данный пункт программы?
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 08 Nov 2005 09:31    Post subject: Reply with quote

netname()
_user_code
Back to top
View user's profile Send private message
Светлана



Joined: 22 Jul 2002
Posts: 416
Location: Эпштейн Светлана

Interests: Бердск, Новосибирская обл

PostPosted: 08 Nov 2005 19:02    Post subject: Reply with quote

Спасибо, с _user_code поняла- это имя пользователя, а вот про netname() отладчик говорит, что «Неизвестная функция». А можно еще как-нибудь узнать с каким паролем бухгалтер зашел в подсистему?
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 09 Nov 2005 12:50    Post subject: Reply with quote

Зачем Вам с каким паролем вошел ?
Задайте в настройке пароль нужный а тут наоборот не должно быть тако
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 09 Nov 2005 15:23    Post subject: Reply with quote

netname() это клипперовская функция. Правда, она и там-то не всегда работала

to nordk
Если Вы хотите ограничить права пользователя, в принципе конечно достаточно _user_code. Но к сожалению, для разных версий БЭСТ в нем сидит то номер пользователя из справочника пользователей, то значение из terminal (если не путаю с сетевым именем компьютера). А также в удаленных модулях или при отсутствии авторизации в нем еще может сидеть пустая строка.
Back to top
View user's profile Send private message
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 09 Nov 2005 15:31    Post subject: Reply with quote

Добавьте в проверку ещё MAС адрес. Правда надо ещё придумать как его получить в харборе
Back to top
View user's profile Send private message
Олег Смирнов



Joined: 06 Sep 2004
Posts: 821
Location: Олег Смирнов
Occupation: Раут (поганист-сисадмин)
Interests: Новосибирск

PostPosted: 09 Nov 2005 20:11    Post subject: Reply with quote

shura_k wrote:
Добавьте в проверку ещё MAС адрес. Правда надо ещё придумать как его получить в харборе

Оба!.. А кто у нас тут специалист по харбору?!.
_________________
С уважением, Олег Р. Смирн
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 10 Nov 2005 17:56    Post subject: Reply with quote

Попробуйте
HWINFONETADAPTERS()
Back to top
View user's profile Send private message Send e-mail
VBE



Joined: 09 Jan 2002
Posts: 31
Location: Белорусцев Валерий
Occupation: 4+

PostPosted: 10 Nov 2005 18:19    Post subject: Reply with quote

MAC адрес сетевой карты можно получить так
GetMACAddress()

#pragma BEGINDUMP
#include <windows.h>
#include <rpc.h>
#include <rpcdce.h>
#include "hbapi.h"
#include "hbapiitm.h"


#include <iphlpapi.h>
#include <winioctl.h>


static void GetMACaddress(void)
{
IP_ADAPTER_INFO AdapterInfo[16];
PIP_ADAPTER_INFO pAdapterInfo;
DWORD dwBufLen = sizeof(AdapterInfo);
DWORD dwStatus = GetAdaptersInfo(AdapterInfo,&dwBufLen);
// assert(dwStatus == ERROR_SUCCESS);

pAdapterInfo = AdapterInfo;
do {
// PrintMACaddress(pAdapterInfo->-Address);
pAdapterInfo = pAdapterInfo->Next;
}
while(pAdapterInfo);
}

HB_FUNC ( GETMACADDRES )
{
unsigned char MACData[6];
UUID uuid;
char szMac[17];
int i;
UuidCreateSequential( &uuid ); // Ask OS to create UUID
hb_xmemset( szMac, '\0', 17 );
for (i=2; i<8; i++) // Bytes 2 through 7 inclusive are MAC address
MACData[i - 2] = uuid.Data4[i];
sprintf( szMac,"%02X-%02X-%02X-%02X-%02X-%02X",
MACData[0], MACData[1], MACData[2], MACData[3], MACData[4],MACData[5]);
hb_retclen(szMac,17);
}

#pragma ENDDUMP

но,к сожалению ,эта функция недоступна в Б4+
Back to top
View user's profile Send private message Visit poster's website
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 10 Nov 2005 18:45    Post subject: Reply with quote

Её надо сначало загрузить

LoadLibrary('IPHLPAPI.DLL');
GetProcAddress(hDLL,'GetAdaptersInfo');
Back to top
View user's profile Send private message
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 10 Nov 2005 18:48    Post subject: Reply with quote

nordk wrote:
Попробуйте
HWINFONETADAPTERS()


Для этой функции нужны параме
Back to top
View user's profile Send private message
VBE



Joined: 09 Jan 2002
Posts: 31
Location: Белорусцев Валерий
Occupation: 4+

PostPosted: 10 Nov 2005 19:14    Post subject: Reply with quote

Параметры не нужны для HWINFONETADAPTERS()
Возвращается массив ,в котором находятся
параметры сетевых адаптеров

HB_FUNC( HWINFONETADAPTERS )
{
typedef DWORD (WINAPI * GetAdaptersInfo_Func)(PIP_ADAPTER_INFO, PULONG);

HINSTANCE hLib;
PHB_ITEM pitmRet, pitmAdapter, pitmTmp;
IP_ADAPTER_INFO *pAI, *pAdapter;
ULONG nLen;
GetAdaptersInfo_Func pGetAdaptersInfo;



if ( (DWORD)(hLib = LoadLibrary("iphlpapi.dll")) <= 32 ||
(pGetAdaptersInfo = (GetAdaptersInfo_Func)GetProcAddress(hLib, "GetAdaptersInfo")) == NULL ) {
if ( (DWORD)hLib > 32 ) FreeLibrary(hLib);
hb_ret();
return;
}

pAI = (IP_ADAPTER_INFO*) hb_xgrab( nLen = sizeof(IP_ADAPTER_INFO) );
if ( pGetAdaptersInfo(pAI, &nLen) == ERROR_BUFFER_OVERFLOW ) {
hb_xfree(pAI);
pAI = (IP_ADAPTER_INFO *) hb_xgrab( nLen );
}

if ( pGetAdaptersInfo(pAI, &nLen) != ERROR_SUCCESS ) {
FreeLibrary(hLib);
hb_ret();
return;
}
FreeLibrary(hLib);

nLen = 0;
pAdapter = pAI;
while ( pAdapter ) {
nLen++;
pAdapter = pAdapter->Next;
}

pitmRet = hb_itemArrayNew(nLen);
nLen = 0;
pAdapter = pAI;
while ( pAdapter ) {
pitmAdapter = hb_itemArrayNew(4);

pitmTmp = hb_itemPutC(NULL, pAdapter->AdapterName);
hb_arraySetForward(pitmAdapter, 1, pitmTmp);
hb_itemRelease( pitmTmp );

pitmTmp = hb_itemPutC(NULL, pAdapter->Description);
hb_arraySetForward(pitmAdapter, 2, pitmTmp);
hb_itemRelease( pitmTmp );

pitmTmp = hb_itemPutCL(NULL, pAdapter->Address, pAdapter->AddressLength);
hb_arraySetForward(pitmAdapter, 3, pitmTmp);
hb_itemRelease( pitmTmp );

pitmTmp = hb_itemPutNI(NULL, pAdapter->Type);
hb_arraySetForward(pitmAdapter, 4, pitmTmp);
hb_itemRelease( pitmTmp );

hb_arraySetForward(pitmRet, ++nLen, pitmAdapter);
hb_itemRelease( pitmAdapter );
pAdapter = pAdapter->Next;
}

if ( pAI )
hb_xfree( pAI );
hb_itemRelease( hb_itemReturn( pitmRet ) );
}
Back to top
View user's profile Send private message Visit poster's website
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 10 Nov 2005 19:21    Post subject: Reply with quote

что-то пустой массив на выходе получаем
Back to top
View user's profile Send private message
VBE



Joined: 09 Jan 2002
Posts: 31
Location: Белорусцев Валерий
Occupation: 4+

PostPosted: 10 Nov 2005 20:03    Post subject: Reply with quote

хмм
работает
a := HWINFONETADAPTERS()
? a[1][1]
? a[1][2]
? a[1][4]


{86363904-BF32-43C1-9ECA-53CE950DD29A}
3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)
6
Back to top
View user's profile Send private message Visit poster's website
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 11 Nov 2005 09:16    Post subject: Reply with quote

и то, что возвращается, не изменяется при смене пользовате
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru