Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1435 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Utiliser le répertoire Temp de Widnows au lieu de celui du .exe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser le répertoire Temp de Widnows au lieu de celui du .exe

n°660789
inspecteur​mota
Posté le 02-03-2004 à 12:25:50  profilanswer
 

Voilà mon source : on rigole pas svp, je suis débutant et je comprend pas trop comment fonctionne la fonction GetTemp ... Je voudrais bien que mon Mp3 soit extrait dans le répertoire temporaire de Windows au lieu de celui de mon .exe et ensuite que mon mediaplayer le lise et que quand je quitte l'application, il l'efface ...
 
unit MoonBoot;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, MPlayer;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    MediaPlayer1: TMediaPlayer;
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
{$R testressources.RES}
 
procedure TForm1.Image2Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image3Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  WinExec('MoonBoot\bcd.bat corpmb', SW_SHOWNORMAL);
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.terminate;
end;
 
procedure TForm1.Image4Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
 StrNomFichier:string;
 ResourceStream:TResourceStream;
 FichierStream :TFileStream;
 
begin
  StrNomFichier:=ExtractFilePath(Application.ExeName)+'sound.mp3';
  ResourceStream:=TResourceStream.Create(hInstance, 'sound', RT_RCDATA);
  try
    FichierStream:=TFileStream.Create(StrNomFichier, fmCreate);
    try
      FichierStream.CopyFrom(ResourceStream, 0);
    finally
      FichierStream.Free;
    end;
  finally
    ResourceStream.Free;
end;
 
  MediaPlayer1.FileName:='sound.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play;
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Self.Perform(WM_SYSCOMMAND,$f012,0);
end;
 
end.
 
 
Merci d'avance !!

mood
Publicité
Posté le 02-03-2004 à 12:25:50  profilanswer
 

n°660834
inspecteur​mota
Posté le 02-03-2004 à 13:09:47  profilanswer
 

C bon j'ai trouvé tout seul :
 
unit MoonBoot;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, MPlayer;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    MediaPlayer1: TMediaPlayer;
    procedure FormCreate(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
{$R testressources.RES}
 
function RepertoireTemp:string;
var Buffer : array[0..255] of char;
    BufferSize : DWORD;
begin
  BufferSize := sizeOf(Buffer);
  GetTempPath(BufferSize , @buffer );
  Result:=Buffer;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
 ResourceStream:TResourceStream;
 StrNomFichier:string;
begin
  ResourceStream:=TResourceStream.Create(hInstance, 'sound', RT_RCDATA);
  ResourceStream.SaveToFile(RepertoireTemp + 'sound.mp3');
  ResourceStream.Free;
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play
end;
 
procedure TForm1.Image2Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image3Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  WinExec('MoonBoot\bcd.bat corpmb', SW_SHOWNORMAL);
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.terminate;
end;
 
procedure TForm1.Image4Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Self.Perform(WM_SYSCOMMAND,$f012,0);
end;
 
end.
 
@+

n°664791
Yana
Posté le 05-03-2004 à 20:32:42  profilanswer
 

Salut,
 
si tu veux un bon conseil, nomme tous tes composants sur ta feuille, parce que si tu veux reprendre par la suite ton projet, tu seras complètement paumé. En effet, Image1 ca veut rien dire ...
 
Nomme donc tes boutons de commandes en Cmd_NomDuBouton, les images Img_NomDeLimage, les labels en _Nomdulabel ou bien Lbl_Nomdulabel, etc :)
 

n°664808
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-03-2004 à 21:01:14  profilanswer
 

pourquoi un "_" ?
lblNomDuLabel ou btnNomDuBouton c'est plus pratique à taper


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°668999
Yana
Posté le 09-03-2004 à 21:37:07  profilanswer
 

antp a écrit :

pourquoi un "_" ?
lblNomDuLabel ou btnNomDuBouton c'est plus pratique à taper


 
Chacun sa méthode :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Utiliser le répertoire Temp de Widnows au lieu de celui du .exe

 

Sujets relatifs
[C] lister les fichiers présents dans un répertoire[Free] impossible d'utiliser les sessions
Scanner un répertoire + s/rep [résolu][JAVA]Connaitre le repertoire à partir d'un File ?
lister les fichiers d un repertoire dans un tableau et les trier[PHP]connaitre le nom du répertoire courant
[Résolu] hashmap - comment utiliser containsKey ?utiliser SSO avec Tomcat
[JAVA] Utiliser KeyListener pour une exécution en mode console[VB .NET] Trouver le chemin d'accès au répertoire utilisateur
Plus de sujets relatifs à : Utiliser le répertoire Temp de Widnows au lieu de celui du .exe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR