A számítógépem mappájának elérési útja és neve - delphi sources faq

Dug valamilyen módon a számítógépes vírus a következő winchester és a roncs írta: a tudás egy szörnyű erő.

Elég bonyolult dolog, így ha ez nem releváns a kérelmet, a pre-figyelmeztet, hogy ne pazarolja a drága időt a dzsungelben összetett és zavaros információkat. Mindazonáltal az érdeklődőket az igaz útra irányítom.

Operációs rendszer Windows 32 alapú burkolat, amely kihasználja a virtuális mappák, például a 'Sajátgép' (My Computer), 'desktop' (asztali) és a 'lomtár' (kosár). Néhány közülük a fizikai fájlrendszer része. Más szavakkal, a fájlrendszerben van egy megfelelő valós könyvtár. Ez például a rendszer mappák "asztalára" és a "recycle bin" -re vonatkozik. Ezek a könyvtárak alkalmazhatók a TOpenDialog InitialDir, de először meg kell, hogy megkapják a fizikai helyét, ami változhat a különböző számítógépeken. Ahhoz, hogy megismerhessük tényleges helyüket a helyi lemezen, speciális API-hívásokat kell használnia (lásd az alábbi példát). Más mappák, például a "számítógép" és a "nyomtatók" nem részei a fájlrendszernek, csupán virtuálisak. Felhívom a figyelmet arra a tényre, hogy az ilyen mappák lehet használni a TOpenDialog, de nem InitialDir.

Íme egy példa arra, hogyan lehet elérni a "legutóbbi dokumentumok" elérési útját, és felhasználhatjuk InitialDir-ként:

Úgy gondolom, létre kell hoznia egy csomagtartó osztályt ezeknek az API-hívásoknak. Ezek a shell32.dll fájlban találhatók. A legjobb tanács, amit a probléma tanulmányozásában adhatok, mélyebben megragadja a ShlObj.h fájlt. Nem is programoztam a C-ban, de sok értékes információt kaptam.

Íme néhány konstans, amire szüksége lehet: