Craituirea o dată un virus de computer o dată pe hard disk și de pe ruinele a scris: cunoaștere - forță teribilă.
Acesta este un material destul de complicat, deci dacă acest lucru nu este relevant pentru cererea dvs., vă avertizez în prealabil că nu vă petreceți timpul prețios în sălbăticia unor informații complicate și confuze. Cu toate acestea, voi îndruma pe cei interesați la calea adevărată.
Windows-urile sistemului de operare 32 se bazează pe un shell care folosește foldere virtuale, cum ar fi "calculatorul meu", "desktop" și "coșul de reciclare". Unele dintre ele fac parte din sistemul fizic de fișiere. Cu alte cuvinte, ei au un director real corespunzător în sistemul de fișiere. Acest lucru este valabil, de exemplu, în dosarele de sistem "desktop" și "coșul de reciclare". Aceste directoare pot fi folosite ca InitialDir în TOpenDialog, dar mai întâi trebuie să obțineți locația lor fizică, care poate fi diferită de alte computere. Pentru a afla locația lor reală pe discul local, trebuie să utilizați anumite apeluri API speciale (a se vedea exemplul de mai jos). Alte foldere, cum ar fi "calculatorul meu" și "imprimantele", nu fac parte din sistemul de fișiere, ci sunt pur virtual. Vă atrag atenția asupra faptului că astfel de foldere pot fi utilizate în TOpenDialog, dar nu în InitialDir.
Iată un exemplu care arată cum să ajungeți la "documentele recente" și să îl utilizați ca InitialDir:
Cred că trebuie să creați o clasă pentru aceste apeluri API. Ele sunt situate în shell32.dll. Cel mai bun sfat pe care-l pot da în studierea acestei probleme este de a sătura mai adânc în fișierul ShlObj.h. De asemenea, nu program în C, dar am obținut o mulțime de informații valoroase de acolo.
Iată câteva constante de care aveți nevoie: