1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
unit uProcesses; interface uses GnuGettext, TlHelp32, uTools, Classes, SysUtils, Windows, ExtCtrls, PsAPI; type TProcInfo = class PID: integer; Module, ExePath: String; CanDelete: boolean; end; tProcesses = class public ProcessList: tList; function GetProcInfo(PID: integer): TProcInfo; procedure Update; procedure UpdateProcesses; constructor Create; destructor Destroy; override; end; function GetProcessPath(PID: Cardinal): string; var Processes: tProcesses; implementation uses uMain; const cModuleName = 'procs'; { tProcessList } constructor tProcesses.Create; begin ProcessList := tList.Create; end; destructor tProcesses.Destroy; var ProcInfo: TProcInfo; p: integer; begin for p := 0 to ProcessList.Count - 1 do begin ProcInfo := ProcessList[p]; FreeAndNil(ProcInfo); end; FreeAndNil(ProcessList); inherited; end; function GetProcessPath(PID: Cardinal): string; var hProcess: THandle; begin hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,PID); if hProcess <> 0 then begin try SetLength(Result,MAX_PATH); FillChar(Result[1],Length(Result) * SizeOf(Char), 0); if GetModuleFileNameEx(hProcess,0,PChar(Result),Length(Result)) > 0 then Result := Trim(Result) else Result := 'Unable to get info'; finally CloseHandle(hProcess) end; end else Result := 'Unable to open process'; end; function tProcesses.GetProcInfo(PID: integer): TProcInfo; var ProcInfo: TProcInfo; p: integer; begin for p := 0 to ProcessList.Count - 1 do begin ProcInfo := ProcessList[p]; if ProcInfo.PID = PID then begin result := ProcInfo; exit; end; end; result := nil; end; procedure tProcesses.UpdateProcesses; var hSnapShot: THandle; pe32: TProcessEntry32; ProcInfo: TProcInfo; i: integer; begin for i := 0 to ProcessList.Count - 1 do begin ProcInfo := ProcessList[i]; ProcInfo.CanDelete := true; end; hSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if hSnapShot <> INVALID_HANDLE_VALUE then begin try pe32.dwSize := SizeOf(pe32); if Process32First(hSnapshot,pe32) then repeat ProcInfo := TProcInfo.Create; ProcInfo.Module := LowerCase(Trim(pe32.szExeFile)); //ProcInfo.ExePath := LowerCase(Trim(GetProcessPath(pe32.th32ProcessID))); ProcInfo.ExePath := LowerCase(Trim(pe32.szExeFile)); ProcInfo.PID := pe32.th32ProcessID; if Length(ProcInfo.ExePath) <> 0 then ProcInfo.CanDelete := false else ProcInfo.CanDelete := true; ProcessList.Add(ProcInfo); pe32.dwSize := SizeOf(pe32); until Process32Next(hSnapshot,pe32) = False; finally CloseHandle(hSnapShot); end; end; i := 0; while i < ProcessList.Count do begin ProcInfo := ProcessList[i]; if ProcInfo.CanDelete then begin fMain.AddLog(cModuleName, Format(_('Deleting PID-entry %d: %s'), [ProcInfo.PID, ProcInfo.ExePath]), ltDebugDetails); FreeAndNil(ProcInfo); ProcessList.Delete(i); end else begin inc(i); end; end; end; procedure tProcesses.Update; var hProcessSnap: tHandle; TProcessEntry: TProcessEntry32; ProcInfo: TProcInfo; hModuleSnap: tHandle; ModuleEntry: MODULEENTRY32; i: integer; PID: Cardinal; begin fMain.AddLog('processes', 'Checking processes...', ltDebugDetails); for i := 0 to ProcessList.Count - 1 do begin ProcInfo := ProcessList[i]; ProcInfo.CanDelete := true; end; hProcessSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap = INVALID_HANDLE_VALUE) then exit; TProcessEntry.dwSize := SizeOf(TProcessEntry); if (Process32First(hProcessSnap, TProcessEntry)) then begin repeat PID := TProcessEntry.th32ProcessID; ProcInfo := GetProcInfo(PID); if ProcInfo <> nil then begin ProcInfo.CanDelete := false end else begin // hModuleSnap := INVALID_HANDLE_VALUE; hModuleSnap := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, TProcessEntry.th32ProcessID); if (hModuleSnap <> INVALID_HANDLE_VALUE) then begin ModuleEntry.dwSize := SizeOf(MODULEENTRY32); if (Module32First(hModuleSnap, &ModuleEntry)) then begin ProcInfo := TProcInfo.Create; ProcInfo.Module := LowerCase(ModuleEntry.szModule); ProcInfo.ExePath := LowerCase(ModuleEntry.szExePath); //ProcInfo.ExePath := LowerCase(GetProcessPath(TProcessEntry.th32ProcessID)); ProcInfo.PID := TProcessEntry.th32ProcessID; ProcInfo.CanDelete := false; ProcessList.Add(ProcInfo); end else begin ProcInfo := nil; end; end else begin ProcInfo := TProcInfo.Create; ProcInfo.Module := LowerCase(TProcessEntry.szExeFile); ProcInfo.ExePath := LowerCase(TProcessEntry.szExeFile); //ProcInfo.ExePath := LowerCase(ModuleEntry.szExePath); //ProcInfo.ExePath := LowerCase(GetProcessPath(TProcessEntry.th32ProcessID)); ProcInfo.PID := TProcessEntry.th32ProcessID; ProcInfo.CanDelete := false; ProcessList.Add(ProcInfo); end; if ProcInfo <> nil then fMain.AddLog(cModuleName, Format(_('Creating PID-entry %d: %s'), [ProcInfo.PID, ProcInfo.ExePath]), ltDebugDetails); CloseHandle(hModuleSnap); end; until not(Process32Next(hProcessSnap, TProcessEntry)); end; CloseHandle(hProcessSnap); i := 0; while i < ProcessList.Count do begin ProcInfo := ProcessList[i]; if ProcInfo.CanDelete then begin fMain.AddLog(cModuleName, Format(_('Deleting PID-entry %d: %s'), [ProcInfo.PID, ProcInfo.ExePath]), ltDebugDetails); FreeAndNil(ProcInfo); ProcessList.Delete(i); end else begin inc(i); end; end; end; initialization Processes := tProcesses.Create; finalization Processes.Free; end.