• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Setup Dosyasına Harici Program Eklemek

  • Konbuyu başlatan Konbuyu başlatan BedriA
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Arkadaşlar,

Makrolarla hazırlanmış dosyamı setup dosyasına dönüştürdüm.
Bu setup dosyasına ücretsiz bir PDF Yazıcı (sanal yazıcı) eklemek istiyorum.

Yani kullanıcı programı kurarken, bu ücretsiz programı da kurmuş olsun istiyorum.

İkincisi; program çalıştırıldığında kurulan bu yazıcıyı varsayılan yazıcı olarak atasın.

Setup dosyasını Smart Instial Maker programı ile oluşturuyorum.

Kullanmak istediğim sanal yazıcı da BullZip PDF Printer...

Bilgisi olan arkadaşlar yardımcı olabilir mi?
 
Arkadaşlar,

Makrolarla hazırlanmış dosyamı setup dosyasına dönüştürdüm.
Bu setup dosyasına ücretsiz bir PDF Yazıcı (sanal yazıcı) eklemek istiyorum.

Yani kullanıcı programı kurarken, bu ücretsiz programı da kurmuş olsun istiyorum.

İkincisi; program çalıştırıldığında kurulan bu yazıcıyı varsayılan yazıcı olarak atasın.

Setup dosyasını Smart Instial Maker programı ile oluşturuyorum.

Kullanmak istediğim sanal yazıcı da BullZip PDF Printer...

Bilgisi olan arkadaşlar yardımcı olabilir mi?

Setup dosyası işlemleri için inno setup programını kullanabilirsiniz.
Oldukça başarılıdır.

Örnek script dosyası

Kod:
[Setup] 
AppName=Sizin programınızın adı
AppVerName=Sizin programınızın versiyonu 1.5
DefaultDirName={pf}\Sizin programınızın program files daki adı
DefaultGroupName=Sizin programınızın adı
UninstallDisplayIcon={app}\sizinprograminiz.exe
Compression=lzma
SolidCompression=yes

[Files]
Source: "sizinprograminiz.exe"; DestDir: "{app}"
Source: "digerdosyalar.exe"; DestDir: "{app}"

[Icons] Name: "{group}\Sizin programınızın adı"; Filename: "{app}\sizinprograminiz.exe"



Outlook özel işlemler için kullandığım script

Kod:
[Setup]
AppName=Outlook Özel İşlemler
AppVerName=Outlook Özel İşlemler V1.0.6
DefaultDirName={pf}\Outlook_ozel_islemler
[Files]
Source: VbaProject.OTM;  DestDir: "{userappdata}\Microsoft\Outlook";  
 
[Code ]  
function InitializeSetup(): Boolean;
begin
   Result:=True
   MsgBox('Outlook kurulum sırasında kapalı olmalıdır.' + chr(13)+ 'Outlook daki makrolar silenecektir.'+ chr(13) + 'Onaylıyorsanız, bir sonraki ekranda kuruluma devam edin.' + chr(13) + 'Onaylamıyorsanız, iptal edin.', mbInformation, MB_OK);
end;


Excel özel işlemler için kullandığım script

Kod:
[Setup]
AppName=Excel Özel İşlemler
AppVerName=Excel Özel İşlemler V3.7.5
DefaultDirName={pf}\Excel_ozel_islemler

[Files]
Source: Ozel_islemler_menusu.xlam; DestDir: {app}; AfterInstall: CheckRegistry(true);

[Code ]
procedure CheckRegistry(Install: Boolean);
var
  OfficeVersions: TArrayOfString;
  I: Integer;
  J: Integer;
  Installed: Boolean;
  Key: String;
  Value: String;
  Keys: TArrayOfString;
  AlertMessage: String;
  CurrentValue: String;
  NewKey: String;
  KeyNumber: Integer;
  NewKeys: TArrayOfString;
begin
  // Location of Add-In
  Value := ExpandConstant('"{app}\Ozel_islemler_menusu.xlam"')
 
  // List office versions
  if RegGetSubkeyNames(HKEY_CURRENT_USER, 'Software\Microsoft\Office', OfficeVersions) then
  begin

    // Check all the office version
    for I := 0 to GetArrayLength(OfficeVersions)-1 do
    begin
    
      // Initialize Installation Info
      KeyNumber := 0;
      Installed := false;
      
      // Check if Excel is installed and has Options
      Key := 'Software\Microsoft\Office\' + OfficeVersions[I] + '\Excel\Options';
      if RegKeyExists(HKEY_CURRENT_USER, Key) then
      begin
      
        // List all the add-ins currently being shown - for this read all value name
        if RegGetValueNames(HKEY_CURRENT_USER, Key, Keys) then
        begin

          // Process each value name
          for J := 0 to GetArrayLength(Keys)-1 do
          begin
          
            // Check if it is really an ADD-IN
            if (Length(Keys[J]) >= 4) AND (Copy(Keys[J], 1, 4) = 'OPEN') then
            begin

              // Read the add-in path
              if RegQueryStringValue(HKEY_CURRENT_USER, Key, Keys[J], CurrentValue) then
              begin
              
                // Check if it is the add-in we are installing
                if CompareText(Value, CurrentValue) = 0 then
         Installed := true
          
        else
                begin 
        
          // Store all other add-ins in another array
          // Will be used for uninstall
                  SetArrayLength(NewKeys, KeyNumber + 1);
                  NewKeys[KeyNumber] := CurrentValue;
                  KeyNumber := KeyNumber + 1;
                end
       end
      end
     end
    end        
    
      if Installed then
      begin
        // Are we trying to uninstall?
        if not Install then
        begin
        
          // Re-serialize all other add-ins
          for J := 0 to KeyNumber-1 do
          begin
            NewKey := 'OPEN';
            if J > 0 then
              NewKey := NewKey + IntToStr(J);
            RegWriteStringValue(HKEY_CURRENT_USER, Key, NewKey, NewKeys[J]);
          end
          
          // Delete additional keys
            repeat
            NewKey := 'OPEN';
            if J > 0 then
              NewKey := NewKey + IntToStr(J);
              
          until (Not RegDeleteValue(HKEY_CURRENT_USER, Key, NewKey))
        end
        AlertMessage := 'Kuruldu'           
     end
      else  // Not installed
      begin
        // We are trying to install - add to the last
        if Install then
        begin
          NewKey := 'OPEN';
          if KeyNumber > 0 then
            NewKey := NewKey + IntToStr(KeyNumber);
          RegWriteStringValue(HKEY_CURRENT_USER, Key, NewKey, Value);
          end
          AlertMessage := 'Kurulmadı';
          
      end
        AlertMessage := 'Office sürümünüz ' + OfficeVersions[I] + ', add-in is ' + AlertMessage;
      
      end
    end
  end
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  case CurUninstallStep of
    usPostUninstall:
      begin
        CheckRegistry(false);
      end;
  end;
end;
 
Son düzenleme:
Asri Hocam,

PDF yazıcıyı nasıl ekliyoruz setup dosyasına?
Örnek kodun nasıl kullanılacağını da izah edebilir misiniz?
 
Asri Hocam,

PDF yazıcıyı nasıl ekliyoruz setup dosyasına?
Örnek kodun nasıl kullanılacağını da izah edebilir misiniz?

Bendeki örnek dosyaları ekledim. Kontrol ediniz.
 
Geri
Üst