Sign in to follow this  

making an app prompt for administrator privilages

This topic is 2199 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi. I have just finished my application using VC++ on Windows. I used innoSetup to make an installer and installed it - until now, everything works fine.

However, the program needs to create a file, and because the program is started without administrator privilages, the system won't let me. This is fixed when I manually run the program as an administrator. What I would like is, before my application starts, to prompt the user to grant administrator privilages so I can open files freely.

Is there a way to do that? (it needs to be done from code if possible)

Share this post


Link to post
Share on other sites
In general, it's bad practice to require admin priviliges, unless your app is for some kind of system configuration.

If this is the case, you can do it in the manifest: [url="http://msdn.microsoft.com/en-us/library/bb756929.aspx"]http://msdn.microsoft.com/en-us/library/bb756929.aspx[/url]

Share this post


Link to post
Share on other sites
I think that if your app requires admin privileges to be installed, then it is 'correct' that an admin account is needed. Either your app does not require admin privileges (so change the installer) or accept that the user must log in as an admin.

That's only my opinion though :-)

Share this post


Link to post
Share on other sites
[quote name='assainator' timestamp='1325757852' post='4899904']
You could always work around the issue by creating the files in the user/appdata/ folder.
[/quote]
I wouldn't really call this a work-around -- putting your files in userdata or appdata is the recommended practice for the platform in question (i.e. Windows), so rather than being a work-around this is really How Your Program Should Work[color=#000000][font=sans-serif][size=3]™.[/size][/font][/color]

Share this post


Link to post
Share on other sites
[quote name='cignox1' timestamp='1325774991' post='4899948']
I think that if your app requires admin privileges to be installed, then it is 'correct' that an admin account is needed. Either your app does not require admin privileges (so change the installer) or accept that the user must log in as an admin.

That's only my opinion though :-)
[/quote]

Running an application under an administrator account doesn't automatically impart administrator privileges to the application. And pretty much every installer needs administrator privileges to install an application in order to write to Program Files and to the registry and so on.

Agree with all the above - unless you have a very good reason to need to write files in restricted areas, use the app data etc directories. This has been best practice for quite a while now.

Share this post


Link to post
Share on other sites
[quote name='Aardvajk' timestamp='1325927464' post='4900286']
[quote name='cignox1' timestamp='1325774991' post='4899948']
I think that if your app requires admin privileges to be installed, then it is 'correct' that an admin account is needed. Either your app does not require admin privileges (so change the installer) or accept that the user must log in as an admin.

That's only my opinion though :-)
[/quote]

Running an application under an administrator account doesn't automatically impart administrator privileges to the application. And pretty much every installer needs administrator privileges to install an application in order to write to Program Files and to the registry and so on.

Agree with all the above - unless you have a very good reason to need to write files in restricted areas, use the app data etc directories. This has been best practice for quite a while now.
[/quote]

Thank you - I forgot about the AppData directory :) Is there a way to access it without specifying the full path though?

Share this post


Link to post
Share on other sites
[quote name='sheep19' timestamp='1326144747' post='4901073']
I forgot about the AppData directory Is there a way to access it without specifying the full path though?
[/quote]
Absolutely -- and again, using the full path would actually be bad practice -- take a look at the [url="http://msdn.microsoft.com/en-us/library/windows/desktop/bb762188(v=vs.85).aspx"]SHGetKnownFolderPath[/url] function (or for older versions of Windows, [url="http://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v=vs.85).aspx"]SHGetFolderPath[/url]). You don't want to hard-code the full path because the folder might occasionally be in a different place, as well as to make your software more future proof by not relying on an implementation detail that may be changed in future versions of Windows.

Hope that helps! [img]http://public.gamedev.net//public/style_emoticons/default/cool.png[/img]

Share this post


Link to post
Share on other sites
Sign in to follow this