mirror of
https://github.com/tiennm99/time-mocker.git
synced 2026-10-14 12:17:11 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c71d84861 | ||
|
|
a9a76fb541 |
No files matched your search
Vendored
+17
-3
@@ -21,13 +21,27 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
dotnet-version: 10.x
|
dotnet-version: 10.x
|
||||||
|
|
||||||
- name: Build Solution
|
- name: Build Hook DLL (x86)
|
||||||
run: dotnet build TimeMocker.sln -c Release -p:Platform=x64
|
run: dotnet build TimeMocker.Hook\TimeMocker.Hook.csproj -c Release -p:Platform=x86
|
||||||
|
|
||||||
|
- name: Build Hook DLL (x64)
|
||||||
|
run: dotnet build TimeMocker.Hook\TimeMocker.Hook.csproj -c Release -p:Platform=x64
|
||||||
|
|
||||||
|
- name: Build UI
|
||||||
|
run: dotnet build TimeMocker.UI\TimeMocker.UI.csproj -c Release -p:Platform=x64
|
||||||
|
|
||||||
|
- name: Verify Hook DLL sizes
|
||||||
|
run: |
|
||||||
|
$x64 = (Get-Item "TimeMocker.Hook\bin\x64\Release\net48\TimeMocker.Hook.dll").Length
|
||||||
|
$x86 = (Get-Item "TimeMocker.Hook\bin\x86\Release\net48\TimeMocker.Hook.dll").Length
|
||||||
|
Write-Host "x64 hook DLL: $x64 bytes"
|
||||||
|
Write-Host "x86 hook DLL: $x86 bytes"
|
||||||
|
if ($x64 -lt 20000) { throw "x64 hook DLL too small - build failed silently" }
|
||||||
|
if ($x86 -lt 20000) { throw "x86 hook DLL too small - build failed silently" }
|
||||||
|
|
||||||
- name: Prepare Release Artifacts
|
- name: Prepare Release Artifacts
|
||||||
run: |
|
run: |
|
||||||
mkdir release
|
mkdir release
|
||||||
# Copy all DLLs from the build output
|
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\*.dll release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.dll release\
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\*.exe release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.exe release\
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\*.config release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.config release\
|
||||||
|
|||||||
@@ -95,17 +95,28 @@ namespace TimeMocker.UI.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern bool IsWow64Process2(
|
||||||
|
IntPtr hProcess,
|
||||||
|
out ushort pProcessMachine,
|
||||||
|
out ushort pNativeMachine);
|
||||||
|
|
||||||
private static bool Is64BitProcess(Process process)
|
private static bool Is64BitProcess(Process process)
|
||||||
{
|
{
|
||||||
if (!Environment.Is64BitOperatingSystem)
|
if (!Environment.Is64BitOperatingSystem)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool isWow64;
|
ushort processMachine, nativeMachine;
|
||||||
if (!IsWow64Process(process.Handle, out isWow64))
|
if (IsWow64Process2(process.Handle, out processMachine, out nativeMachine))
|
||||||
return false;
|
{
|
||||||
|
// IMAGE_FILE_MACHINE_UNKNOWN (0) means it's a native 64-bit process
|
||||||
|
// IMAGE_FILE_MACHINE_I386 (0x014c) means it's 32-bit on 64-bit Windows
|
||||||
|
return processMachine == 0x0000; // 0 = native, not emulated
|
||||||
|
}
|
||||||
|
|
||||||
// If IsWow64Process returns false, it's a 64-bit process
|
// Fallback
|
||||||
// If it returns true, it's a 32-bit process running on 64-bit Windows
|
bool isWow64;
|
||||||
|
IsWow64Process(process.Handle, out isWow64);
|
||||||
return !isWow64;
|
return !isWow64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user