【问题标题】:Do not allow to start kernel32.dll Sleep function不允许启动 kernel32.dll 休眠功能
【发布时间】:2018-04-11 07:43:35
【问题描述】:

我有外部 dll (C++) 和 c# 控制台应用程序,我在其中使用

导入此 dll
[DllImport(DllFileName, CallingConvention = CallingConvention.Cdecl)]

此外部 dll 使用 kernel32.dll 休眠功能。是否有可能取消此睡眠功能或根本不允许启动它?我想象它是这样的

System.Threading.Thread.DoNotAllowSleep = true;

每当调用 Sleep 时,它只是跳过它而不中断其他代码。有没有可能实现我的需要?

【问题讨论】:

  • 请注意,“取消”Sleep(0) 可能会破坏合理的程序。 Sleep 不仅会导致延迟,还会放弃时间片。您的.DoNotAllowSleep 可能更好地描述为.BreakRandomPrograms
  • 听起来像XY Problem。你真正想要完成什么?为什么您认为您提出的解决方案将有助于实现这一目标?

标签: c# c++ winapi dll


【解决方案1】:

Windows API 拦截有多种方式,IAT 修补是最简单的一种。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多