При запусте программы, она читает данный из файла, в той папка от куда запущена...
Вот часть кода:
//-----------------------------------------------
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;
}
//---------------------------------------------------------------------------
Цитата:
Originally posted by Kashuk
При запусте программы, она читает данный из файла, в той папка от куда запущена
При запусте программы, она читает данный из файла, в той папка от куда запущена
А если брать путь из командной строки winmain().
:)
if ((result = fopen("D:\\My_Dir\\Result.txt","rt")) == NULL)
{ MessageBox(NULL,My_Message,My_Caption,MB_ICONERROR); return; }
или я чего-то не понял?
Цитата:
Originally posted by Vlad232ua
А если в лоб, по старинке
if ((result = fopen("D:\\My_Dir\\Result.txt","rt")) == NULL)
{ MessageBox(NULL,My_Message,My_Caption,MB_ICONERROR); return; }
или я чего-то не понял?
А если в лоб, по старинке
if ((result = fopen("D:\\My_Dir\\Result.txt","rt")) == NULL)
{ MessageBox(NULL,My_Message,My_Caption,MB_ICONERROR); return; }
или я чего-то не понял?
У тебя путь прописан намертво, а в моей проге в реестр данные в автозагрузку заносятся из той папки, откудава она была запущена, так что это не подходит, а что касается winmain() - так я такого не знаю, но обезательно попробую, пробывал прописывать путь через ParamStr(0), так вот есть один минус путь прописывается с одним обратный слешом, а надо два, не работает, може кто чего посоветует.
или
AnsiString FileName =ExtractFileDir (Application->ExeName)+ "\\FileName.txt";;
Цитата:
Originally posted by ALI
AnsiString FileName =ExtractFilePath(Application->ExeName) + "FileName.txt";
или
AnsiString FileName =ExtractFileDir (Application->ExeName)+ "\\FileName.txt";;
AnsiString FileName =ExtractFilePath(Application->ExeName) + "FileName.txt";
или
AnsiString FileName =ExtractFileDir (Application->ExeName)+ "\\FileName.txt";;
Спасибо пмогло, но я почемута думал что адрен надо прописывать через "C:\\Windows\\inf\\q.inf"
а оказывается сойдёт и с одним слешем.