[BCB 6P]scena po pierwszym uruchomieniu

0

No właśnie jak zrobić aby po pierwszym uruchomieniu programu wychodziło okienko z zapytaniem jakie pliki ma otwierać i następnie wysyłało by do rejestru odpowiednie dane z związku z otwarciem pliku??

Np.


Wybierz pliki które ma uruchamiać program ****:

-".txt" //tu pole znacznika wyboru (albbo przed textem)
-"
.html"
itp.


rozumiecie??

0

Chodzi ci o powiązania plików z twoim programem? Tzn. klikasz go, a on ci się otwiera w twoim progsie?

pisałem o tym w C++ -> Porady na http://std.iglu.cz

0

ta strona którą podał Krecik nie działa. Pomoże ktoś??


mail: [email protected]
gg: 3153667

0

Nie działa strona, czy sposób na niej podany? Jeżeli strona, to sprawdź ponownie, mi działa...
konkretnie:
http://std.iglu.cz/cpp/porady/view_faq.php?id=16
i
http://std.iglu.cz/cpp/porady/view_faq.php?id=17

0

te linki co podłeś są dobre ale jak ja klikam na nie od strony głównej (C++, Porady) to wyświetla mi się błąd. Napraw to.

0

mam jeszcze jedno pytanie pisze tam tak:

//Aby ustawic inną ikonę niż programu,
//zamiast ParamStr(0), wpisz scieżkę dostępu do ikony.

mam tam wpisać np. C:\Program Files\ikona.bmp
czy jakoś inaczej??

0

Tak robię i działa:

Reg->WriteString("", "E:\\Soundman.ico,0");

Tam w jednej z linii coś jest nie tak (PHP mi w kodzie namotało:p)
jest:

Reg->WriteString("", ParamStr(0) + " "%1""); 

powino być:

Reg->WriteString("", ParamStr(0) + " "\%1"");

I jeszcze rozszerzenie najlepiej zmienić na coś w stylu ".pik" [bez gwiazdki]

0

oki ale jak zrobić aby za jednym kliknięciem zarejestrować kilka rozszerzeń??
zrobiłem zaznaczanie i osoba może sobie w CheckBox'ie zaznaczyć które pliki ma otwierać program
jeżeli robie to tak:

{
ble ble
}
{
ble ble
}

itd. to wychodzą mi błędy
a jak robię wszystko w {ble ble, ble ble} to wychodzi mi, że "nazwa" i "opis" itd. już istnieją i nie pomaga nawet zrobienie "nazwa2" itd.

0

Masz cały kod (działa):

TStringList *ListExt = new TStringList;
ListExt->Add(".ext1");
ListExt->Add(".ext2");//tu sobie dodajesz rozszerzenia, jakie ci się podobają...
ListExt->Add(".ext3");
TRegistry* Reg = new TRegistry();
for(int i=0; i<ListExt->Count; i++)
{
String ext = ListExt->Strings[i]; //rozszerzenie
String nazwa = "Moje";//jego nazwa
String opis = "Opis mojego rozszerzenia";//jego opis
//rejestracja rozszerzenia
Reg->RootKey = HKEY_CLASSES_ROOT;
Reg->OpenKey(ext, true);
Reg->WriteString("", nazwa);
Reg->CloseKey();

//otwarcie pliku po jego dwukrotnym kliknięciu w Eksploratorze
Reg->OpenKey(nazwa, true);
Reg->WriteString("", opis);
Reg->OpenKey("shell", true);
Reg->WriteString("", "open");
Reg->OpenKey("open", true);
Reg->WriteString("", "&Open");
Reg->OpenKey("command", true);
Reg->WriteString("", ParamStr(0) + " "\%1"");
Reg->CloseKey();

//wymyślona przez nas dodatkowa akcja jaką można wykonać na pliku
//czyli to co jest dostępne pod prawym przyciskiem myszy
Reg->OpenKey(nazwa, true);
Reg->OpenKey("shell", true);
Reg->OpenKey("info", true);
//Nazwa opcji:
Reg->WriteString("", "&Informacje");
//Wykonywana kacja, tu: uruchomienie jakiegos pliku (nie musi byc *.exe)
Reg->OpenKey("command", true);
Reg->WriteString("", "c:program.exe");
Reg->CloseKey();

//kojarzenie ikony z rozszerzeniem (taka sama jak ikona programu)
Reg->OpenKey(nazwa, true);
Reg->OpenKey("DefaultIcon", true);
//Aby ustawic inną ikonę niż programu,
//zamiast ParamStr(0), wpisz scieżkę dostępu do ikony.
Reg->WriteString("", "E:\\Soundman.ico,0");
}
delete Reg;
delete ListExt;
0

jeszcze jeden problem :)
otóż zrobiłem takie coś aby na rozpoczęciu programu pokazywało się okno

void __fastcall T*********::FormShow(TObject *Sender)
{
RejestBox->ShowModal();
}

a teraz nie mogę sobie poradzić ze deaktywowaniem tego okna (nie wiem czy to słowo pasuje tutaj). Chodzi oto aby po kliknięciu na przycisk (tego wyświetlonego okna) nie pokazywało się one (to okno) nigdy więcej.
Próbowałem już różnie i nic.

P.S trochę namotałem alechyba rozumiecie :)

0

Zapisz se jakąś wartość w rejestrze(lub plik, np. INI), a potem ją odczytuj...

1 użytkowników online, w tym zalogowanych: 0, gości: 1