Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать из какого каталога запущена моя прога?


Страницы:   1 2

Micah'GF ©   (2002-09-04 09:27:00) 

Нужно узнать откуда запущена моя прога и сравнить с %systemroot%


Micah'GF   (2002-09-04 17:33:00) [1]

Кстати полностью рабочий код получился таким:

procedure TForm1.FormCreate(Sender: TObject);
VAR
PathFrom:array[1..MAX_PATH] of Char;
PathTo:string;
CopyResult:longbool;
begin
GetSystemDirectory(@PathFrom, MAX_PATH);

PathTo:=StrPas(@PathFrom) + "\" + ExtractFileName(Application.ExeName);
Edit1.Text := PChar(Application.ExeName);
Edit2.Text := PathTo;
CopyFile(PChar(Application.ExeName), PChar(PathTo), TRUE);
end;


Micah'GF   (2002-09-04 17:14:00) [2]

Вон в чем моя ошибка была... теперь все понятно.. Пасибо всем.


NickBat   (2002-09-04 12:03:00) [3]

Вообщето не мешало бы указать не просто путь куда копировать, а еще и имя файла туда присоединить. :))))

var
buf: array [0..255] of Char;
PathTo: string;
...

GetSystemDirectory(buf,256);
PathTo:=StrPas(buf)+"\"+ExtractFileName(Application.ExeName);
CopyFile(PChar(Application.ExeName),PChar(PathTo),true);
...


lenin   (2002-09-04 12:02:00) [4]

Вроде так все работает:
procedure TForm1.Button1Click(Sender: TObject);
var PathTo: array [0..MAX_PATH] of Char;
st: string;
begin
GetSystemDirectory(PathTo,MAX_PATH);
st:=string(PathTo)+"\"+PChar(ExtractFileName(Application.ExeName));
CopyFile(PChar(Application.ExeName),PChar(st), TRUE);
Caption:=st;
end;


Micah'GF   (2002-09-04 11:44:00) [5]

Млин.. делаю так

PathTo:array[1..MAX_PATH] of char;
CopyResult:longbool;

....
GetSystemDirectory(@PathTo, MAX_PATH);
CopyResult := CopyFile(PChar(Application.ExeName), @PathTo, TRUE);
....

В CopyResult всегда FALSE и ничего не скопировано...

Помогите готовым кодом... plz.. ну не програмер я..


Micah'GF   (2002-09-04 10:56:00) [6]

Приведите ктонибудь рабочий кусок кода, который бы выяснил где лежит запущеная прога и скопировал этот файл в %SystemRoot%, а то до меня так и не дойдет как сделать самому.


Виктор Щербаков   (2002-09-04 10:55:00) [7]

CopyFile "просит" PChar. Выполни явное преобразование типов
PChar(Application.ExeName)


lenin   (2002-09-04 10:54:00) [8]

PChar(Application.ExeName)


Micah'GF   (2002-09-04 10:50:00) [9]

Как мне засунуть в массив строку ведь Application.ExeName возвращает строку, а CopyFile просит Array


Anatoly Podgoretsky   (2002-09-04 10:42:00) [10]

Micah"GF © (04.09.02 10:31)
Откуда ты взял эту функцию, не мудри используй CopyFile


Micah'GF   (2002-09-04 10:31:00) [11]

Подключил idGlobal, а функция возвращает False

...
GetSystemDirectory(@Path[1], MAX_PATH);
if not CopyFileTo(Application.ExeName, Path) then ShowMessage("бля Error");
...


Виктор Щербаков   (2002-09-04 10:27:00) [12]

CopyFile объявлена в модуле Windows.


Micah'GF   (2002-09-04 10:25:00) [13]

Что то CopyFileTo не совсем работает... говорят Undeclared Identifier.... может чего подключить надо???


Виктор Щербаков   (2002-09-04 10:16:00) [14]

См. API-функцию CopyFile


Micah'GF   (2002-09-04 10:14:00) [15]

Тут вот такой кусочек кода нашел

....
OldFile := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyWrite);
try
NewFile := TFileStream.Create(NewFileName, fmCreate or fmShareDenyRead);

try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
.....

говорят он скопирует нужный файл.
А можно скопировать не открывая файл и не создавая новый... ну типа как в досе команда Copy _from_ _to_


Виктор Щербаков   (2002-09-04 10:08:00) [16]

GetSystemDirectory(@Path[1], MAX_PATH);


Micah'GF   (2002-09-04 10:05:00) [17]

создал Path:array[1..MAX_PATH] of char;
пишу GetSystemDirectory(Path,MAX_PATH);
а там ругаются Incompatible types: "Array" and "PChar"


Юрий Зотов   (2002-09-04 09:57:00) [18]

Если "где лежит" - то это ParamStr(0) или Application.ExeName.
Если "стартовый каталог", то это GetCurrentDir сразу после старта программы.


Lord Warlock   (2002-09-04 09:54:00) [19]

Небольшая поправка - GetWindowsDirectory и GetSystemDirectory


Юрий Зотов   (2002-09-04 09:54:00) [20]

См. "Ученик © (04.09.02 09:46)" или GetWindowsDirectory.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо