Pc hra a složka INT v Program Files – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pc hra a složka INT v Program Files – Delphi – Fórum – Programujte.comPc hra a složka INT v Program Files – Delphi – Fórum – Programujte.com

 

14. 1. 2021   #1
-
0
-

Zdravím,

jde o hru a DELPHI . Jak mám do složky pomocí DELPHI přepsat soubory ? Složka má nazev INT a v ní jsou soubory skoncovkou .int . Cesta je - C:\Program Files\InfiniteLoop\DS9TheFallen\int . Ta složka INT je
velká zhruba 400 Kb. Instalátor mám. Děkuji.

Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
15. 1. 2021   #2
-
0
-

   

uses System.IOUtils;
...
TFile.Copy('odkud', 'kam', true);
Nahlásit jako SPAM
IP: 213.211.51.–
15. 1. 2021   #3
-
0
-
Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
15. 1. 2021   #4
-
0
-

IOUtils do uses na začátku souboru a Copy do funkce obsluhující kliknutí na Install.

Ale než psát vlastní installer, tak možná mrkni na Inno Setup, NSIS, Windows Installer a podobné programy pro vytváření instalátoru.

Nahlásit jako SPAM
IP: 213.211.51.–
15. 1. 2021   #5
-
0
-

Inno Setup znám. K vytvoření vlastního instalátoru mám důvod. Instalátor je skoro hotov jen se mi nedaří vyměnit složku INT se soubory. Soubory jsou anglické. Chci je vyměnit za české. Děkuji.

Nahlásit jako SPAM
IP: 188.122.195.–
15. 1. 2021   #6
-
0
-

Instalátor

___________________________________________

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Image1: TImage;
    lInstaluj: TLabel;
    lKonec: TLabel;
    procedure lKonecClick(Sender: TObject);
    procedure lKonecMouseEnter(Sender: TObject);
    procedure lKonecMouseLeave(Sender: TObject);
    procedure lInstalujMouseEnter(Sender: TObject);
    procedure lInstalujMouseLeave(Sender: TObject);
    procedure lInstalujClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{-----------------------------------------------------------------
  Kliknuti na Konec ukoncuje aplikaci
------------------------------------------------------------------}
procedure TForm1.lKonecClick(Sender: TObject);
begin
  Close;
end;

{-----------------------------------------------------------------
  Najedu mysi nad label KONEC - zmenim barvu na Silver
------------------------------------------------------------------}
procedure TForm1.lKonecMouseEnter(Sender: TObject);
begin
  lKonec.Font.Color := clSilver;
end;

{-----------------------------------------------------------------
  Odjedu mysi z labelu KONEC -. vratim barvu na Aqua
------------------------------------------------------------------}
procedure TForm1.lKonecMouseLeave(Sender: TObject);
begin
  lKonec.Font.Color := clAqua;
end;

{-----------------------------------------------------------------
  Najedu mysi nad label INSTALUJ - zmenim barvu na Silver
------------------------------------------------------------------}
procedure TForm1.lInstalujMouseEnter(Sender: TObject);
begin
  lInstaluj.Font.Color :=  clSilver;

end;

{-----------------------------------------------------------------
  Odjedu mysi z labelu INSTALUJ -. vratim barvu na Aqua
------------------------------------------------------------------}
procedure TForm1.lInstalujMouseLeave(Sender: TObject);
begin
  lInstaluj.Font.Color :=  clAqua;
end;

Nahlásit jako SPAM
IP: 188.122.195.–
MilanL+1
Grafoman
17. 1. 2021   #7
-
0
-

#6 ZAČÁTEČNÍKDE
no vlastní instalace je v lInstalujClick ne?

co se týče náhrady souborů asi bych jazyky rozlišil pojmenováním nebo složkou, také "program files" složky mívají určitá specifika ohledně oprávnění,

Co se týče náhrady, postupoval bych následovně nejdříve bych zálohoval původní soubor přesunem nebo kopírováním+zmanzání a až poté nahrál nový.

Případně bych ini soubory rozbalil instalátorem do pracovní složky, a použil na to systémový příkaz xcopy.

Postupů je vícero každý používá svůj

Nahlásit jako SPAM
IP: 185.112.167.–
17. 1. 2021   #8
-
0
-

Jeden člověk mi dal toto a vytvoří se tam prazdná složka INT .

Nahlásit jako SPAM
IP: 188.122.195.–
17. 1. 2021   #9
-
0
-

procedure TForm1.lInstalujClick(Sender: TObject);
var
  ShOp: TSHFileOpStruct;
  mySlozka, myZdroj: string;
