Skocz do zawartości


Zdjęcie

Zmienne systemowe


  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5030 postów

Napisano 2008.10.01, 18:03

Mam mały problem z programem napisanym w Borland C++ Builder 6. Chciałem użyć do wyświetlania folderów skrót do profilu użytkownika w Windowsie %USERPROFILE% lecz kompilator po prostu nie traktuje tego normalnie - nie wchodzi nam do żadnego katalogu (inne takie jak %TMP% tez nie działają). Nie mogę sobie z tym poradzić, nie wiem jak to obejść. Może ktoś wie coś na ten temat?

#2 Killer

Killer

    Expert

  • Użytkownik
  • 1129 postów

Napisano 2008.10.01, 18:50

#include <shlobj.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   LPITEMIDLIST pidl;
   LPMALLOC	 pShellMalloc;
   char		 Dir[MAX_PATH];

   if (SUCCEEDED(SHGetMalloc(&pShellMalloc)))
	  if (SUCCEEDED(SHGetSpecialFolderLocation(NULL, CSIDL_BITBUCKET, &pidl)))
	  {
		 if (SHGetPathFromIDList(pidl, Dir))
			Label1->Caption = Dir;
		 pShellMalloc->Free(pidl);
	  }

   pShellMalloc->Release();
}

Parametry dostępne (wstawić pod CSIDL_BITBUCKET):

CSIDL_CONTROLS Panel sterowania (?) 
CSIDL_DESKTOP Pulpit (c:\windows\pulpit) 
CSIDL_DESKTOPDIRECTORY Katalog pulpitu (c:\windows\pulpit) 
CSIDL_DRIVES Mój komputer (?) 
CSIDL_FONTS Czcionki (c:\windows\fonts) 
CSIDL_NETHOOD Otoczenie sieciowe (c:\windows\nethood) 
CSIDL_NETWORK Wirtualny folder otoczenia sieciowego (?) 
CSIDL_PERSONAL Moje dokumenty (c:\moje dokumenty) 
CSIDL_PRINTERS Drukarki (?) 
CSIDL_PROGRAMS Programy z Menu Start (c:\windows\menu start\programy) 
CSIDL_RECENT Ostatnio używane (c:\recent) 
CSIDL_SENDTO Wyślij do (c:\windows\sendto) 
CSIDL_STARTMENU Menu Start (c:\windows\menu start) 
CSIDL_STARTUP Autostart (c:\windows\menu start\programy\autostart) 
CSIDL_TEMPLATES Szablony dokumentów (c:\windows\shellnew)

Sprawdź, czy zadziała pod C++ Builder 6 (powinno bez problemu). :)

Beta testy AQQ:

PC: AQQ (zawsze najnowsza beta), Edge, Windows 10 x64 | Kompozycja: GG11, Wtyczki: dostarczane z AQQ


#3 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5030 postów

Napisano 2008.10.01, 19:54

Działa znakomicie :) Musiałem tylko jeszcze w opcjach projektu w zakładce 'Directories/Conditionals' w 'conditional defines' dodać "NO_WIN32_LEAN_AND_MEAN" bo wywalało błąd multideklaracji ;)




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych