Портативный вариант для флэшек (на основе последней сборки v2.35 от
Victor_VG): [more]Задумка в том, чтобы на x86 системе запускался ProcessHacker\x86\ProcessHacker.exe, а на x64, соответственно - ProcessHacker\x64\ProcessHacker.exe.
Установка - распаковать папку ProcessHacker куда-нибудь, запускать через лаунчер ProcessHacker\Process Hacker.exe. В зависимости от разрядности OS запустится нужная разрядность PH. Папку ProcessHacker и лаунчер можно переименовать по вкусу, папки x64 и x86 нельзя, т. е. структуру расположения папок/файлов внутри папки ProcessHacker не трогать, можно только удалить или переименовать папку info.
http://www.upload.ee/files/4695237/processhacker-2.35-x86-x64-portable.7z.html p.s. Исходник лаунчера (
FASM):
Код: ;---------------------------------------------
; ProcessHacker launcher
; Copyright (C) addhaloka
;---------------------------------------------
format PE GUI 4.00
entry start
include 'win32w.inc'
section '.text' code readable executable
align 4
nothing_error:
invoke MessageBox,0,szerr,caption,MB_ICONEXCLAMATION
jmp exit
getdir:
push edi
invoke GetModuleFileName,0,curdir,MAX_PATH*2
invoke lstrlen,curdir
imul eax,2
mov edi,eax
add edi,curdir
@@:
cmp word ptr ds:edi,005Ch
je @F
dec edi
jmp @B
@@:
mov word ptr ds:edi+1h,0
pop edi
ret
proc existW
push ebp
mov ebp,esp
add esp,0FFFFFDB0h
lea eax,[ebp-250h]
push eax
push dword[ebp+8]
call [FindFirstFileW]
cmp eax,0FFFFFFFFh
jne @F
mov eax,0
jmp .endexist
@@:
push eax
call [FindClose]
mov eax,1
.endexist:
leave
retn 4
endp
start:
invoke GetNativeSystemInfo,sysinfo
cmp [sysinfo.wProcessorArchitecture],0
je @f
call getdir
invoke lstrcat,curdir,exe64
stdcall existW,curdir
cmp eax,0
je nothing_error
invoke lstrcpy,exepath,curdir
call getdir
invoke lstrcat,curdir,path64
invoke ShellExecute,0,0,exepath,0,curdir,10
jmp exit
@@:
call getdir
invoke lstrcat,curdir,exe32
stdcall existW,curdir
cmp eax,0
je nothing_error
invoke lstrcpy,exepath,curdir
call getdir
invoke lstrcat,curdir,path32
invoke ShellExecute,0,0,exepath,0,curdir,10
exit:
invoke ExitProcess,0
section '.data' data readable writeable
caption du 'Warning!',0
szerr du 'ProcessHacker.exe is not found!',0Dh,0Ah
du 'Please check location of run.',0
exe32 du 'x86\ProcessHacker.exe',0
exe64 du 'x64\ProcessHacker.exe',0
path32 du 'x86\',0
path64 du 'x64\',0
section '.bss' readable writeable
curdir du MAX_PATH dup(?)
exepath du MAX_PATH dup(?)
sysinfo SYSTEM_INFO <>
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
shell32,'SHELL32.DLL',\
user32,'USER32.DLL'
include 'api/kernel32.inc'
include 'api/user32.inc'
include 'api/shell32.inc'
section '.rsrc' resource data readable
directory RT_ICON,icons,\
RT_GROUP_ICON,group_icons,\
RT_MANIFEST,_manifest,\
RT_VERSION,versions
resource icons,\
1,0x0409,icon_data1,\
2,0x0409,icon_data2,\
3,0x0409,icon_data3
resource group_icons,\
100,0x0409,main_icon
resource _manifest,\
1,0x0409,manifest
resource versions,\
1,0x0409,version
icon main_icon,\
icon_data1,'res/48x48.ico',\
icon_data2,'res/32x32.ico',\
icon_data3,'res/16x16.ico'
resdata manifest
file 'res/manifest.xml'
endres
versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,0x0409,0x04E4,\
'CompanyName','addhaloka',\
'FileDescription','Process Hacker portable launcher',\
'FileVersion','1.0.0.0'