Global DIR$
DIR$ = GetCurrentDirectory()
If FileSize(DIR$+"Mon dossier")=-1
CreateDirectory(DIR$+"Mon dossier"):EndIf
Ce code une fois compilé en exe me crée le dossier sur le bureau!!
Si je l'utilise pour ouvrir un fichier, il ne le trouve pas. Une idée?
Dernière modification par Jacobus le mer. 23/mai/2007 10:56, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Merci KarlKoX, on va adopter cette formule par sécurité.
Mais j'ai trouvé l'origine de mon problème qui survenait en créant une icône de raccourci via un installeur. Car en lançant l'appli depuis le dossier où elle est, pas de problème. Lors de la création de l'icône à l'install, le chemin "Démarrer dans" disponible dans les propriétés de l'icône, n'était pas inscrit. D'où l'usage du bureau par défaut et les em***des qui en découlent...
Deux jours que je cherche cette co****ie ! deux jours que je debugge dans tous les sens pour rien et que j'aurai dû mettre en ligne ma suite, AARRHH!! je suis furax, mais à un point!!
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Je te remercie Lio, mais c'est la première chose que j'ai testé, le retour de GetCurrentDirectory() et qui me donne bien le chemin du répertoire courant. Le plus surprenant est qu'avec le code de KarlKoX je parviens a extraire le même chemin mais ainsi il est parfaitement pris en compte par le programme, ce qui n'est pas le cas autrement. j'avoue que c'est curieux et que cela me pose quelques soucis... à suivre.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Le bureau est un dossier spécial qui change le module appelant, c'est à dire que ton programme est lancé par un autre processus et c'est son module qui est pris en compte et donc, son chemin.
Ceci explique pourquoi ton dossier est créé sur le chemin de celui ci, à savoir, sur le bureau
Une autre astuce consiste à créer une clé dans la bdr lors de l'installation de ton programme (ou du premier lancement) et de faire un SetCurrentDirectory_(lpPath.s) au tout début de ton code.
Merci de ces lumières, je comprend mieux la chose maintenant. Pour l'icône de raccourci j'ai choisi l'option de la créer au premier lancement du programme dans le programme avec les paramètres nécessaires, et je ne la propose plus dans l'installeur. Ca fonctionne correctement.
Par contre cela soulève d'autres questions et je crois qu'il faut que je revois certains paramètres, notamment avec RunProgram() qui pourrait poser quelques problèmes du même style, notamment avec les threads. Par exemple en démarrant plusieurs applis qui elles mêmes utilisent des threads.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.