[ Mikelly @ 27.04.2009. 16:39 ] @
Evo ovako, ima jedna windows funkcija definisana u netapi32.dll cije je ime NetUserEnum, koja vraca sve usere koji postoje na nekom racunaru.

Prvi argument te funkcije mi je problem. Taj argument, nasao sam na msdn-u, je ime servera koje mora biti tipa: LPCWSTR (const wchar_t*).

Probao sam da stavim da je argument prosto string, ali ne ide. Vrati mi usere sa lokalne masine, to znaci da je taj string argument tretirao kao null.

Treba nekako da konvertujem moj string u taj djavolji pokazivac. Ali, C# nema wchar_t ni kljucnu rijec, ni atribut, pa to ne mogu ni kroz unsafe blok, mada bih unsafe svakako htio izbjeci.

Mozda da stavim da je argument tipa IntPtr pa da probam Marshal.PtrToStringUnicode, ne znam...

Skroz sam nov u ovome, pa ako neko ima iskustva, cijenio bih pomoc :)


Pozdrav.
[ Igor Gajic @ 27.04.2009. 18:42 ] @
Definisi NetUserEnum ovako:


Code:

[DllImport("Netapi32.dll")]
extern static int NetUserEnum([MarshalAs(UnmanagedType.LPWStr)] string servername, int level, int filter, out IntPtr bufptr, int prefmaxlen, out int entriesread, out int totalentries, out int resume_handle);


Primeti:

Code:

[MarshalAs(UnmanagedType.LPWStr)] 
[ Mikelly @ 27.04.2009. 21:01 ] @
Svaka cast, majstore, nema sta.

Jedan problem rijesen, ali se pojavljuje drugi.

Funkcija mi vraca vrijednost 5 iliti ERROR_ACCESS_DENIED.

Kako sad, sto da uradim da bi dobio privilegije da vidim koji su useri na nekom udaljenom racunaru.

Mozda previse trazim, ali sto cu...


Pozdrav.