home *** CD-ROM | disk | FTP | other *** search
/ Computer Music Interacti…pecial Edition 2000 April / cd.iso / pc / PC / maintenance / Techsheduler / data1.cab / Delphi_Demo_1 / Testunit.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1999-07-27  |  7.8 KB  |  265 lines

  1. {
  2.  Delphi 3,4 Test program for the TechScheduler API.
  3.  
  4.  Requires TKSHDAPI.DLL to be in the Windows or same directory.
  5.  
  6.  This demo can be used without any restrictions and can be
  7.  modified without prior permission. We request that updates
  8.  and bugs be sent to Winutils@aol.com
  9.  
  10.  copyright 1998-99 Dean Software Design
  11.  www.winutils.com
  12. }
  13. unit testUnit;
  14.  
  15. interface
  16.  
  17. uses
  18.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  19.   StdCtrls, Buttons, ExtCtrls, Spin;
  20.  
  21. const
  22.    apipath = 'tkshdapi.dll';
  23.    
  24. type
  25.   TForm1 = class(TForm)
  26.     Button1: TButton;
  27.     Button2: TButton;
  28.     Label1: TLabel;
  29.     Edit1: TEdit;
  30.     OpenDialog1: TOpenDialog;
  31.     SpeedButton1: TSpeedButton;
  32.     Button3: TButton;
  33.     Button4: TButton;
  34.     Button5: TButton;
  35.     Edit2: TEdit;
  36.     Label2: TLabel;
  37.     Button6: TButton;
  38.     Button7: TButton;
  39.     Button8: TButton;
  40.     Button9: TButton;
  41.     Button10: TButton;
  42.     Button11: TButton;
  43.     Label3: TLabel;
  44.     Edit3: TEdit;
  45.     Label4: TLabel;
  46.     Edit4: TEdit;
  47.     Label5: TLabel;
  48.     Edit5: TEdit;
  49.     SpinEdit1: TSpinEdit;
  50.     Label6: TLabel;
  51.     Label7: TLabel;
  52.     RadioGroup1: TRadioGroup;
  53.     Button12: TButton;
  54.     Button13: TButton;
  55.     procedure Button1Click(Sender: TObject);
  56.     procedure Button2Click(Sender: TObject);
  57.     procedure SpeedButton1Click(Sender: TObject);
  58.     procedure Button3Click(Sender: TObject);
  59.     procedure Button6Click(Sender: TObject);
  60.     procedure Button5Click(Sender: TObject);
  61.     procedure Button7Click(Sender: TObject);
  62.     procedure Button8Click(Sender: TObject);
  63.     procedure Button9Click(Sender: TObject);
  64.     procedure Button10Click(Sender: TObject);
  65.     procedure Button11Click(Sender: TObject);
  66.     procedure Button12Click(Sender: TObject);
  67.     procedure Button13Click(Sender: TObject);
  68.   private
  69.     { Private declarations }
  70.   public
  71.     { Public declarations }
  72.   end;
  73.  
  74. var
  75.   Form1: TForm1;
  76.  
  77. function RunScheduler(callerHWnd: integer;path:pchar):integer; stdcall;
  78.          external apipath name 'RunScheduler';
  79. function KillScheduler:integer; export; stdcall;
  80.          external apipath name 'KillScheduler';
  81. function PauseScheduler:integer; export; stdcall;
  82.          external apipath name 'PauseScheduler';
  83. function StartScheduler:integer; export; stdcall;
  84.          external apipath name 'StartScheduler';
  85. function RunJob(jobname:pchar):integer; export; stdcall;
  86.          external apipath name 'RunJob';
  87. function PauseJob(jobname:pchar):integer; export; stdcall;
  88.          external apipath name 'PauseJob';
  89. function StartJob(jobname:pchar):integer; export; stdcall;
  90.          external apipath name 'StartJob';
  91. function DeleteJob(jobname:pchar):integer; export; stdcall;
  92.          external apipath name 'DeleteJob';
  93. function ReadJobFile(jobfilename:pchar):integer; export; stdcall;
  94.          external apipath name 'ReadJobFile';
  95. function SetJobParameter(jobname:pchar;paramid:pchar;
  96.                      strdata:pchar;intdata:integer;
  97.                      booldata:boolean):integer; export; stdcall;
  98.          external apipath name 'SetJobParameter';
  99. function GetLastAPIError:integer; export; stdcall;
  100.          external apipath name 'GetLastAPIError';
  101. function SetConfigParameter(paramid:pchar;
  102.                      strdata:pchar;intdata:integer;
  103.                      booldata:boolean):integer; export; stdcall;
  104.          external apipath name 'SetConfigParameter';
  105. function WriteLogEntry(jobname:pchar;logdata:pchar):integer; export; stdcall;
  106.          external apipath name 'WriteLogEntry';
  107.  
  108. implementation
  109.  
  110. {$R *.DFM}
  111.  
  112. procedure TForm1.Button1Click(Sender: TObject);
  113. var tstr : array[0..254] of char;
  114. begin
  115.    strpcopy(tstr,edit1.text);
  116.    case RunScheduler(form1.handle,tstr) of
  117.      0:ShowMessage('TechScheduler Started');
  118.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  119.      else Showmessage('TechScheduler not started');
  120.    end;
  121. end;
  122.  
  123. procedure TForm1.Button2Click(Sender: TObject);
  124. begin
  125.    case KillScheduler of
  126.      0:ShowMessage('TechScheduler Killed');
  127.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  128.      else Showmessage('TechScheduler not killed');
  129.    end;
  130. end;
  131.  
  132. procedure TForm1.SpeedButton1Click(Sender: TObject);
  133. begin
  134.    OpenDialog1.filename := '*.exe';
  135.    if Opendialog1.execute then
  136.       edit1.text := opendialog1.filename;
  137. end;
  138.  
  139. procedure TForm1.Button3Click(Sender: TObject);
  140. begin
  141.    case PauseScheduler of
  142.      0:showmessage('TechScheduler paused');
  143.      1:ShowMessage('Last Message not retrieved by TechScheduler');
  144.      else showmessage('TechScheduler not paused');
  145.    end;
  146. end;
  147.  
  148. procedure TForm1.Button6Click(Sender: TObject);
  149. var tstr : array[0..254] of char;
  150. begin
  151.    strpcopy(tstr,edit2.text);
  152.    case RunJob(tstr) of
  153.      0:ShowMessage('Job Started');
  154.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  155.      else Showmessage('Job not started');
  156.    end;
  157. end;
  158.  
  159. procedure TForm1.Button5Click(Sender: TObject);
  160. begin
  161.    case GetLastAPIError of
  162.      0:showmessage('0 - Function Successful');
  163.      1:showmessage('0 - Function Failed');
  164.      2:showmessage('0 - Job not found');
  165.    end;
  166. end;
  167.  
  168. procedure TForm1.Button7Click(Sender: TObject);
  169. var tstr : array[0..254] of char;
  170. begin
  171.    strpcopy(tstr,edit2.text);
  172.    case PauseJob(tstr) of
  173.      0:ShowMessage('Job Paused');
  174.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  175.      else Showmessage('Job not started');
  176.    end;
  177. end;
  178.  
  179. procedure TForm1.Button8Click(Sender: TObject);
  180. var tstr : array[0..254] of char;
  181. begin
  182.    strpcopy(tstr,edit2.text);
  183.    case StartJob(tstr) of
  184.      0:ShowMessage('Job Restarted');
  185.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  186.      else Showmessage('Job not started');
  187.    end;
  188. end;
  189.  
  190. procedure TForm1.Button9Click(Sender: TObject);
  191. var tstr : array[0..254] of char;
  192. begin
  193.    strpcopy(tstr,edit2.text);
  194.    case DeleteJob(tstr) of
  195.      0:ShowMessage('Job Deleted');
  196.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  197.      else Showmessage('Job not deleted');
  198.    end;
  199. end;
  200.  
  201. procedure TForm1.Button10Click(Sender: TObject);
  202. var tstr,
  203.     tstr2 : array[0..254] of char;
  204. begin
  205.    strpcopy(tstr,edit3.text);
  206.    case ReadJobFile(tstr2) of
  207.      0:ShowMessage('Job File Read');
  208.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  209.      else Showmessage('Job file not read');
  210.    end;
  211. end;
  212.  
  213. procedure TForm1.Button11Click(Sender: TObject);
  214. var tstr,
  215.     tstr2,
  216.     tstr3 : array[0..254] of char;
  217.     tbool:boolean;
  218. begin
  219.    strpcopy(tstr,edit2.text);
  220.    strpcopy(tstr2,edit4.text);
  221.    strpcopy(tstr3,edit5.text);
  222.    case Radiogroup1.itemindex of
  223.     -1,0:tbool:=true;
  224.     else tbool:=false;
  225.    end;
  226.    case SetJobParameter(tstr,tstr2,tstr3,Spinedit1.value,tbool) of
  227.      0:ShowMessage('Job Parameter Set');
  228.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  229.      else Showmessage('Job parameter not set');
  230.    end;
  231. end;
  232.  
  233. procedure TForm1.Button12Click(Sender: TObject);
  234. var tstr2,
  235.     tstr3 : array[0..254] of char;
  236.     tbool:boolean;
  237. begin
  238.    strpcopy(tstr2,edit4.text);
  239.    strpcopy(tstr3,edit5.text);
  240.    case Radiogroup1.itemindex of
  241.     -1,0:tbool:=true;
  242.     else tbool:=false;
  243.    end;
  244.    case SetConfigParameter(tstr2,tstr3,Spinedit1.value,tbool) of
  245.      0:ShowMessage('Config parameter set');
  246.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  247.      else Showmessage('Config parameter not set');
  248.    end;
  249. end;
  250.  
  251. procedure TForm1.Button13Click(Sender: TObject);
  252. var tstr,
  253.     tstr2 : array[0..254] of char;
  254. begin
  255.    strpcopy(tstr,edit5.text);
  256.    strpcopy(tstr2,edit2.text);
  257.    case WriteLogEntry(tstr2,tstr) of
  258.      0:ShowMessage('Log write successful');
  259.      2:ShowMessage('Last Message not retrieved by TechScheduler');
  260.      else Showmessage('Log write not successful');
  261.    end;
  262. end;
  263.  
  264. end.
  265.