我想從一個特定的進程運行QueryPerformanceCounter()函數,並獲得它的返回值給我的C#應用程序。由於這兩個過程(我的應用程序和我試圖影響的應用程序)是不同的,我應該遵循什麼樣的策略?獲取另一個進程'QueryPerformanceCounter()
0
A
回答
1
QueryPerformanceCounter
跨計算機上的所有進程同步。你可以在本地調用它。這與其他流程會收到的價值相同。
更新:好的,你是在防範騙子。如果他們掛鉤了你的流程,那麼他們也會鉤住你的子流程,所以產生一個幫助程序並沒有什麼幫助。
你可以做的一件事是關聯多個定時器。例如,
QueryPerformanceCounter(&liStart);
dwStart = GetTickCount();
GetSystemTimeAsFileTime(&ftStart);
Sleep(1000);
QueryPerformanceCounter(&liStop);
dwStop = GetTickCount();
GetSystemTimeAsFileTime(&ftStop);
所有四個定時器(QPC,GetTickCount
,GetSystemTimeAsFileTime
,並Sleep
)應該測量誤差內同意。
您可以做的另一件事是與外部來源相關聯。例如,您可以編寫一個函數,通過創建一個文件然後詢問文件創建時間來從文件系統獲取時間。將其與其他四個計時器相關聯。其他外部來源是聲音和視頻硬件。例如,您可以播放1秒的聲音剪輯並查看需要多長時間。或者等待垂直空白並查看它是否與顯示器刷新率相匹配。
+1
這個程序,作弊引擎(我一直用來改變我的進程速度)只改變了單一進程的速度。當我用它改變我自己的應用程序的速度時,我可以看到QueryPerformanceCounter的改變,但是當我爲另一個進程執行時,我看不到改變。所以,我需要在另一個進程中運行QueryPerformanceCounter(),並獲得它的返回值給我自己的應用程序。 –
相關問題
- 1. 從另一個進程獲取信息
- 2. QueryPerformanceCounter在後臺進程
- 3. 如何獲取一個進程在Bash中的另一個進程的PID?
- 4. 在另一個進程中獲取線程的EBP
- 5. 獲取另一個進程的程序/函數地址
- 6. linux:以編程方式獲取另一個進程的父進程?
- 7. 獲取Linux內核中另一個進程的進程CPU時間時鐘
- 8. C#獲取另一個進程的工作目錄
- 9. 爲另一個.NET框架進程獲取AppDomain
- 10. 在C++中獲取另一個進程的會話ID
- 11. 使用C從另一個進程獲取控件#
- 12. C#,C++,WinAPI - 從另一個進程獲取窗口數
- 13. 獲取Windows中另一個進程的命令行參數
- 14. 在另一個進程中從SysHeader32控件獲取列名
- 15. 打開一個進程,獲取輸出,然後打開另一個進程並獲得輸出
- 16. 從x64進程獲得另一個進程的32位PEB
- 17. 獲取一個進程終止
- 18. 獲取從一個程序到另一個程序的變量
- 19. 一個進程寫入,另一個進程讀取共享內存
- 20. `mlockall`到另一個進程
- 21. 拖入另一個進程
- 22. 從另一個進程
- 23. 從Windows另一個進程
- 24. PostThreadMessage到另一個進程
- 25. 搜索另一個進程
- 26. 獲取DateTimeOffset另一個DateTimeOffset
- 27. 獲取從另一個表
- 28. 獲取另一個陣列
- 29. 我如何從另一個線程或進程中獲取數據(Android/Java)
- 30. 使用'command slinging'獲取Groovy中另一個程序的進程ID
你是什麼意思「我試圖影響的應用程序」? QueryPerformanceCounter不會修改該進程。 –
我正試圖在一個進程中檢測速度調試嘗試。有一些黑客程序(即作弊引擎)會改變特定進程的速度。因此,我需要在另一個進程中運行此函數,並將其返回值傳遞給我自己的進程以檢查值。 –