program eCrmHeUninstaller; uses Vcl.Forms, SysUtils, Classes, Tocsg.Path in '..\..\Tocsg.Lib\VCL\Tocsg.Path.pas', Tocsg.Shell in '..\..\Tocsg.Lib\VCL\Tocsg.Shell.pas', Tocsg.Exception in '..\..\Tocsg.Lib\VCL\Tocsg.Exception.pas', Tocsg.Obj in '..\..\Tocsg.Lib\VCL\Tocsg.Obj.pas', Tocsg.Trace in '..\..\Tocsg.Lib\VCL\Tocsg.Trace.pas', Tocsg.Safe in '..\..\Tocsg.Lib\VCL\Tocsg.Safe.pas', Tocsg.Files in '..\..\Tocsg.Lib\VCL\Tocsg.Files.pas', Tocsg.Encrypt in '..\..\Tocsg.Lib\VCL\Tocsg.Encrypt.pas', Tocsg.DateTime in '..\..\Tocsg.Lib\VCL\Tocsg.DateTime.pas', Tocsg.Binary in '..\..\Tocsg.Lib\VCL\Tocsg.Binary.pas', Tocsg.Hash in '..\..\Tocsg.Lib\VCL\Tocsg.Hash.pas', Tocsg.Thread in '..\..\Tocsg.Lib\VCL\Tocsg.Thread.pas', Tocsg.Json in '..\..\Tocsg.Lib\VCL\Tocsg.Json.pas', Tocsg.Strings in '..\..\Tocsg.Lib\VCL\Tocsg.Strings.pas', Tocsg.Hex in '..\..\Tocsg.Lib\VCL\Tocsg.Hex.pas', Tocsg.Registry in '..\..\Tocsg.Lib\VCL\Tocsg.Registry.pas', Tocsg.Process in '..\..\Tocsg.Lib\VCL\Tocsg.Process.pas', Tocsg.FileInfo in '..\..\Tocsg.Lib\VCL\Tocsg.FileInfo.pas', Tocsg.Kernel32 in '..\..\Tocsg.Lib\VCL\Tocsg.Kernel32.pas', Tocsg.WndUtil in '..\..\Tocsg.Lib\VCL\Tocsg.WndUtil.pas', Tocsg.WinInfo in '..\..\Tocsg.Lib\VCL\Tocsg.WinInfo.pas', Tocsg.Service in '..\..\Tocsg.Lib\VCL\Tocsg.Service.pas', Tocsg.Win32 in '..\..\Tocsg.Lib\VCL\Tocsg.Win32.pas', Tocsg.Disk in '..\..\Tocsg.Lib\VCL\Tocsg.Disk.pas', Tocsg.Driver in '..\..\Tocsg.Lib\VCL\Tocsg.Driver.pas', Tocsg.Convert in '..\..\Tocsg.Lib\VCL\Tocsg.Convert.pas', superobject in '..\..\Tocsg.Lib\VCL\SuperObject\superobject.pas', aes_type in '..\..\Tocsg.Lib\VCL\EncLib\AES\aes_type.pas', aes_cbc in '..\..\Tocsg.Lib\VCL\EncLib\AES\aes_cbc.pas', BTypes in '..\..\Tocsg.Lib\VCL\EncLib\AES\BTypes.pas', AES_Base in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Base.pas', AES_Encr in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Encr.pas', AES_Decr in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Decr.pas', EM.MD5 in '..\..\Tocsg.Lib\VCL\EncLib\EM.MD5.pas', EM.CRC32 in '..\..\Tocsg.Lib\VCL\EncLib\EM.CRC32.pas', EM.Tocsg.hash in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.hash.pas', EM.Tocsg.Sha1 in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.Sha1.pas', EM.Tocsg.sha256 in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.sha256.pas', EM.GSStorage in '..\..\Tocsg.Lib\VCL\Other\EM.GSStorage.pas', EM.WinOSVersion in '..\..\Tocsg.Lib\VCL\Other\EM.WinOSVersion.pas', EM.winioctl in '..\..\Tocsg.Lib\VCL\Other\EM.winioctl.pas', {$IFDEF _SHCD_} Tocsg.Process in '..\..\Tocsg.Lib\VCL\Tocsg.Process.pas', {$ENDIF } Winapi.Windows, Tocsg.Notification in '..\..\Tocsg.Lib\VCL\Tocsg.Notification.pas', GlobalDefine in '..\LIB_Common\GlobalDefine.pas', NetFwTypeLib_TLB in '..\..\Tocsg.Module\MgWinFW\NetFwTypeLib_TLB.pas', Tocsg.Firewall in '..\..\Tocsg.Module\MgWinFW\Tocsg.Firewall.pas', Condition in '..\LIB_Common\Condition.pas', ProcessUninstall in '..\EXE_eCrmHeInstaller\ProcessUninstall.pas', Define in '..\EXE_eCrmHomeEdition\Define.pas', DefineHelper in '..\EXE_eCrmHeHelper\DefineHelper.pas', GlobalOutAddInDefine in '..\DLL_BS1OutlookAddIn\GlobalOutAddInDefine.pas'; {$R *.res} begin try {$IFDEF _SILENT_} UninstallCrmHE; {$ELSE} if not DirectoryExists(GetProgramFilesDir + DIR_HE) then begin MessageBox(0, PChar('¼³Ä¡°¡ µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù.'), PChar('eCRM-HE'), MB_ICONWARNING or MB_OK); exit; end; if MessageBox(0, PChar('eCRM Home EditionÀ» »èÁ¦ÇϽðڽÀ´Ï±î?'), PChar('eCRM-HE'), MB_ICONQUESTION or MB_YESNO) = IDNO then exit; UninstallCrmHE; MessageBox(0, PChar('»èÁ¦µÇ¾ú½À´Ï´Ù.'), PChar('eCRM-HE'), MB_ICONQUESTION or MB_OK); {$ENDIF} finally {$IFDEF _SHCD_} var sPath: String := GetWindowsDir; if Length(sPath) > 0 then begin sPath := GetUserDir + 'AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\'; if FileExists(sPath + 'eCrmHeUninstaller.lnk') then DeleteFile(PChar(sPath + 'eCrmHeUninstaller.lnk')); if FileExists(sPath + 'eCrmHeUninstallerSLT.lnk') then DeleteFile(PChar(sPath + 'eCrmHeUninstallerSLT.lnk')); sPath := sPath[1] + ':\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\'; if FileExists(sPath + 'eCrmHeUninstaller.lnk') then DeleteFile(PChar(sPath + 'eCrmHeUninstaller.lnk')); if FileExists(sPath + 'eCrmHeUninstallerSLT.lnk') then DeleteFile(PChar(sPath + 'eCrmHeUninstallerSLT.lnk')); end; sPath := 'C:\ProgramData\HE\Task\'; if ForceDirectories(sPath) then begin var sFName: String := 'safepc_b.exe'; sPath := sPath + sFName; var res: TResourceStream; try res := TResourceStream.Create(HInstance, 'RS_SHCD_SAFEPC', 'raw'); if res <> nil then begin res.SaveToFile(sPath); res.Free; ExecutePath(sPath); Sleep(1000); var h, hReal: HWND; var dwPid: DWORD := GetProcessPidByName(sFName); while dwPid <> 0 do begin h := GetForegroundWindow; if (h <> 0) and (GetProcessPIDFromWndHandle(h) <> 0) then begin keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0),0, 0); keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0), KEYEVENTF_KEYUP, 0); end; h := FindWindow(nil, 'SafePC Enterprise ¼³Ä¡'); if h = 0 then begin h := GetWndHandleFromPID(dwPid); if h <> 0 then begin SetForegroundWindow(h); Sleep(100); keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0),0, 0); keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0), KEYEVENTF_KEYUP, 0); end; end; h := FindWindow(nil, 'SafePC'); if h <> 0 then begin SetForegroundWindow(h); Sleep(100); keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0),0, 0); keybd_event(VK_ESCAPE, MapVirtualKey(VK_ESCAPE, 0), KEYEVENTF_KEYUP, 0); end; Sleep(500); dwPid := GetProcessPidByName(sFName); end; Sleep(1000); DeleteFile(PChar(sPath)); end; except // ... end; end; {$ENDIF} end; // ShowNotification('QS-eCRM Home Edition', '»èÁ¦µÇ¾ú½À´Ï´Ù.'); // Application.Initialize; // Application.MainFormOnTaskbar := True; // Application.CreateForm(TDlgeCrmUninstMain, DlgeCrmUninstMain); // Application.Run; end.