public SubjectToHook() { _module = LoadLibrary("kernel32"); _unmanagedSleep = (SleepDelegate) Marshal.GetDelegateForFunctionPointer( GetProcAddress(_module, "Sleep"), typeof(SleepDelegate)); _managed = d => { WasManagedCalled = true; return (int) d; }; }
/// <summary> /// 精确延迟,摘自网络 /// </summary> /// <param name="time"></param> private void Delay2(int time) { SleepDelegate delay = new SleepDelegate(AsyncDelay); IAsyncResult ar = delay.BeginInvoke(time, null, null); while (ar.IsCompleted == false) { Application.DoEvents(); } delay.EndInvoke(ar); }
public SubjectToHook() { _module = LoadLibrary("kernel32"); _unmanagedSleep = (SleepDelegate)Marshal.GetDelegateForFunctionPointer( GetProcAddress(_module, "Sleep"), typeof(SleepDelegate)); _managed = d => { WasManagedCalled = true; return((int)d); }; }