ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008
-
23 avril 2008 à 23:47
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008
-
28 avril 2008 à 19:54
Bonjour,
J'ai un petit probleme avec les comptes limités (guest aussi) de windows xp.
Mon programme regarde dans le registre HKEY_LOCAL_MACHINE dossieur Run pour savoir si il est deja dans en demarrage automatique et ajuster les options en consequence (Cocher ou pas la case demarrer avec Windows). Le probleme c'est que les compte limités, guest ou sur vista avec UAC (User Access Control) empeche laccès a cette section du registre ( Seulement HKEY_CURRENT_USER est disponible en Read/Write). Donc quand mon application demarre il y a donc une erreur Failed to set data for 'Nom de lapplication ici' et un deluge de Access Violation qui suit par la suite a cette erreur.
Comment puis-je eviter ce probleme?
Y-a t'il une facon de detecter ce type de compte ?
Car de toute facon mon application n'est pas faite pour rouler sur un compte limiter mais vaut mieu prevenir lutilisateur avant que toute plante grave!
Hélas je n'ai pas trouver grand documentation sur ce type de compte et comment le detecter.
de toute façon 3 systeme = 3 methodes (selon la compatibilitée)
heureusement, les 3 ont une structures identique pour le registre et 2k et XP ont au moins l'avantage d'etre trés similaire en fonctionnement contrairement a caca.
sinon utilise cela, copie-colle dans une nouvelle unitée, enregistre et hop :
unit WindowsInfos;
{ WindowsInfos unit
by Deefaze (c) 2008
}
interface
uses Windows;
function WindowsInfosAviable : boolean;
function WindowsName : string;
function WindowsVersionMajor : LongWord;
function WindowsVersionMinor : LongWord;
function WindowsBuildNumber : LongWord;
function WindowsPlatformId : LongWord;
implementation
var
__WindowsInfosAviable : boolean;
__WindowsName : string;
__WindowsInfos : OSVERSIONINFO;
function WindowsInfosAviable : boolean;
begin
result := __WindowsInfosAviable;
end;
function WindowsName : string;
begin
if __WindowsInfosAviable then
result := 'Microsoft Windows '+__WindowsName+' '+__WindowsInfos.szCSDVersion
else
result := __WindowsName;
end;
function WindowsVersionMajor : LongWord;
begin
result := __WindowsInfos.dwMajorVersion;
end;
function WindowsVersionMinor : LongWord;
begin
result := __WindowsInfos.dwMinorVersion;
end;
function WindowsBuildNumber : LongWord;
begin
result := __WindowsInfos.dwBuildNumber;
end;
function WindowsPlatformId : LongWord;
begin
result := __WindowsInfos.dwPlatformId;
end;
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008 24 avril 2008 à 00:09
>>Utiliser Vista est deja une erreur en sois.
>>alors tenter de programmer dessus ... c'est carrement la loose.
C'est pas ce que mes clients pense de Vista mal heureusement!
>>de toute façon HKLM devrait etre réservé aux pilotes et logiciels systeme (Firewall, antivirus).
Je veux bien mais il n'y a pas d'autre facon par le registre de mettre son application en demarrage!!! (épargner moi svp le truc du dossier Startup)
Coté professionnel, il faut developper pour que sa marche sur nimporte quel OS Microsoft recent (je supporte win 2k et +), c'est la regle pour ne pas te metre a dos des utilisateurs du type «early adopters»