173 lines
6.5 KiB
Plaintext
173 lines
6.5 KiB
Plaintext
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.
|