2010-08-05 13 views
8

si vous compilez un programme dans D2010 un fichier manifeste .res est généré automatiquement. est-il inclus dans votre programme par défaut? ou vous devez l'inclure vous-même? Si oui quel niveau de privilage vous est donné? mon programme modifie une clé registery serait-il capable de le faire sans aucune modification du fichier .res? Si non quelles modifications je dois faire?
une question de côté: y a-t-il un composant/expert (de préférence gratuit) qui peut générer/inclure le fichier .res dans mes projets delphi 7 et Delphi 2007 automatiquement comme delphi 2010?
modifier: a oublié de mentionner que je n'ai pas Win7 ou Vista, ni je les ai jamais utilisé
Edit2: i ont inclus un fichier manifeste juste au cas suivant this tutorial mais le tutoriel ne parle que de windows vista et non 7 Est-ce que le fichier .xml (manifest) dans ce tutoriel rendrait mon application capable de gérer win7 UAC aussi
edit3 si j'inclus mon propre fichier manifeste et delphi l'inclut par défaut aussi qui fera 2 fichiers manifestes (1 avec admin prévilages et 2e sans) cela causerait des problèmes/comportement imprévisiblesont des programmes delphi 2010 capables de s'attaquer à vista/win7 UAC par défaut

+1

Pourquoi votre programme a besoin de modifier une clé de Registre de niveau administratif? Si votre programme a besoin de faire cela, il aura du mal à fonctionner sur les anciennes versions de Windows, à moins que vos clients n'aient tous leurs utilisateurs avec des privilèges d'administration, ce qui serait stupide. De plus, si vous voulez prendre en charge les versions plus récentes de Windows, il serait intéressant d'acheter une copie afin de pouvoir tester votre logiciel sur les plates-formes que vous prétendez prendre en charge. –

+0

@rob kennedy: la situation n'est pas ce que vous pensez avoir reçu une offre de stage, ma première interview s'est bien déroulée mais ils m'ont demandé de soumettre un programme de démonstration une des choses qu'ils ont demandé est que mon programme devrait pouvoir fonctionner temps Windows démarre ma solution à ceci est de modifier «Software \ Microsoft \ Windows \ CurrentVersion \ Run» pour le faire démarrer au démarrage de Windows je crains si elles le testent sur Windows7 sous un compte d'utilisateur normal mon logiciel échouerait :( –

+0

Si vous modifiez ce paramètre de registre dans ** 'HKey_Current_User' **, vous ne devriez avoir aucun problème, ou si vous placez un raccourci vers votre programme dans le dossier Démarrage du menu Démarrer, cela devrait fonctionner aussi. être * pire * pour que vous exigiez des privilèges d'administrateur pour votre programme si le reste de ses fonctions ne l'exige pas.En outre, je suis sûr que vous pouvez simplement leur dire quand vous soumettez votre programme que vous n'avez pas accès à Windows 7 et donc vous ne pouviez pas le tester là-bas, ça ' s une situation parfaitement compréhensible pour un étudiant. Ils vont le tester sur Windows XP à la place. –

Répondre

8

Le manifeste généré par Delphi donne à votre processus les privilèges les plus bas (c'est le nom par défaut).

Vous devez modifier le fichier manifeste afin qu'il ASK pour l'autorisation d'être exécuté sous les droits d'administration (élévation appelée).

Votre application avec les privilèges standard doit être en lecture/écriture sur HKEY_CURRENT_USER sans élévation. Pour accéder à %programfiles% et HKEY_LOCAL_MACHINE, il faut une élévation. (Pas si sûr au sujet des autres ruches de registre)

Ceci est un PDF qui vous aidera beaucoup avec ce que vous faites.

http://pascalfonteneau.developpez.com/articles/delphi/vista/uac/VistaUACandDelphi.pdf

+0

merci aldo, voir mon edit2 –

+0

Cela fonctionnera également pour Seven , Oui. – zz1433

+0

merci encore, maintenant veuillez voir edit3 :-) –