Bonjour, à la base ça paraît tout simple, c'est un code d'installation de fichier pour une appli, et si le fichier est de type ttf alors on en fait aussi une copie dans C:\Windows\Fonts pour l'installation.
Cela fonctionne sous Xp mais pas du tout sous Windows 7 (pas encore testé sous Vista). Je pense que c'est encore une histoire de droit, mais comment résoudre ça par code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 for i := 0 to FFileList.Count - 1 do with TFile(FFileList[i]) do begin src_file:= IncludeTrailingPathDelimiter(src_dir + OrPath) + OrName; dst_file:= IncludeTrailingPathDelimiter(dst_dir + OrPath) + OrName; if not DirectoryExists(ExtractFilePath(dst_file)) then ForceDirectories(ExtractFilePath(dst_file)); CopyFile(PWideChar(src_file), PWideChar(dst_file), not Overwrite); if (UpperCase(ExtractFileExt(src_file)) = '.TTF') then {...1} begin dst_file:= 'C:\Windows\Fonts\' + ExtractFileName(src_file); CopyFile(PWideChar(src_file), PWideChar(dst_file), not Overwrite); end; end;
J'ai de plus essayer en ligne de commande et avec un fichier batch. Résultat identique pas de problème sous XP, impossible sous Windows 7.
Quelques recherche google non rien donné (en tout cas rien en ce qui concerne la faisabilité par code, tout parle de copier-coller), hormis c'est 2 lignes de commandes supplémentaires censé permettre de s'octroyer des droits sur le dossier C:\Windows\Fonts avant la copie
Code : Sélectionner tout - Visualiser dans une fenêtre à part copy "c:\applicodebarre\code128.ttf" "c:\windows\fonts\code128.ttf"
mais déjà, dés la première ligne j'ai le message suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 takeown /f C:/Windows/Fonts /r /d o icacls C:/Windows/Fonts /grant administrateurs:F /TCe qui paraît logique puisque je TAPE une ligne de commande pour obtenir ces privilèges !!Erreur: l'utilisateur actuellement connecté n'a pas les privilèges d'appartenance sur le fichier (ou dossier) "C:\Windows\Fonts"
Bref pour le moment j'en suis à ça
Toutes suggestions, que ce soit en Pascal, ligne de commande, voir même en vb, seront les bienvenues.







Répondre avec citation



Partager