mirror of
https://github.com/tiennm99/time-mocker.git
synced 2026-10-14 20:17:49 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2329b68c9 | ||
|
|
0dc883eb6d | ||
|
|
e94c4c70e6 |
No files matched your search
Vendored
+10
-13
@@ -3,35 +3,32 @@ name: Create Draft Release
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- 'v*'
|
- "v*"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-release:
|
build-and-release:
|
||||||
runs-on: windows-latest
|
runs-on: windows-2019
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Setup .NET
|
- name: Setup MSBuild
|
||||||
uses: actions/setup-dotnet@v4
|
uses: microsoft/setup-msbuild@v2
|
||||||
with:
|
|
||||||
dotnet-version: 8.x
|
|
||||||
|
|
||||||
- name: Build Solution
|
- name: Build Solution
|
||||||
run: dotnet build TimeMocker.sln -c Release -p:Platform=x64
|
run: msbuild TimeMocker.sln -p:Configuration=Release -p:Platform=x64 -m
|
||||||
|
|
||||||
- name: Prepare Release Artifacts
|
- name: Prepare Release Artifacts
|
||||||
run: |
|
run: |
|
||||||
mkdir release
|
mkdir release
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\TimeMocker.exe release\
|
# Copy all DLLs from the build output
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\TimeMocker.Hook.x64.dll release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.dll release\
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\TimeMocker.Hook.x86.dll release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.exe release\
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\EasyHook.dll release\
|
copy TimeMocker.UI\bin\x64\Release\net48\*.config release\
|
||||||
copy TimeMocker.UI\bin\x64\Release\net48\System.Text.Json.dll release\
|
|
||||||
|
|
||||||
- name: Zip Release
|
- name: Zip Release
|
||||||
run: Compress-Archive -Path release\* -DestinationPath TimeMocker-x64.zip
|
run: Compress-Archive -Path release\* -DestinationPath TimeMocker-x64.zip
|
||||||
|
|||||||
@@ -65,23 +65,29 @@ namespace TimeMocker.Hook
|
|||||||
|
|
||||||
public void Run(RemoteHooking.IContext context, string mmfName)
|
public void Run(RemoteHooking.IContext context, string mmfName)
|
||||||
{
|
{
|
||||||
|
string logPath = Path.Combine(Path.GetTempPath(), "TimeMocker.Hook.log");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
File.AppendAllText(logPath, $"[{DateTime.Now}] Starting hook, MMF: {mmfName}\r\n");
|
||||||
|
|
||||||
// Open the shared memory created by the UI process
|
// Open the shared memory created by the UI process
|
||||||
_mmf = System.IO.MemoryMappedFiles.MemoryMappedFile.OpenExisting(mmfName);
|
_mmf = System.IO.MemoryMappedFiles.MemoryMappedFile.OpenExisting(mmfName);
|
||||||
_view = _mmf.CreateViewAccessor(0, Marshal.SizeOf<MockTimeInfo>());
|
_view = _mmf.CreateViewAccessor(0, Marshal.SizeOf<MockTimeInfo>());
|
||||||
|
File.AppendAllText(logPath, $"[{DateTime.Now}] MMF opened successfully\r\n");
|
||||||
|
|
||||||
InstallHooks();
|
InstallHooks();
|
||||||
|
File.AppendAllText(logPath, $"[{DateTime.Now}] Hooks installed successfully\r\n");
|
||||||
|
|
||||||
RemoteHooking.WakeUpProcess();
|
RemoteHooking.WakeUpProcess();
|
||||||
|
File.AppendAllText(logPath, $"[{DateTime.Now}] Process woken up\r\n");
|
||||||
|
|
||||||
// Keep alive until process exits
|
// Keep alive until process exits
|
||||||
while (true) Thread.Sleep(500);
|
while (true) Thread.Sleep(500);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
File.AppendAllText(
|
File.AppendAllText(logPath, $"[{DateTime.Now}] ERROR: {ex.GetType().Name}: {ex.Message}\r\n{ex.StackTrace}\r\n");
|
||||||
Path.Combine(Path.GetTempPath(), "TimeMocker.Hook.log"),
|
|
||||||
$"[{DateTime.Now}] ERROR: {ex}\r\n");
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user