Pour tester, allez dans le dossier Resident de PureBasic, sélectionnez un fichier et faites copier.
renommer l'extension res en res1 ou res 123 ou ce que vous voulez pour laisser au moins les 3 premières lettres.
lancez ce code avec le debugger on, il contient le filtre *.res, on ne devrait voir que les fichiers .res, mais les fichiers dont l'extension commence par res sont également pris en compte, le filtre a un bug.
Code : Tout sélectionner
Procedure.s CheminPureBasic()
Buffer$=Space(10000):BufferSize=Len(Buffer$)-1
If GetVersion_() & $FF0000 ; Windows NT/XP
If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "Applications\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @key) = #ERROR_SUCCESS
If RegQueryValueEx_(key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS
OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7))
EndIf
EndIf
Else ; La même chose pour Win9x
If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS , @key) = #ERROR_SUCCESS
If RegQueryValueEx_(key, "", 0, @Type, @Buffer$, @BufferSize) = #ERROR_SUCCESS
OutputDirectory$ = GetPathPart(Mid(Buffer$, 2, Len(Buffer$)-7))
EndIf
EndIf
EndIf
ProcedureReturn OutputDirectory$
EndProcedure
PbConstantFolder$ = CheminPureBasic() + "Residents\"
If ExamineDirectory(0, PbConstantFolder$, "*.res")
CheminDir = NextDirectoryEntry()
While CheminDir
If CheminDir = 1
Debug DirectoryEntryName()
EndIf
CheminDir = NextDirectoryEntry()
Wend
EndIf