Bestand openen met administrator rechten

Status
Niet open voor verdere reacties.

MartinJM

Terugkerende gebruiker
Lid geworden
9 nov 2008
Berichten
1.144
Hallo,

Ik ben nu bezig met een programmaatje waarbij ik een bestand moet uitlezen uit dezelfde map waar het programmaatje staat.

Dat is verder geen probleem, maar nadat ik een setupje had gemaakt met Inno Setup Compiler, en het daarvia(setupje) had geïnstalleerd in program files, kreeg ik een foutmelding waarin stond dat ik niet de benodigde rechten heb.

Ik heb windows 7, en als ik het progje opstart als administrator, dan doet het het wel gewoon.

Weet iemand hoe ik kan zorgen dat ik het niet als administrator op hoef te starten?? Of hoe ik kan zorgen dat het altijd als administrator opgestart wordt nadat het geïnstalleerd is??

Alvast bedankt!!:thumb:


PS: Ik heb op google gezocht, maar ik kon niks goeds/bruikbaars vinden.
 
Hallo,

je kunt een programmaatje dat als beheerder moet draaien niet van een gebruikers account direct als beheerder starten, je kunt wel rechts erop klikken-> uitvoeren als en daar de beheerder en ww invullen.
óf je kunt het programma starten van een beheerders account.

je kunt een programma dus niet standaard as beheerder laten draaien.:rolleyes:

en de reden dat het als beheerder moet worden opgestart is omdat het delen bevat die perse als beheerder uitgevoerd moeten worden, (zoals het wijzigen van bestanden in beveiligde mappen (denk aan C:/program files ; C:/windows etc.)

dus je kunt deze ook niet gemakkelijk eruit halen (tenzij het niet uitmaakt waar het bestand dat gelezen wordt staat, want dan kunt je het bijvoorbeeld in mijn documenten uitvoeren)

ik hoop dat dit duidelijk genoeg is:thumb:

mvg rowano
 
Maar in windows 7 moet je, als je een progje als admin wilt starten, dat nog eens apart doen. Ook als je als admin aangemeld bent...
Maar je hebt bijv. ook andere programma's die bij program files staan, en niet als admin opgestart hoeven te worden. Denk aan Microsoft Office, Firefox, en veel andere programma's.
Die gebruiken volgens mij ook bestanden die in dezelfde map staan, dus in program files...

Thx voor de snelle reactie!:thumb:
 
Laatst bewerkt:
Mag ik de code zien die je gebruikt om bestanden aan te passen? :)
 
Om iets toe te voegen:
Code:
'uitlezen:

        Dim stream As New FileStream(Application.StartupPath & "\tijdelijk.tijdelijk", FileMode.Open, FileAccess.Read)
        Dim reader As New StreamReader(stream)
        Dim inhoud As String = reader.ReadToEnd
        reader.Close()
        stream.Close()


        'wegschrijven

        Dim stream2 As New FileStream(Application.StartupPath & "\tijdelijk.tijdelijk", FileMode.Open, FileAccess.ReadWrite)
        Dim writer As New StreamWriter(stream2)
        writer.WriteLine(inhoud)
        writer.WriteLine(MousePosition.X & ";" & MousePosition.Y & ";")
        writer.Close()
        stream2.Close()
 
Druk op CTRL+ALT+L

Dan rechtermuisknop op je project, dan op "Properties" klikken:

3M0jb.png


Klik op de 1e tab "Application":

UNgqg.png


Klik dan op "View UAC Settings":

3N7XP.png


Je krijgt nu een bestandje te zien in Visual Studio. Verander deze regel:
Code:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />

Die hier te vinden is:

MrUEz.png


Naar deze code:
Code:
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

Nu zal het er zo uit zien:

9Dtm9.png


Succes.
 
@CaptainBri: Inderdaad werkt dat ook. Maar dan komt er steeds zo'n irritant UAC-Venster. Het is simpeler om het in plaats van Program Files naar Temp (wat bedoeld is voor tijdelijke bestanden en waar je geen administratorrechten voor nodig hebt) te schrijven.

Maar laten we de reactie van de TS afwachten. :)
 
Aha, ik zie het al. Een tijdelijk bestand. ;)

Dan kun je het toch beter wegschrijven naar Temp?

Het was eerst bedoeld als tijdelijk bestand, alleen later heb ik toch besloten het geen tijdelijk bestand te maken.
*offtopic* hoe kan je eigenlijk iets wechschrijven in temp?

@captainbri: ga ik proberen...

Thx voor de reacties!:thumb:
 
*offtopic* hoe kan je eigenlijk iets wechschrijven in temp?

Dat is niet offtopic :P.

Je past gewoon de map aan in je code:

Code:
'uitlezen:

        Dim stream As New FileStream(My.Computer.FileSystem.SpecialDirectories.Temp & "\tijdelijk.tijdelijk", FileMode.Open, FileAccess.Read)
        Dim reader As New StreamReader(stream)
        Dim inhoud As String = reader.ReadToEnd
        reader.Close()
        stream.Close()


        'wegschrijven

        Dim stream2 As New FileStream(My.Computer.FileSystem.SpecialDirectories.Temp & "\tijdelijk.tijdelijk", FileMode.Open, FileAccess.ReadWrite)
        Dim writer As New StreamWriter(stream2)
        writer.WriteLine(inhoud)
        writer.WriteLine(MousePosition.X & ";" & MousePosition.Y & ";")
        writer.Close()
        stream2.Close()

Dan moet je dat natuurlijk ook in je installatieprogramma aanpassen, maar dan heb je, als het goed is, geen problemen wat betreft administratorrechten :).
 
Hallo,

Ik heb toch gebruik gemaakt van de oplossing van CaptainBri. Maar toch bedankt voor alle hulp!:thumb:

Deze vraag is dus opgelost!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan