Wyszukanie i uruchomienie pliku [DELPHI]


(george32801) #1

Tak jak w temacie. Chcę aby po naciśnięciu przycisku "uruchom grę" program przeszukał cały komputer aby znalazł plik "PRZYKŁAD.exe" a nie tak, że muszę podawać ścieżkę do tego pliku, bo ludzie mają różnie zainstalowaną grę. Chcę aby to było zautomatyzowane. Da się coś takiego zrobić?


(Fiołek) #2

Nie wiem czy takie przeszukiwanie będzie dobre. Zajmie bardzo długo czasu. Jeśli ten plik jest razem z plikiem wykonywalnym gry, to możesz pobrać sobie ścieżkę z parametrów uruchomienia aplikacji(pierwszy parametr). Jeśli nie, to poczytaj o operacjach na plikach w WinAPI.


(adpawl) #3

Większość instalowanych programów zapisuje conieco do rejestru, zatem można by z niego próbować wyciągnąć ścieżkę instalacji zamiast przeszukiwać dysk/i.


(george32801) #4

O.. Dzięki za szybkie odpowiedzi. A w jaki sposób przeszukać rejestr?


(Fiołek) #5

http://msdn.microsoft.com/en-us/library/ms724880(VS.85.aspx

Szukać tak prostych rzeczy się nie umie?


(george32801) #6

Hmm.. Ciężko się tam połapać co jest do czego. Może mi ktoś wytłumaczyć konkretniej? Programuje w delphi od 2 dni... :roll: Nie mam pojęcia jak tę funkcję wykorzystać, a bardzo tego potrzebuje.

P.S - Ten poszukiwany plik to plik wykonywalny gry.

Edit:

Aa... Prosił bym też o sam kod do wstawienia do Delphi 7. Jakiś przykładowy, który wykonuje tę funkcję bo sam klucz już znalazłem.


(Kaka') #7

george32801 , przypominam jednak, że na forum nie otrzymasz gotowca, bowiem podchodziłoby to pod "pracę domową". Możesz co najwyżej oczekiwać od nas wskazówek.


(george32801) #8

Ah.. To przepraszam. :slight_smile:

To jak pomoże mi ktoś? Z Delphi programuje przez 2 dni wiec nie wiem jak ja mam to zrobić. :frowning: Może chociaż ktoś da mi linka do jakichś instrukcji? Potrzebne mi to jest bo tworzę program konfiguracyjny do mojej modyfikacji więc potrzebuję coś takiego aby "wyciągnęło" mi z rejestru ścieżke do pliku gry. (opcja uruchom grę)


(adpawl) #9
http://4programmers.net/Delphi/Kompendium/Rozdział_6

http://www.pcworld.pl/artykuly/45939/Delphi.i.Rejestr.html

http://4programmers.net/Delphi/Gotowce/Moduł_obsługi_rejestru,_ini_dla_Delphi

http://4programmers.net/Delphi/Gotowce/Klucze_rejestru

przykład wykrywania wersji windowsa: http://4programmers.net/Delphi/FAQ/Rejestr/Jak_wykryć_wersję_Windows_na_podstawie_Rejestru_

więcej: http://www.google.com/search?client=ope ... 8&oe=utf-8


(george32801) #10

Przeczytałem to kilka razy ale dalej nie wiem jak to wykorzystać do mojego problemu.. :oops:

Jak podać programowi ścieżkę danego klucza rejestru aby go wykorzystał do uruchomienia aplikacji? :oops:

Edit:

Jestem w takim momencie:

procedure TForm1.Button1Click(Sender: TObject);

var

  Reg : TRegistry;

  TF : TextFile;

  Value : String;

begin

  AssignFile(TF, 'Ścieżka.txt');

  ReWrite(TF);

  Reg := TRegistry.Create;

  try

    Reg.RootKey := HKEY_CURRENT_USER;

    Reg.OpenKey('SOFTWARE\Digital Paint\Paintball2\', False);


  Value := Reg.ReadString(INSTDIR.Text);


  Writeln(TF, 'INSTDIR.Text);

  finally

      Reg.Free;

      TF.Free;

   end;

end;

Próbuję to uruchomić ale się nie da. :frowning: Czemu? Nie wiem. Tu chodzi o to, że program ma znaleźć klucz o nazwie "INSTDIR" (w którym jest ścieżka pliku) i z niego ją wyczytać i zapisać do pliku "ścieżka.txt". Potem musi uruchomić plik "Paintball2.exe" z tej ścieżki. Jak to zrobić by działało?

Oświadczam, że to NIE JEST żadna praca domowa ani inne zadanie/polecenie. Sam po prostu chcę się nauczyć tego języku. Pozdrawiam. Myślę, że mi szybko pomożecie.


(Fiołek) #11

Nigdy nie miałem większej styczności z Pascalem i podobnymi, ale to bym dał rade napisać.

Zamiast "Reg.ReadString(INSTDIR.Text)", powinno być "Reg.ReadString("INSTDIR")". Wtedy w zmiennej "Value" mamy wartość tego klucza i robimy z nim co chcemy.

Zaznaczam, nie wiem czy to działać będzie.


(george32801) #12

Już sobie poradziłem. Dzięki za pomoc. :slight_smile: