|
#1
|
|||
|
|||
Ярлык программы
Завершил прогу, записал на диск, авторан, анау-мынау.
Но столкнулся с такой проблемой: Устанавливаю прогу, создаётся ярлык на рабочем столе. А прога использует базу данных. В строке подключение компонента ADOConnection висит адрес Base.mdb. Получается, если запускать прогу из корневого каталога, то всё ОК. А если через ярлычки, то она пытается найти Base.mdb на рабочем столе. Но её там нет, как ни верти. Чо делать, а? Ну это нормально... |
#2
|
||||
|
||||
В строку подключения надо вставлять путь, который определяется так:
ExtractFilePath(Application.ExeName) + 'относительный путь к файлу Base.mdb'; Например, если файл находится в одном каталоге с программой, то путь должен быть таким: ExtractFilePath(Application.ExeName) + 'Base.mdb'; |
#3
|
|||
|
|||
А если я не знаю относительный путь? Пользователь при установке его сам выбирает.
Ну это нормально... |
#4
|
||||
|
||||
Если путь выбирает пользователь, то, очевидно, он гдето хранится… И очевидно, что хранится не относительный путь, а абсолютный… Если подставлять его, то все должно быть нормально…
|
#5
|
||||
|
||||
Цитата:
--------------------------------------------- Программирование - не профессия, а стиль жизни |
#6
|
|||
|
|||
С помощью проги InnoSetup. Появилась такая идея - Base.mdb кинуть в Windows'овскую папку. Вопрос только в том, как узнать адрес Windows'овской паки. Она ведь не обязательно в C:\\Windows?
Ну это нормально... |
#7
|
||||
|
||||
Код:
function GettingWinDirectory: string; var Size: Cardinal; pStr: PChar; begin pStr := nil; Size := MAX_COMPUTERNAME_LENGTH + 1; try pStr := StrAlloc( Size ); GetWindowsDirectory( pStr, Size ); Result := pStr; finally if pStr nil then StrDispose( pStr ); end; end; Последний раз редактировалось Decoding, 06.04.2007 в 09:36. |
#8
|
|||
|
|||
function GetWinDir: String;
begin SetLength(Result, MAX_PATH); SetLength(Result, GetWindowsDirectory(PChar(Result), Length(Result))); end; |
#9
|
|||
|
|||
function GetSysDir: String;
begin SetLength(Result, MAX_PATH); SetLength(Result, GetSystemDirectory(PChar(Result), Length(Result))); end; |