| Slon | 
| Отправлено: 17.12.2004, 14:31 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 19 
  
  
 | 
 Как получить путь откуда запущена программа?  | 
  | 
| Guest | 
| Отправлено: 17.12.2004, 14:46 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Например Application->ExeName 
или как принято в C первый из массива строк  | 
  | 
| Slon | 
| Отправлено: 17.12.2004, 14:54 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 19 
  
  
 | 
 а там полный путь? мне почему-то казалось, что там только имя запускаемого файла... 
Пойду проверю  | 
  | 
| Slon | 
| Отправлено: 17.12.2004, 15:27 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 19 
  
  
 | 
 Спасибо большое! Вы очень помогли =))  | 
  | 
| Dimon.Ru | 
| Отправлено: 17.12.2004, 15:48 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 92 
  
  
 | 
 А что бы получить именно путь, а не имя файла, можно написать так: 
| CODE  |  | ExtractFilePath(Application->ExeName); |     | 
  | 
| Konstantine | 
| Отправлено: 17.12.2004, 16:06 | 
 
 
 | 
  
Мастер участка 
 
Группа: Модератор 
Сообщений: 545 
  
  
 | 
 НЕТ!!! 
это не тот путь... 
если нада путь, откуда была запущена прога (а это НЕ путь к ЕКЗЕ файлу), то нада в начале выполнения проги вызвав что-то типа GetCurrentPath() записать его в прогу... т.к. после того, как если текущий путь будет изменён, то его никак не достать  
 | 
  | 
| Dimon.Ru | 
| Отправлено: 17.12.2004, 16:36 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 92 
  
  
 | 
 точно! есть функция GetCurrentDir()  | 
  | 
| Slon | 
| Отправлено: 17.12.2004, 22:47 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 19 
  
  
 | 
 Мне был нужен именно путь где exe-шник лежит... Интересно как можно запустить прогу, так чтобы текущий путь не совпал с путем к exe файлу? 
   | 
  | 
| Konstantine | 
| Отправлено: 20.12.2004, 09:14 | 
 
 
 | 
  
Мастер участка 
 
Группа: Модератор 
Сообщений: 545 
  
  
 | 
 1) нормально задавай вопрос — т.к. у тебя было именно ОТКУДА была запущена прога. 
2) путь откуда была запущена прога (при запуске проги = текущему пути) можно изменить напр. так: 
свойства ярлыка: 
обьект: c:\windows\system32\calc.exe 
рабочая папка: c:\
  
в Этом случае EXE-шник лежит там гда и лежал (в system32) но запущен был из c:\ 
аналогично при запуске проги из командной строки (строка Run или Far) с написанием полного или промежуточного пути....
  
3) про EXE-шник говорили, на всяк случай: 
| CODE  |  | ExtractFilePath(Application->ExeName); |   
 | 
  | 
| Boyko | 
| Отправлено: 20.12.2004, 10:45 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 88 
  
  
 | 
 | QUOTE (Slon @ 17/12/2004, 22:49) |  Интересно как можно запустить прогу, так чтобы текущий путь не совпал с путем к exe файлу? 
  |  
  
А когда-то "под DOS"работали и каждый человек знал...    | 
  | 
| Treumer | 
| Отправлено: 20.12.2004, 16:15 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 92 
  
  
 | 
| QUOTE (Boyko @ 20/12/2004, 11:47) |  | QUOTE (Slon @ 17/12/2004, 22:49) |  Интересно как можно запустить прогу, так чтобы текущий путь не совпал с путем к exe файлу? 
  |  
  
А когда-то "под DOS"работали и каждый человек знал...   |  
  
"Все больше становилось программистов, все дальше они становились от операционной системы" (с) 
   | 
  | 
| Gedeon | 
| Отправлено: 20.12.2004, 16:28 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
| QUOTE (Slon @ 17/12/2004, 23:49) |  Интересно как можно запустить прогу, так чтобы текущий путь не совпал с путем к exe файлу? 
  |  
  
Кстати говоря, текущий путь может не совпадать с путем к ехе если даже прога была запущена оттуда, но потом из др. места открывался файл, нек-рых это удивляет.  
 | 
  | 
| xim | 
| Отправлено: 21.12.2004, 11:37 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 143 
  
  
 | 
 В общем случае (для получения пути к любому модулю программы — exe,dll,ocx ... ) можно использовать:
  
| CODE  |   
AnsiString get_file_path() 
{ 
 char szPath[512]; 
 if(GetModuleFileName(GetModuleHandle(NULL),szPath,sizeof(szPath))) 
 return ExtractFilePath(szPath); 
} 
 |  
  
 | 
  | 
| xim | 
| Отправлено: 21.12.2004, 11:39 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 143 
  
  
 | 
 Забыл упомянуть, что звать данн.функц. нужно естественно из модуля, 
путь к которому нужно получить  | 
  |