Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip

  Alt 3. Nov 2004, 14:13
Hab mal fix eine Lösung für Inno Setup geschrieben. So würde es gehen:
[code=pre]
Code:
type
  TExtensionExport =
    record
      Extension,
      Name        : string;
    end;

procedure ExportRegistry;
var
  ExportArray : array[1..2]of TExtensionExport;
  i,
  ECode      : integer;
  tmp        : string;
begin
  ExportArray[1].Extension := '.bat';
  ExportArray[1].Name     := 'batfile.reg';
  ExportArray[2].Extension := '.cmd';
  ExportArray[2].Name     := 'cmdfile.reg';

  for i                   := 1 to 2 do
  begin
    if(RegQueryStringValue(HKEY_CLASSES_ROOT,ExportArray[i].Extension,'',tmp)) and
      (tmp <> '') then
    begin
      ShellExec('open',
        'regedit.exe',
        '/s /e "' + ExpandConstant('{app}') + '\' + ExportArray[i].Name + '" HKEY_CLASSES_ROOT\' + tmp,
        '',
        SW_SHOW,
        ewWaitUntilTerminated,
        ECode);
    end;
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if(CurPageId = wpInstalling) then
    ExportRegistry;
end;
Leider ist die Pascal-Scriptsprache von Inno Setup noch nicht mit Delphi zu vergleichen. Das Array ließ sich daher nicht gleich bei der Deklaration mit Werten füllen. Und obwohl es laut Hilfe "Low" und "High" gibt, hat der Compiler in der Zeile
Code:
  for i                   := Low(ExportArray) to High(ExportArray) do
gemeckert. Kann auch nur ein Schusselfehler von mir sein. Musst du mal gucken. Jedenfalls exportiert er die gewünschten Dateiendungen als REG-Datei in den Zielordner, den der User ausgewählt hat. Bezüglich der Funktion "CurPageChanged" würde ich dich an die Inno Setup-Hilfe verweisen. Die andere (ExportRegistry) ist eine selbstgeschriebene.
  Mit Zitat antworten Zitat