Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

При запусте программы, она читает данный из файла, в той папка от куда запущена...

305
02 апреля 2003 года
Kashuk
385 / / 21.02.2003
При запусте программы, она читает данный из файла, в той папка от куда запущена, прописую на неё путь в реестре на запус, она запускается, но почемуто не видет того файла..... Что делать?
Вот часть кода:

//-----------------------------------------------
BOOL OnlyOne(LPSTR szName);
----------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ShowMessage(ParamStr(0)); // -Выписует
//правельный путь, тоисть вроде грузится с одной
//папки с файлом.
if(OnlyOne("My_Prog.exe")){
char cStr[1024];
ifstream fin(cStr,ios::in);

if(fin){
fin.getline(cStr,1024);
if(atoi(cStr) == 1) CheckBox1->Checked = true;
fin.getline(cStr,1024);
if(atoi(cStr) == 1) CheckBox2->Checked = true;
fin.getline(cStr,1024);
Edit1->Text = cStr;
fin.getline(cStr,1024);
Edit2->Text = cStr;

}

fin.close();
}
else{
MessageBox(NULL,"I?ia?aiia o?a caiouaia!","Ioeaea:",MB_OK|MB_ICONERROR);
exit(1);
}
}
//---------------------------------------------------------------------------

BOOL OnlyOne(LPSTR szName){
HANDLE hMutex = CreateMutex(NULL, TRUE, szName);
if(GetLastError()==ERROR_ALREADY_EXISTS){
CloseHandle(hMutex);
return FALSE;
}
return TRUE;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_CURRENT_USER;
ofstream fout("Adm.ini",ios::out);
char cStr[1024];
Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);

if(CheckBox1->Checked){
fout << "1" << endl;
Reg->WriteString("Adm_Net",ParamStr(0));
}
else{
fout << "0" << endl;
Reg->DeleteValue("Adm_Net");
}
if(CheckBox2->Checked){
fout << "1" << endl;
}
else{
fout << "0" << endl;
}

Reg->CloseKey();
delete Reg;
}
//---------------------------------------------------------------------------
371
02 апреля 2003 года
Non_prog
193 / / 20.03.2000
Цитата:
Originally posted by Kashuk
При запусте программы, она читает данный из файла, в той папка от куда запущена


А если брать путь из командной строки winmain().
:)

989
03 апреля 2003 года
Vlad232ua
182 / / 02.04.2003
А если в лоб, по старинке
if ((result = fopen("D:\\My_Dir\\Result.txt","rt")) == NULL)
{ MessageBox(NULL,My_Message,My_Caption,MB_ICONERROR); return; }

или я чего-то не понял?
305
03 апреля 2003 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Vlad232ua
А если в лоб, по старинке
if ((result = fopen("D:\\My_Dir\\Result.txt","rt")) == NULL)
{ MessageBox(NULL,My_Message,My_Caption,MB_ICONERROR); return; }

или я чего-то не понял?



У тебя путь прописан намертво, а в моей проге в реестр данные в автозагрузку заносятся из той папки, откудава она была запущена, так что это не подходит, а что касается winmain() - так я такого не знаю, но обезательно попробую, пробывал прописывать путь через ParamStr(0), так вот есть один минус путь прописывается с одним обратный слешом, а надо два, не работает, може кто чего посоветует.

1.8K
03 апреля 2003 года
ALI
129 / / 10.01.2003
AnsiString FileName =ExtractFilePath(Application->ExeName) + "FileName.txt";
или
AnsiString FileName =ExtractFileDir (Application->ExeName)+ "\\FileName.txt";;
305
04 апреля 2003 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by ALI
AnsiString FileName =ExtractFilePath(Application->ExeName) + "FileName.txt";
или
AnsiString FileName =ExtractFileDir (Application->ExeName)+ "\\FileName.txt";;



Спасибо пмогло, но я почемута думал что адрен надо прописывать через "C:\\Windows\\inf\\q.inf"
а оказывается сойдёт и с одним слешем.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог