15. august 2001 - 09:41Der er
6 kommentarer og 1 løsning
finde brugernavn i windows.
Jeg står og mangler noget kode (så simpelt som muligt) der kan hente brugernavnet på maskinens nuværende bruger og skrive denne information ud på standart out. Programmet skulle gerne fungere på 95/98, ME, NT, og 2000 hvis det kan lade sig gøre. Da jeg gerne skulle lære noget af dette er kildekode at foretrække. Jeg havde selv forestillet mig følgende struktur for programmet: En klasse med en enkelt public metode der returnerer brugernavnet i en streng, samt en klasse med main metoden som opretter et objekt af førnævnte klasse, kalder metoden, og skriver resultatet ud på standart out.
Nu er jeg ikke så stiv i C++ så jeg vil meget gerne have en lidt mere udførlig forklaring (er vandt til Java... godtnok ligner syntaksen C++ en del men det er ikke helt det samme alligevel). Jeg bruger MS visual C++ 97. Hvis du ved om dette også kan løses i ren java ville det være endnu bedre.
Inden vi går i gang skal du være opmærksom på C++ ikke har et etenligt streng begreb, men deri mod bruger er array af chars. når der kommer et NULL char(0) så er strengen slut.
du starter med at oprette en ny Win32 Console App.
så skriver du :
#include <windows.h>
int main(int argc, char* argv[]) { DWORD Size = 200; //Længden på vores streng char buf[200]; // Erklær en ny \"streng\" GetUserName(&buf[0],&Size); //Kald windows funktionen GetUserName(), med vores streng //Det hele er referencer til variablerne .. Når funktionen er kaldt ligger brugernavnet //i Buf. Og antallet af karekterer, altså længden af strengen i Size printf(\"UserName : %s\\n\", buf); //skriv det ud på skærmen. return 0; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.