The_Maegges
Erfahrenes Mitglied
Hallo allerseits!
Heute hab ich mal ein kleines Programmiertechnisches Problem.
Ich habe ein Konfigurationsutility für eine Anwendung geschrieben.
Da dieses auf die Registry unter LocalMachine zugreift, soll es nur laufen, wenn der aktuelle User Administratorrechte besitzt.
über die Funktion IsAdministrator() ermittle ich, ob der User Administratorrechte hat, oder nicht. Dies funktioniert soweit auch.
Sollte der User keine Administratorrechte besitzen, schmeisst das Programm eine Messagebox und sollte dann eigentlich direkt schliessen.
Dieser Code steht im Konstruktor des Hauptforms des Configutilitys:
Das Problem an der Geschichte ist nun, dass zwar die Messagebox kommt, wenn der User keine Administratorrechte hat, das Formular aber trotzdem geöffnet wird, obwohl es eigentlich über this.DestroyHandle() direkt geschlossen werden sollte.
Kann mir jemand sagen, wo da mein Denkfehler liegt und wie ich das erwartete Verhalten entsprechend realisiere?
Vielen Dank!
Heute hab ich mal ein kleines Programmiertechnisches Problem.
Ich habe ein Konfigurationsutility für eine Anwendung geschrieben.
Da dieses auf die Registry unter LocalMachine zugreift, soll es nur laufen, wenn der aktuelle User Administratorrechte besitzt.
über die Funktion IsAdministrator() ermittle ich, ob der User Administratorrechte hat, oder nicht. Dies funktioniert soweit auch.
Sollte der User keine Administratorrechte besitzen, schmeisst das Programm eine Messagebox und sollte dann eigentlich direkt schliessen.
Dieser Code steht im Konstruktor des Hauptforms des Configutilitys:
Code:
if (!this.IsAdministrator())
{
MessageBox.Show("Das Ausführen dieser Anwendung erfordert Administratorrechte .\n Das Programm wird beendet.", "Fehlende Userrechte", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.DestroyHandle();
}
Das Problem an der Geschichte ist nun, dass zwar die Messagebox kommt, wenn der User keine Administratorrechte hat, das Formular aber trotzdem geöffnet wird, obwohl es eigentlich über this.DestroyHandle() direkt geschlossen werden sollte.
Kann mir jemand sagen, wo da mein Denkfehler liegt und wie ich das erwartete Verhalten entsprechend realisiere?
Vielen Dank!