Durchführung des Codes mit weiteren Benutzer-Rechten
-
Bitte macht euch nicht über Leute lustig, die sich trotz fehlender Sprachkenntnisse in diesem Forum redlich mühen, Hilfe zu erhalten. Wenn ich in einem englischsprachigen Forum Fragen stelle, möchte ich soetwas auch nicht erleben.
Und jetzt zur Sache: Wäre die Frage im WinAPI-Forum nicht besser aufgehoben?
Rob'
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ich bin sicher, dass Sie meine Frage, Recht verstehen? .... so weiß irgend jemand, wie man richtig jene API gebraucht(benutzt)? ... kommen auf Kerlen ... ich will gerade wissen(kennen), wenn ich richtigen Gebrauch davon Funktionen tue!....
Und ja gebrauche(benutze) ich einen englisch-deutschen Übersetzer, da ich von México bin...
-
Ach so, du meinst diese) Funktion...
Das müsste wiie folgt gehen:
HANDLE hToken; // First, you have to call your LogonUser Function and the last parameter // have to be hToken. // Than you can call: ImpersonateLoggedOnUser(hToken);
-
(I think most people here are able to understand english :D)
-
yes, i think so, too.
So, you can speak english. We can understand that better...
-
Then maybe something is wrong with my code, in this example, the current user (with limited rights)impersonate a user with different rights (change system time, and rights over "nopermiso.txt"), the ImpersonateLoggedonUser() seems to work well, but it doesn't seems to get his rights.
HANDLE nToken = NULL; DWORD err; if(!LogonUser("sistemachecador", "CARLOSM", "m@dific@h@r@", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &nToken)) ShowMessage("Error en LogonUser: "+AnsiString(GetLastError())); else { // Impersonate a user with special rights if(!ImpersonateLoggedOnUser(nToken)) ShowMessage("Error en ImpersonateLoggedOnUser: "+AnsiString(GetLastError())); // Display the current user name char buffer[50]; unsigned long buffersize; buffersize = 50; if( GetUserName(buffer, &buffersize) ) ShowMessage( buffer ); // It returns the user i want to impersonate! // Try to change system date time ( doesn't works ) SYSTEMTIME *sis_fechor; sis_fechor = new SYSTEMTIME(); sis_fechor->wYear = 2005; sis_fechor->wMonth = 05; sis_fechor->wDayOfWeek = 6; sis_fechor->wDay = 14; sis_fechor->wHour = 12; sis_fechor->wMinute = 52; sis_fechor->wSecond = 0; sis_fechor->wMilliseconds = 0; SetSystemTime(sis_fechor); // Try to make a copy of file "conpermiso.txt" ( it works well, since everybody has rights over this file ) String instruccion; instruccion = "COPY conpermiso.txt conpermiso_copia.txt "; int errrr = system(instruccion.c_str()); if( errrr == -1 ) { switch( GetLastError() ) { case ENOENT: // Path or file function not found ShowMessage("Ruta ó comando no encontrado"); break; case ENOEXEC: // Exec format error ShowMessage("Error de formato en comando ejecutable"); break; case ENOMEM: // Not enough memory ShowMessage("No hay suficiente memoria"); break; default: ShowMessage("Error desconocido"); } } // Try to make a copy of file "nopermiso.txt" ( it doesn't works ) instruccion = "COPY nopermiso.txt nopermiso_copia.txt "; errrr = system(instruccion.c_str()); if( errrr == -1 ) { switch( GetLastError() ) { case ENOENT: // Path or file function not found ShowMessage("Ruta ó comando no encontrado"); break; case ENOEXEC: // Exec format error ShowMessage("Error de formato en comando ejecutable"); break; case ENOMEM: // Not enough memory ShowMessage("No hay suficiente memoria"); break; default: ShowMessage("Error desconocido"); } } // back to normal user if(!RevertToSelf()) ShowMessage("Error RevertToSelf() : "+AnsiString(GetLastError())); CloseHandle(nToken); }Thanks for your patience!!!
-
Eres de España o un país como se habla Español? <-- (We're going to write a spanish vocabulary test today. >_<)
(Anyway, you have spanish comments written.)
Sorry that I'm not able to give any help, just wondering to see any program with Spanish commands.
-
to wonder heißt nicht "sich wundern", sondern "sich fragen", "grübeln".

"...ich frag mich gerade ein Programm mit spanischen Kommentaren zu sehen."
-
You need help with the Spanish? I can help you.