ufmMain.pas 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. {$J+}
  2. {
  3. OSInet media autorunner
  4. Copyright 2005 Ouest Systèmes Informatiques
  5. 2005-08-13 Initial version created for a McAfee CD for BICA
  6. 2007-10-08 Updated for a Zend DVD for ACSSA
  7. $Id: ufmMain.pas,v 1.1 2007-10-08 19:59:13 marand Exp $
  8. }
  9. unit ufmMain;
  10. interface
  11. uses
  12. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13. Dialogs, StdCtrls, ExtCtrls, IniFiles, ShellAPI;
  14. type
  15. TfmOAR = class(TForm)
  16. M: TMemo;
  17. tm: TTimer;
  18. procedure FormCreate(Sender: TObject);
  19. procedure tmTimer(Sender: TObject);
  20. private
  21. { Déclarations privées }
  22. procedure ApplicationActivate (Sender : TObject) ;
  23. public
  24. { Déclarations publiques }
  25. end;
  26. var
  27. fmOAR: TfmOAR;
  28. implementation
  29. {$R *.dfm}
  30. procedure TfmOAR.ApplicationActivate (Sender : TObject) ;
  31. const
  32. csIniFile = 'autorun.inf' ;
  33. csSection = 'autorun' ;
  34. csVerb = 'index' ;
  35. isLoaded : Boolean = False ;
  36. var ini : TIniFile ;
  37. sl : TStringList ;
  38. cmd : String ;
  39. ret : Cardinal ;
  40. msg : String ;
  41. begin
  42. if isLoaded then
  43. exit ;
  44. isLoaded := True ;
  45. ini := TIniFile.Create(GetCurrentDir + '\' + csIniFile) ;
  46. sl := TStringList.Create ;
  47. ini.ReadSectionValues(csSection, sl);
  48. // ShowMessage('il y a ' + IntToStr(sl.count) + ' chaines');
  49. cmd := sl.Values [csVerb] ;
  50. if cmd = '' then
  51. ShowMessage ('Pas de clause ' + csVerb + ' dans la section '
  52. + csSection + ' de ' + csIniFile + '. Rien à charger.')
  53. else
  54. begin
  55. msg := 'Chargement de: ' + cmd ;
  56. ret := ShellExecute (Application.Handle, 'open', PAnsiChar (cmd), nil, nil, SW_SHOWMAXIMIZED) ;
  57. if ret < 32 then
  58. begin
  59. msg := msg + ('--> Erreur ' + InttoStr (ret)) ;
  60. tm.Interval := 10000 ;
  61. end
  62. else
  63. msg := msg + ('--> OK') ;
  64. tm.Interval := 1000 ;
  65. fmOAR.Visible := True ;
  66. Application.BringToFront ;
  67. Application.ProcessMessages ;
  68. M.Text := msg ;
  69. tm.Enabled := True ;
  70. end ;
  71. end;
  72. procedure TfmOAR.FormCreate(Sender: TObject);
  73. begin
  74. Application.OnActivate := ApplicationActivate ;
  75. end;
  76. procedure TfmOAR.tmTimer(Sender: TObject);
  77. begin
  78. Application.Terminate ;
  79. end;
  80. end.