Προς το περιεχόμενο

AdjustTokenPrivileges() VB.NET


Dawndeath

Προτεινόμενες αναρτήσεις

Δημοσ.

Προσπαθώ να δημιουργήσω μια εφαρμογή για Widnows που θα κάνει shutdown , restart μέσω του Windows API, ενώ έχω υλοποιήσει αυτά τα 2 , δεν μπορώ να υλοποιήσω το abort τους μέσω του AbortShutdown() καθώς πρέπει να του δώσω privileges?(say what? !) μετά από ψάξιμο καταλαβαίνω πως πρέπει να καλέσω μια άλλη συνάρτηση του Windows API την AdjustTokenPrivileges την οποία όμως δυστυχώς δεν μπορώ να καταλάβω πως λειτουργεί όσο και αν έψαξα, μπορεί κάποιος από εδώ μέσα να βοηθήσει;

 

 

Ευχαριστώ εκ των προτέρων.

Δημοσ.

Εφυγες για P/Invoke

>int main(int ,char**)
{
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 

// Get a token for this process. 

if (!OpenProcessToken(GetCurrentProcess(), 
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
	return( FALSE ); 

// Get the LUID for the shutdown privilege. 

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
	&tkp.Privileges[0].Luid); 

tkp.PrivilegeCount = 1;  // one privilege to set    
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 

// Get the shutdown privilege for this process. 

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
	(PTOKEN_PRIVILEGES)NULL, 0); 
InitiateSystemShutdown(
	NULL,
	NULL,
	10000,
	FALSE,
	FALSE);
Sleep(3000);
AbortSystemShutdown(NULL);
return 0;
}

 

 

Για το "Που" "Τι" msdn

Δημοσ.

Ναι θα μπορούσε να γίνει και έτσι αλλά τώρα μου ήρθε η ιδέα αφού το Shutdown θα γίνει μόλις τα milliseconds γίνουν λιγότερα από 1 άμα σταματήσω το χρονόμετρο το shutdown δεν θα γίνει ποτέ #WiN

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...