Poof-poof |
Отправлено: 14.11.2003, 00:10 |
|
Не зарегистрирован
|
Допустим, я написал программу...
Скомпилил...
Запустил...
Во время её запуска нужно сделать следующее:
Низная названия этого *.exe файла,
Низная его размера...
Скопировать его в файл c:\file.exe (например)
Как это сделать? (если это вообще возможно) |
|
exp |
Отправлено: 14.11.2003, 01:48 |
|
Мастер участка
Группа: Участник
Сообщений: 304
|
Ориентировочный путь решения:
1) найти папку, в которой лежит сама программа
2) скопировать ее, куда нужно.
Да и почему не зная имени *.ехе-шника?
Application->ExeName;
Для пункта 1 где-то тут у меня было..., по-моему FAQ откуда-то... ага! вот.
CODE |
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Label1->Caption = Application->ExeName;
Label2->Caption = ParamStr(0);
Label3->Caption = GetCurrentDir();// текущая папка (может измениться!)
char ExeName[MAX_PATH];
GetModuleFileName(HInstance, ExeName, sizeof(ExeName));
Label4->Caption=ExeName;
}
|
В этих лабелах имя экзешника и папка его залегания
а для пункта 2
CopyFile(). У нее вроде 2 параметра: Путь к исходному файлу, который получен в пункте 1, и путь к файлу-копии.
|
|
Poof-poof |
Отправлено: 14.11.2003, 02:31 |
|
Не зарегистрирован
|
Спасибо за подробный ответ! |
|
Poof-poof |
Отправлено: 14.11.2003, 03:55 |
|
Не зарегистрирован
|
Чёто не пашет...
Пишу: CopyFile(Application->ExeName,"c:\file.exe");
И ошибки с этим char-ом... Чё делать? |
|
Roman |
Отправлено: 14.11.2003, 09:05 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 78
|
Попробуй преобразовать в char...
Примерно так:
char file_r[34]; //Преобразование типов AnsiString->char
strcpy(file_r,file_Name.c_str());
В твоем случае:
char file_r[34]; //Преобразование типов AnsiString->char
strcpy(file_r, Application->ExeName.c_str());
CopyFile(file_r, "c:\\file.exe");
Должно работать... |
|
Poof-poof |
Отправлено: 15.11.2003, 03:08 |
|
Не зарегистрирован
|
Спасибо!
Всё работает! |
|
Umka |
Отправлено: 15.11.2003, 15:11 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 32
|
Текущую папку правельнее узнавать так:
CODE |
Labael1->Caption = ExtractFilePath(Application->ExeName);
| |
|