begin
  mySlozka := 'c:\program files\infiniteloop\DS9TheFallen\int'; // upravte si cestu a jmeno slozky
  { kod na smazani slozky vcetne obsahu }
  ShOp.Wnd := Self.Handle;
  ShOp.wFunc := FO_DELETE;
  ShOp.pFrom := PChar(mySlozka + #0);
  ShOp.pTo := nil;
  ShOp.fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
  SHFileOperation(ShOp); // tento prikaz smaze slozku

  { vytvorim slozku }
  if not CreateDir(mySlozka) then
  begin
    ShowMessage('Nepodařilo se vytvořit složku:'#13 + mySlozka);
    Exit;
  end
  else
  begin
    { nakopiruju ze slozky int umistene u programu do mySlozka }
    myZdroj := ExtractFilePath(Application.ExeName) + 'int\*.*';

    ShOp.wFunc := FO_COPY;
    ShOp.pFrom := PChar(myZdroj + #0);
    ShOp.pTo := PChar(mySlozka + #0);
    ShOp.fFlags := FOF_SILENT or FOF_NOCONFIRMATION or FOF_FILESONLY;
    SHFileOperation(ShOp); // tento prikaz smaze slozku

    ShowMessage('Instalace byla dokončena');
  end;
end;

end.

Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
17. 1. 2021   #10
-
0
-

Nejsem si jistý správností použití PChar na dočasné proměnné, ale ten kdo ti poradil asi víc, co dělá. Jinak tam nic okatého nevidím.

Možná bude problém v tom, že to kopíruje ze složky int ve složce, kde je exáč. Nevím, v čem to kompiluješ, ale pravděpodobně umístění exáče bude něco jako win32\debug\program.exe a win32\release\program.exe. Takže tam musí být i ta tvoje složka int (nebo přesuň exáč).

Nahlásit jako SPAM
IP: 213.211.51.–
17. 1. 2021   #11
-
0
-

Používám DELPHI 7 32 bit.

Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
18. 1. 2021   #12
-
0
-

Já si Windows a Delphi instalovat nebudu, abych se podíval, kam se to kompiluje :-) Byl to jen tip, který si musíš vyhodnotit sám.

Nahlásit jako SPAM
IP: 213.211.51.–
18. 1. 2021   #13
-
0
-

Nevím, že nemáš Winy.

Nahlásit jako SPAM
IP: 188.122.195.–
18. 1. 2021   #14
-
0
-
Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
18. 1. 2021   #15
-
0
-

Já tam vidím int a Project1.exe ve stejné složce, takže v tom asi problém nebude.

Pokud trváš na tom, že exáč je v system, tak tam musí být i ta zdrojová složka int

myZdroj := ExtractFilePath(Application.ExeName) + 'int\*.*';

A SHFileOperation v případě chyby vrací chybový kód, tak z něj by možná šlo něco vyčíst.

Nahlásit jako SPAM
IP: 213.211.51.–
18. 1. 2021   #16
-
0
-
Nahlásit jako SPAM
IP: 188.122.195.–
gna
~ Anonymní uživatel
1891 příspěvků
18. 1. 2021   #17
-
0
-

Je řeč o tom tvém instalátoru.

  • Ten smaže "c:\program files\infiniteloop\DS9TheFallen\int"
  • Znovu vytvoří "c:\program files\infiniteloop\DS9TheFallen\int"
  • A zkopíruje obsah "<slozka_kde_je_exac_instalatoru>\int" do "c:\program files\infiniteloop\DS9TheFallen\int".

Třetí bod je to, co nefunguje. Tak se ptám jestli tam tu zdrojovou složku máš.

První obrázek naznačuje, že možná ten instalátor máš v cílové složce, což samozřejmě nemůže fungovat. A druhý obrázek je úplně na hovno.

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1891 příspěvků
19. 1. 2021   #18
-
0
-

Já tam vidím int a Project1.exe ve stejné složce, takže v tom asi problém nebude.

To jsem se nepodíval na tu cestu. Nakonec v tom ten problém asi bude, že zdrojový a cílový int jsou ta samá složka.

Nahlásit jako SPAM
IP: 213.211.51.–
19. 1. 2021   #19
-
0
-
Nahlásit jako SPAM
IP: 188.122.195.–
Nahlásit jako SPAM
IP: 188.122.195.–
29. 1. 2021   #21
-
0
-

Jeden člověk mi poskytl řešení a funguje. Dám sem odkaz.

Nahlásit jako SPAM
IP: 188.122.195.–
Nahlásit jako SPAM
IP: 188.122.195.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý