BSOne.SFC/eCrmHE/EXE_eCrmHeUninstaller/eCrmHeUninstaller.dpr

173 lines
6.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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('<27><>ġ<EFBFBD><C4A1> <20>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.'), PChar('eCRM-HE'), MB_ICONWARNING or MB_OK);
exit;
end;
if MessageBox(0, PChar('eCRM Home Edition<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?'),
PChar('eCRM-HE'), MB_ICONQUESTION or MB_YESNO) = IDNO then exit;
UninstallCrmHE;
MessageBox(0, PChar('<27><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.'), 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 <20><>ġ');
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', '<27><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.');
// Application.Initialize;
// Application.MainFormOnTaskbar := True;
// Application.CreateForm(TDlgeCrmUninstMain, DlgeCrmUninstMain);
// Application.Run;
end.