Une méthode pour obtenir le nom d'un ordinateur ? (UNICODE)
Une méthode pour obtenir le nom d'un ordinateur ? (UNICODE)
Bonjour, à tous et à toute voila dans le cadre d'un de mes projet j'ai besoin de récupérer le nom d'utilisateur du pc ou le programme s'execute.
J'utilise donc la méthode existant de pure basic.
monstring$ = GetEnvironmentVariable("USERNAME")
Je compile et tout va pour le mieux, je récupere bien mon nom d'utilisateur, sauf dans un des cas quand le programme tourne sur des systèmes avec une langue type Russe,Arabe,Chinois ect.. ou purebasic me retourne un nom d'utilisateur totalement illisible et incorecte.
DDDD_DD dans ce genre là au lieu de:
ПЕТЯ
Du coup c'est moi ou GetEnvironementVariable ne marche pas en unicode ? (oui j'ai déja cocher la compilation en unicode)
Parce que j'ai bien l'impression que c'est un problème lié donc au fait que la procedure ne marche pas en Unicode et seulement en ASCII.
Vous connaisez une méthode plus fiable et qui marche de façon global sur les pc Windows ?
Cordialement,
J'utilise donc la méthode existant de pure basic.
monstring$ = GetEnvironmentVariable("USERNAME")
Je compile et tout va pour le mieux, je récupere bien mon nom d'utilisateur, sauf dans un des cas quand le programme tourne sur des systèmes avec une langue type Russe,Arabe,Chinois ect.. ou purebasic me retourne un nom d'utilisateur totalement illisible et incorecte.
DDDD_DD dans ce genre là au lieu de:
ПЕТЯ
Du coup c'est moi ou GetEnvironementVariable ne marche pas en unicode ? (oui j'ai déja cocher la compilation en unicode)
Parce que j'ai bien l'impression que c'est un problème lié donc au fait que la procedure ne marche pas en Unicode et seulement en ASCII.
Vous connaisez une méthode plus fiable et qui marche de façon global sur les pc Windows ?
Cordialement,
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
Bonjour JAMBON, content de parler pour la premiere fois avec toi
Avec les API peut être.., t'as essayé ça:

