我最近获得了WinX DVD Ripper Platinum的许可证,并且很担心这个事实,当它完成撕毁DVD的时候,它并没有告诉我这么做。 没有popup窗口,没有系统“嘟嘟” – 什么也没有。 进度对话框简单地closures。 主窗口甚至不关注自己…
为了加快我的DVD翻录过程,我做了一个简单的控制台应用程序(使用C#和VS2010):
GetChildWindows
方法在该进程中查找进度对话框的句柄 System.Timers.Timer
实例,该实例检查(或应该检查)进度对话框是否每5秒closures一次(使用GetWindowLong
函数 , System.Console.Beep
方法发出几声嘟嘟声,告诉用户rip已完成。 定时器会自动复位,每5秒钟执行一次检查(或者在对话框closures的情况下重复发出嘟嘟声),直到用户按下控制台窗口中的某个键。 步骤1,2和4工作正常,但我有步骤3这个问题,我的问题是,我应该使用哪个窗口样式常量来检查窗口是否可见? (WS_VISIBLE没有工作…)
有关更多详细信息,这是我用来检查对话框的可见性的函数:
private static bool IsWindowVisible(IntPtr hwnd) { var style = GetWindowLong(hwnd, GWL.GWL_EXSTYLE); var visible = style & (WS flag goes here); return visible != 0; }
你尝试过使用IsWindowVisible()来代替吗?