Форум » [x]Harbour » Сетевое имя пользователя » Ответить

Сетевое имя пользователя

Urri: Добрый день, уважаемые... В xHarbour есть такая функция netname(), которая возвращает сетевое имя пользователя и другие параметры. Возникла такая проблема: если длина сетевого имени, с которым пользователь зарегистрировался в системе, больше 15 символов, то функция возвращает пустую строку. И как с этим бороться, подскажите...

Ответов - 3

PSP: NetName() использует NetBios, а там ограничение - 15 символов.

Urri: Так как с этим бороться? Может кто-то уже для себя решал такую проблему? Есть такая программа на CPP. Она записывает нужное имя в файл на диск. Но прикрутить ее в качестве подпрограммы в xHarbour знания не позволяют. Может кто поможет с этим? #include <windows.h> #include <lmcons.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { DWORD nSize = max(UNLEN,MAX_COMPUTERNAME_LENGTH)+14; DWORD nSizeUN = nSize, nSizeCN = nSize; FILE *file; char far *lpUN = new char[nSize]; char far *lpCN = new char[nSize]; char *srcDest = new char[nSize*2]; GetUserName(lpUN,&nSizeUN); GetComputerName(lpCN,&nSizeCN); if (argc>=2) { file=fopen(argv[1],"w"); if (file!=NULL) { strcpy(srcDest,"USERNAME="); strcat(srcDest,lpUN); strcat(srcDest,"\n"); strcat(srcDest,"COMPUTERNAME="); strcat(srcDest,lpCN); strcat(srcDest,"\n"); fputs(srcDest,file); fclose(file); } } delete[] lpUN; delete[] lpCN; delete[] srcDest; return 0; }

Петр: Urri пишет: В xHarbour есть такая функция netname(), которая возвращает сетевое имя пользователя и другие параметры. Какие другие параметры возвращает netname() В Win netname() == GetComputerName() hb_username() == GetUserName() все другое можно и без знаний С++ написать




полная версия страницы