Avec les API peut être.., t'as essayé ça:
Code : Tout sélectionner
NomSession.s = Space(500)
NameLen = Len(NomSession)
GetUserName_(@NomSession, @NameLen)
Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
pour ma part GetEnvironmentVariable("USERNAME") fonctionne compilé en unicode
peut être faut il la bonne font pour l'affichage car si c'est en chinois et que tu n'as pas les caractères chinois cela ne s'affiche pas correctement
peut être faut il la bonne font pour l'affichage car si c'est en chinois et que tu n'as pas les caractères chinois cela ne s'affiche pas correctement
Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
Idem,
ça marche chez moi aussi en unicode.
Font de mon IDE : Consolas
Code : Tout sélectionner
Debug GetEnvironmentVariable("USERNAME")
Font de mon IDE : Consolas
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
en même temps ton nom d'utilisateur n'est sans doute pas en chinois en arabe ou en russeAr-S a écrit :Idem,ça marche chez moi aussi en unicode.Code : Tout sélectionner
Debug GetEnvironmentVariable("USERNAME")
Font de mon IDE : Consolas

Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
Salut Kwai chang caine, merci pour l'idée je vais tester ta solution.
Et bien oui @Ar-S et case, quand je parle que sa ne fonctionne pas en Unicode je me suis surement mal exprimer.
Enfaite je compile en unicode, et la fonction marche bien chez moi. (bah oui système français ou anglais donc forcément je peut pas trop savoir à l'avance si sa marche sur tout les système)
Techniquement l'unicode devrai me retourner le bon username/nom de compte en "Russe" hors là sa m'affiche "D-D-D-DDD". (rien à voir)
Ce qui me porte bien à croire que c'est la fonction PureBasic qui ne supporterai pas l'unicode. (genre dans la fonction y'a un flag #ASCII , ce qui donnerai du sens au problème qui n'intervient ou ne se voit que sur des systèmes ou la langue n'est pas dérivé du Latin )
En ce qui concerne la "font" je peut vous éliminer ce cas d'école, parce que le programme est compilée, et tourne chez un client ou son système est totalement en russe. (donc bon là..)
Je vous dit quoi et je vais mettre à jour le topic.
Merci
Et bien oui @Ar-S et case, quand je parle que sa ne fonctionne pas en Unicode je me suis surement mal exprimer.
Enfaite je compile en unicode, et la fonction marche bien chez moi. (bah oui système français ou anglais donc forcément je peut pas trop savoir à l'avance si sa marche sur tout les système)
Techniquement l'unicode devrai me retourner le bon username/nom de compte en "Russe" hors là sa m'affiche "D-D-D-DDD". (rien à voir)
Ce qui me porte bien à croire que c'est la fonction PureBasic qui ne supporterai pas l'unicode. (genre dans la fonction y'a un flag #ASCII , ce qui donnerai du sens au problème qui n'intervient ou ne se voit que sur des systèmes ou la langue n'est pas dérivé du Latin )
En ce qui concerne la "font" je peut vous éliminer ce cas d'école, parce que le programme est compilée, et tourne chez un client ou son système est totalement en russe. (donc bon là..)
Je vous dit quoi et je vais mettre à jour le topic.
Merci

Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
Donc en gros tu dis que sur l'OS Russe, la fonction ne retourne pas le bon nom ?
Ne supprimons pas tout de suite l'éventuel soucis de font.
Il faut tout de même vérifier si la Font de l'IDE sur le système Russe comporte les caractères de l'USER, ce n'est peut-être pas le cas. Il faut peut être aussi lui imposer une font lors de la compilation. ça coute rien de vérifier.
(voir sujet inclure font externe)
Je ne peux pas tester plus avant.
Ne supprimons pas tout de suite l'éventuel soucis de font.
Il faut tout de même vérifier si la Font de l'IDE sur le système Russe comporte les caractères de l'USER, ce n'est peut-être pas le cas. Il faut peut être aussi lui imposer une font lors de la compilation. ça coute rien de vérifier.

Je ne peux pas tester plus avant.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Une méthode pour obtenir le nom d'un ordinateur ? (UNICO
Effectivement, je vient de tester sur un OS russe (Vista) en Machine Virtuel et à ma surprise les deux fonction me retourne bien via une messagebox le nom en russe sans problème
(Je vous dit pas quand j'ai vu sa, mon brain ma sortie "Fatal Error")
Je vais regarder pour les font à inclure, faut dire aussi que le mec en question tourne sous XP.
Si je trouve l'anguille sous la roche, je vous ferai signe, c'est pas un gros problème en soit mais sa reste "génant".

Je vais regarder pour les font à inclure, faut dire aussi que le mec en question tourne sous XP.
Si je trouve l'anguille sous la roche, je vous ferai signe, c'est pas un gros problème en soit mais sa reste "génant".
Une méthode pour obtenir le nom d'un ordinateur ? (UNICODE)
Je met à jour le thread.
Enfaite il semblerai que sa soit la fonction HTTP_GET() que j'utilise pour transmettre les information qui soit en cause
http://www.purebasic.fr/english/viewtopic.php?p=217326
Effectivement, c'est en ASCII que la requete est réaliser.
Ce qui me permet donc de trouver l'origine du problème.
Maintenant plus qu'a trouver comment résoudre ce dit problème.
Enfaite il semblerai que sa soit la fonction HTTP_GET() que j'utilise pour transmettre les information qui soit en cause
http://www.purebasic.fr/english/viewtopic.php?p=217326
Effectivement, c'est en ASCII que la requete est réaliser.
Ce qui me permet donc de trouver l'origine du problème.
Maintenant plus qu'a trouver comment résoudre ce dit problème.