2016-07-09 40 views
0

Ich hatte ein VB6-Projekt, das zuvor UAC auf Server 2008 R2 nicht benötigt. Meine letzten Builds haben das kleine UAC-Symbol (User Access Control) auf dem Programmsymbol. Wenn ich versuche, die App zu öffnen, fordert Windows Administratorrechte an.UAC jetzt für ein VB6-Projekt benötigt, das es nicht zuvor hatte

Die einzigen Änderungen, die ich gemacht habe, waren, wo die Anwendung nach ihrer Einstellungsdatei sucht. Zuvor wurden diese Dateien an einer statischen Position in C:\app\ verankert. Da ich den .NET-Stil für die Einstellungen in der App bevorzuge, habe ich den Code zunächst lokal mit App.Path aussehen lassen und dann den vorherigen statischen Speicherort überprüft, wenn lokal keine Datei vorhanden ist.

Antwort

1

Es stellte sich heraus, dass App.Path als Ursache der UAC-Eingabeaufforderung festgestellt wurde. Ich habe die eine Codezeile auskommentiert und das Schildsymbol ist weggegangen. Es scheint, dass Heuristiken für UAC angenommen haben, dass ich in den Ordner Program Files schreiben würde.

Der Code liest nur eine Datei und ForReaading wurde angegeben, wenn FileSytemObjectOpenTextFile Methode verwendet wird.

MY ALTERNATIVE

CurDir scheint für mich zu arbeiten, da die Datei nur beim Start eingelesen wird. Der einzige Nachteil ist, dass beim Debuggen CurDir auf den Exe-Pfad der IDE gesetzt wird. Es funktioniert gut, wenn die App kompiliert wird.

Wenn Sie jedoch das Projekt öffnen, indem Sie die .vbp-Datei (Doppelklick, z. B.) direkt in dem Ordner öffnen, wird CurDir korrekt sein. Es ist nur der IDE-Pfad der IDE, wenn Sie zuerst die IDE öffnen und dann das Projekt von der IDE aus öffnen.

https://stackoverflow.com/a/154595/2084315

+0

Es gibt keine hier Heuristiken. 'App.Path' basiert auf dem Ort, an dem sich Ihre Anwendung befindet (installiert), und Sie haben es anscheinend an einem UAC-geschützten Speicherort wie z. B. Programmdateien installiert. Natürlich können Sie immer ein Nachrichtenfeld verwenden, um herauszufinden, wo sich 'App.Path' befindet. –

+0

@HarryJohnston Ich habe das Manifest versucht - es ohne UAC geöffnet, aber UAC sofort einen Fehler zurückgegeben, der besagt, dass erhöhte Berechtigungen erforderlich waren. – ps2goat

+0

@KenWhite - die App befand sich in 'D: \ AppName \ AppName.exe'; Es ist auch nicht installiert - nur eine portable ausführbare Datei. – ps2goat