我最近获得了WinX DVD Ripper Platinum的许可证,我很恼火的是,当它翻录DVD时,它并没有告诉我。没有弹出窗口,没有系统“嘟嘟” - 没什么。进度对话框只是关闭。主窗口甚至没有集中注意力......
为了加快我的DVD翻录过程,我正在制作一个简单的控制台应用程序(使用C#和VS2010):
GetChildWindows
方法查找该流程的进度对话框的句柄
System.Timers.Timer
实例,检查(或应该检查)进度对话框是否每5秒关闭一次(使用the GetWindowLong
function和System.Console.Beep
方法发出几声嘟嘟声,告诉用户rip已完成。定时器自动复位,每隔5秒执行一次检查(如果对话框已关闭则重复发出蜂鸣声),直到用户按下控制台窗口中的某个键为止。第1步,第2步和第4步工作正常,但我遇到第3步的问题,我的问题是,我应该使用哪个window style constants来检查窗口是否可见? (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;
}