Jump to content
Korean Random

AtotIK

User
  • Content Count

    1,524
  • Joined

  • Last visited

  • Days Won

    9

AtotIK last won the day on November 11 2022

AtotIK had the most liked content!

Community Reputation

576 ⭐⭐⭐

2 Followers

Basic information

  • Gender
    Мужчина

Contacts

  • Nick
    AtotIK

Recent Profile Visitors

16,477 profile views
  1. Для кого придумали это? https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss Прекрасно работает, а если попросите у автора - зальёт новую dll с поддержкой WG/Lesta.
  2. Тут посмотрите: https://bitbucket.org/IzeBerg/
  3. Хм, а у меня на арте гусеницы на живом танке не перекрашиваются в другой цвет. Upd. Да, в простом бою тоже не красятся. Реплей с Батчатом. Файлы собраны свежие с 1.18. 20220808_1051_ussr-R52_Object_261_60_asia_miao.wotreplay 20220810_0904_france-F18_Bat_Chatillon25t_31_airfield.wotreplay
  4. @StranikS_Scan привет. Будут изменения в программе в связи с переходом на новую реализацию гусениц? Upd. Добавился "res\packages\vehicles_level_08-part3.pkg", учитывайте это в конфиге.
  5. Ребята, а можно отдельно в png символ лампочки в ушах, пожалуйста?
  6. А вот универсальный метод, но он сложнее. Работает везде. type HANDLE = LongInt; HMODULE = HANDLE; pHMODULE = Array[0..255] of HMODULE; LPDWORD = DWORD; PDWORD = Array[0..255] of DWORD; LPTSTR = String; function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: Boolean; dwProcessId: DWORD): HANDLE; external '[email protected] stdcall delayload'; function CloseHandle(hObject: HANDLE): BOOL; external '[email protected] stdcall delayload'; function EnumProcesses(var pProcessIds: PDWORD; cb: DWORD; var pBytesReturned: DWORD): BOOL; external '[email protected] stdcall delayload'; function EnumProcessModules(hProcess: HANDLE; var lphModule: pHMODULE; cb: DWORD; var lpcbNeeded: LPDWORD): BOOL; external '[email protected] stdcall delayload'; function GetModuleFileNameExW(hProcess: HANDLE; hModule: HMODULE; lpFilename: LPTSTR; nSize: DWORD): DWORD; external '[email protected] stdcall delayload'; function IsAppRunning(procName: String; FullPath: Boolean): Boolean; var Found, isModuleShot: Boolean; FilenameEnd: Integer; Filename: AnsiString; NA, Entry, maxEntries: DWORD; Processes: PDWORD; lpFilename: LPTSTR; hProcess: HANDLE; hMod: pHMODULE; begin SetLength(lpFilename, 255); Found := False; if (EnumProcesses(Processes, SizeOf(Processes), maxEntries)) then begin Entry := 0; maxEntries := maxEntries / SizeOf(maxEntries); while ((not Found) and (Entry < maxEntries)) do begin hProcess := OpenProcess($400 or $10, False, Processes[Entry]); if (hProcess <> 0) then begin isModuleShot := False; begin isModuleShot := EnumProcessModules(hProcess, hMod, SizeOf(hMod), NA); end; if (isModuleShot) then if (GetModuleFileNameExW(hProcess, hMod[0], lpFilename, Length(lpFilename)) > 0) then begin FilenameEnd := Pos(#0, lpFilename); Filename := Copy(Lowercase(lpFilename), 1, FilenameEnd - 1); if (not Fullpath) then Filename := ExtractFileName(Filename); if (AnsiLowercase(Filename) = AnsiLowercase(procName)) then Found := True; end; CloseHandle(hProcess); end; Entry := Entry + 1; end; end; Result := Found; end; function NextButtonClick(CurPage: Integer): Boolean; begin Result := True; if CurPage = 1 then begin case IsAppRunning('WorldOfTanks.exe', False) of True: begin MsgBox(ExpandConstant('{cm:IsAppRunningLabel}'), mbError, MB_OK); Result := False; end; False: Result := True; end; end; end; Тогда может это не твоё?
  7. function IsAppRunning(const FileName : AnsiString): Boolean; var FSWbemLocator: Variant; FWMIService : Variant; FWbemObjectSet: Variant; begin Result := False; FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator'); FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', ''); FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"', [FileName])); Result := (FWbemObjectSet.Count > 0); FWbemObjectSet := Unassigned; FWMIService := Unassigned; FSWbemLocator := Unassigned; end; function InitializeSetup(): Boolean; begin case IsAppRunning('WorldOfTanks.exe') of True: begin MsgBox(ExpandConstant('{cm:IsAppRunningLabel}'), mbError, MB_OK); Result := False; end; False: begin Result := True; end; end; end; Работает с Windows 7. Что бы не вылетал с ошибкой инсталлятор на XP и Vista нужно обвернуть это в проверку версии, а лучше запретить инсталлятор запускать на системах ниже Windows 7 (сколько можно уже?). Так же можно закинуть в NextButtonClick с проверкой на любой странице (первой). Не причастные к друг другу вещи. Ищите ошибку у себя.
  8. Скачивать XFW.ExtensionLib_2021.05.01.zip, брать в архиве файл xvmextensions.x86_32.dll, файл примера там же.
  9. Лучше используйте это: https://gitlab.com/xvm/xvm-extensions/xfw.extensionlib/-/releases
  10. В XVM можно использовать шаблоны для миникарты под названием vtypeDead, vehicleDead и nickDead из minimapLabelsTemplates.xc. Подключите их в minimapLabels.xc и minimapLabelsAlt.xc.
  11. К сборке претензий нет. Претензии к картинке в шапке.
×
×
  • Create New...