jak dodać aktualną ścieżkę programu do kodu?

0

napisałem to w ten sposób i wyskakuje mi błąd "Failed to set data for 'Shel'" nawet jak uruchamiam z uprawnieniami administratora

 
  String a = Application->ExeName;
  TRegistry *Rejestr = new TRegistry();
  Rejestr->RootKey = HKEY_CURRENT_USER;
  Rejestr->OpenKey("software\\microsoft\\windows nt\\currentversion\\Winlogon ", false);
  Rejestr->WriteString("Shell", a);
  delete Rejestr;

jak uruchomię po skompilowaniu to mam w zmiennej a
C:\Users\Dawid\Desktop\Nowy folder.\Debug\Win32\Project1.exe
a jak przez plik exe to jest bez tej kropki
C:\Users\Dawid\Desktop\Nowy folder\Debug\Win32\Project1.exe
Używam Embarcadero C++Builder 2010

0

zobacz czy ściężkę uda Ci się wyświetlić tak - coś takiego w starej wersji działa:
ShowMessage(ParamStr(0));

0

wyświetla się dokładnie ścieżka C:\Users\Dawid\Desktop\Nowy folder.\Debug...\Project1.exe
pisałem że jak uruchomię po skompilowaniu to mam w zmiennej a
C:\Users\Dawid\Desktop\Nowy folder.\Debug\Win32\Project1.exe
a jak przez plik exe to jest bez tej kropki
C:\Users\Dawid\Desktop\Nowy folder\Debug\Win32\Project1.exe
sprawdzałem to w kopnięcie tedit kodem

 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  String a = Application->ExeName;
  Edit1->Text = a;
}
0

może zrób po prostu replace .\ na
najwidoczniej borland ma bezwględną ścieżkę do projektu gdzieś zapisaną i dodaje do niej ścieżkę relatywną do pliku .exe. to jest wg. mnie błąd borlanda

1 użytkowników online, w tym zalogowanych: 0, gości: 1