笔者下载过一些视频,全部是屏幕录像专家录制的exe视频,这些视频没有密码,可以顺利打开看看。
有一日想把这些视频转换成wmv格式放到手机上查看。一个目录下有那么大exe视频。一个个转特别麻烦。
后来想到用windows api发送消息操作屏幕录像专家菜单来转换视频。
程序使用方法:
1 安装一个破解版的 屏幕录像专家。勾选所有 “是的,以后不再提示”
2 把下面的代码编译成exe放到exe视频当前目录或者放到屏幕录像专家上级目录也可以。
3 打开屏幕录像专家,把文件夹往编译好哦screenrecoder.exe上面拖,或者把文件夹往screenrecoder.exe上拖都可以。
他会打开时自动录制。播放结束将会生成一个视频。
ScreenRecoder.cs
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; namespace RecoderScreen { internal class Program { public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam); public delegate bool EnumChildWindowsProc(IntPtr hwnd, int lParam); private delegate bool EventHandler(Program.CtrlType sig); private enum CtrlType { CTRL_C_EVENT, CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT = 5, CTRL_SHUTDOWN_EVENT } private const int F2 = 113; private const int WM_CHAR = 258; private const int WM_SYSKEYDOWN = 260; private const int WM_SYSKEYUP = 261; private const int WM_SYSCHAR = 262; private const int WM_KEYDOWN = 256; private const int WM_KEYUP = 257; private const int WM_HOTKEY = 786; private const int WM_COMMAND = 273; private const int WM_CLOSE = 16; private const int WM_SYSCOMMAND = 274; private const int WM_GETTEXT = 13; private const int WM_GETTEXTLENGTH = 14; private const int WM_SETTEXT = 12; private const int WM_SETTINGCHANGE = 26; private const int SW_HIDE = 0; private const int SW_SHOW = 5; private static Program.EventHandler _handler; private static bool eventHandled = false; private static int elapsedTime = 0; private static Queue<string> fifo = null; [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName); [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)] public static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern int GetWindowTextLength(IntPtr hWnd); [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern int GetWindowText(IntPtr hWnd, StringBuilder strText, int maxCount); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] public static extern int SetActiveWindow(IntPtr hWnd); [DllImport("user32.dll", CharSet = CharSet.Unicode)] public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); [DllImport("user32.dll")] public static extern long EnumChildWindows(IntPtr hWndParent, Program.EnumChildWindowsProc lpEnumFunc, long lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetParent(IntPtr hWnd); [DllImport("user32.dll")] public static extern bool EnumWindows(Program.EnumWindowsProc enumProc, IntPtr lParam); [DllImport("user32.dll")] public static extern IntPtr GetMenu(IntPtr hwnd); [DllImport("user32.dll")] public static extern IntPtr GetSubMenu(IntPtr hMenu, int nPos); [DllImport("user32.dll")] public static extern IntPtr GetMenuItemID(IntPtr hMenu, int nPos); [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam); [DllImport("User32.dll", EntryPoint = "SendMessage")] public static extern int SendMessage2(IntPtr hWnd, uint Msg, IntPtr wParam, string lParam); [DllImport("User32.dll", EntryPoint = "SendMessage")] public static extern int SendMessage2(IntPtr hWnd, int Msg, IntPtr wParam, string lParam); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, StringBuilder lParam); [DllImport("user32.dll", SetLastError = true)] public static extern IntPtr SendMessage(int hWnd, int Msg, int wparam, int lparam); [DllImport("User32.dll")] public static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [DllImport("User32.dll", EntryPoint = "PostMessage")] public static extern int PostMessage2(IntPtr hWnd, int Msg, int wParam, string lParam); public static IEnumerable<IntPtr> FindWindowsWithText(string titleText) { return Program.FindWindows((IntPtr wnd, IntPtr param) => Program.GetWindowText(wnd).Contains(titleText)); } public static IEnumerable<IntPtr> FindWindows(Program.EnumWindowsProc filter) { IntPtr zero = IntPtr.Zero; List<IntPtr> windows = new List<IntPtr>(); Program.EnumWindows(delegate(IntPtr wnd, IntPtr param) { if (filter(wnd, param)) { windows.Add(wnd); } return true; }, IntPtr.Zero); return windows; } public static string GetWindowText(IntPtr hWnd) { int windowTextLength = Program.GetWindowTextLength(hWnd); string result; if (windowTextLength > 0) { StringBuilder stringBuilder = new StringBuilder(windowTextLength + 1); Program.GetWindowText(hWnd, stringBuilder, stringBuilder.Capacity); result = stringBuilder.ToString(); } else { result = string.Empty; } return result; } [DllImport("Kernel32")] private static extern bool SetConsoleCtrlHandler(Program.EventHandler handler, bool add); private static bool Handler(Program.CtrlType sig) { switch (sig) { case Program.CtrlType.CTRL_C_EVENT: case Program.CtrlType.CTRL_BREAK_EVENT: case Program.CtrlType.CTRL_CLOSE_EVENT: case (Program.CtrlType)3: case (Program.CtrlType)4: case Program.CtrlType.CTRL_LOGOFF_EVENT: case Program.CtrlType.CTRL_SHUTDOWN_EVENT: return false; } return false; } [DllImport("kernel32.dll")] private static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private static void Main(string[] args) { if (args.Length != 0) { if (File.Exists(args[0])) { Program.function(args[0]); } else if (Directory.Exists(args[0])) { string[] files = Program.getFiles(args[0]); if (files.Length != 0) { Program.fifo = new Queue<string>(files); Program.function(Program.fifo.Dequeue()); } } } } private static void function(string file) { string tmpDir = string.Empty; string orginalDir = string.Empty; string destFileName = string.Empty; if (string.IsNullOrEmpty(file)) { Console.WriteLine("请把要录制的程序拖进来"); Console.Read(); } else { orginalDir = file.Substring(0, file.LastIndexOf("\\")); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 文件名 file :{1} orginalDir:{2}", DateTime.Now, file, orginalDir)); IntPtr hwndApplication = Program.FindWindow("TMainForm", null); string windowText = Program.GetWindowText(hwndApplication); if (hwndApplication == IntPtr.Zero || !windowText.Contains("屏幕录像专家")) { Console.WriteLine("屏幕录像专家没有启动"); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 屏幕录像专家没有启动", DateTime.Now)); } else { Program.SetActiveWindow(hwndApplication); Program.SetForegroundWindow(hwndApplication); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 激活屏幕录像专家并设置为活动状态", DateTime.Now)); IntPtr consoleWindow = Program.GetConsoleWindow(); Program.ShowWindow(consoleWindow, 0); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 控制台:0x{1:X}已经隐藏!", DateTime.Now, consoleWindow.ToInt32())); IntPtr hwndParent = Program.FindWindowEx(hwndApplication, 0u, "TPageControl", null); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] TPageControl:0x{1:X}", DateTime.Now, hwndParent.ToInt32())); IntPtr hwndParent2 = Program.FindWindowEx(hwndParent, 0u, "TTabSheet", "录像模式 "); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] |-->TTabSheet[录像模式]:0x{1:X}", DateTime.Now, hwndParent2.ToInt32())); IntPtr hwndParent3 = Program.FindWindowEx(hwndParent2, 0u, "TPageControl", null); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] |---->TPageControl:0x{1:X}", DateTime.Now, hwndParent3.ToInt32())); IntPtr hWndParent = Program.FindWindowEx(hwndParent3, 0u, "TTabSheet", "基本设置"); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] |------>TTabSheet[基本设置]:0x{1:X}", DateTime.Now, hWndParent.ToInt32())); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 开始枚举TTabSheet[基本设置]子窗体", DateTime.Now)); Program.EnumChildWindows(hWndParent, delegate(IntPtr hWnd, int lParam) { StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); string windowText2 = Program.GetWindowText(hWnd); Program.GetClassName(hWnd, stringBuilder2, 50); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] class:{1} text:{2}", DateTime.Now, stringBuilder2, windowText2)); if (stringBuilder2.ToString() == "TEdit") { int num = Program.SendMessage(hWnd, 14, 0, 0); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 发送WM_GETTEXTLENGTH消息到TEdit:0x{1:X}, message: 0,0", DateTime.Now, hWnd.ToInt32())); if (num > 0) { stringBuilder = new StringBuilder(num + 1); Program.SendMessage(hWnd, 13u, stringBuilder.Capacity, stringBuilder); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 发送WM_GETTEXT消息到TEdit:0x{1:X}, message:{2}", DateTime.Now, hWnd.ToInt32(), stringBuilder)); string text = stringBuilder.ToString(); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] class:TEdit title:{1} WM_GETTEXTLENGTH:{2}", DateTime.Now, text, num)); if (text.Contains("\\")) { tmpDir = text; Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] tmpDir:{1}", DateTime.Now, tmpDir)); } if (!text.Contains("\\") && !Regex.IsMatch(text, "^\\d{1,}$")) { string[] array = file.Split(new string[] { "\\", "." }, StringSplitOptions.None); string text2 = array[array.Length - 2]; Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 删除临时文件:{1}", DateTime.Now, tmpDir + "\\" + destFileName)); if (File.Exists(tmpDir + "\\" + destFileName)) { File.Exists(tmpDir + "\\" + destFileName); } Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] destFile:{1}", DateTime.Now, text2)); destFileName = text2 + ".avi"; Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] destFileName:{1}", DateTime.Now, destFileName)); Program.SendMessage2(hWnd, 12, IntPtr.Zero, text2); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 发送WM_SETTEXT消息到TEdit:0x{1:X}, message:{2}", DateTime.Now, hWnd.ToInt32(), text2)); Program.SendMessage(hWnd, 26, 0, 0); } } } return true; }, 0L); Program.PostMessage(hwndApplication, 786, 0, 113); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] [开始录制]发送WM_HOTKEY消息到TMainForm:0x{1:X}, message:0,{2}", DateTime.Now, hwndApplication.ToInt32(), 113)); Process process = new Process(); process.StartInfo.FileName = file; process.StartInfo.CreateNoWindow = true; process.EnableRaisingEvents = true; process.Exited += delegate(object o, EventArgs e) { Program.SendMessage(hwndApplication, 786, 0, 113); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] [录制结束]发送WM_HOTKEY消息到TMainForm:0x{1:X}, message:0,{2}", DateTime.Now, hwndApplication.ToInt32(), 113)); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 删除上一次生成的文件:{1}", DateTime.Now, orginalDir + "\\" + destFileName)); if (tmpDir != orginalDir + "\\") { if (File.Exists(orginalDir + "\\" + destFileName)) { File.Delete(orginalDir + "\\" + destFileName); } File.Move(tmpDir + "\\" + destFileName, orginalDir + "\\" + destFileName); } if (Program.fifo != null && Program.fifo.Count > 0) { Program.function(Program.fifo.Dequeue()); } else { Program.eventHandled = true; } }; Program._handler = (Program.EventHandler)Delegate.Combine(Program._handler, new Program.EventHandler(delegate(Program.CtrlType sig) { Program.PostMessage(hwndApplication, 786, 0, 113); return Program.Handler(sig); })); Program.SetConsoleCtrlHandler(Program._handler, true); try { process.Start(); } catch (Exception ex) { Console.WriteLine("{0} {1}", ex.Message, ex.Data); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] error:{1}\r\n{2}", DateTime.Now, ex.Message, ex.Data)); } IntPtr value = Program.FindWindow("TPlayForm", null); if (value == IntPtr.Zero) { Console.WriteLine("录像启动失败!"); } else { Console.WriteLine("正在录制:{0}", file); Program.Log(string.Format("[{0:yyyy-MM-dd HH:mm:ss fff}] 正在录制:{1}", DateTime.Now, file)); while (!Program.eventHandled) { Program.elapsedTime += 1000; } } } } } private static void Log(string LogString) { using (StreamWriter streamWriter = new StreamWriter(Environment.CurrentDirectory + "\\log.txt", true)) { streamWriter.WriteLine(LogString); } } private static string[] getFiles(string dir) { return Directory.GetFiles(dir, "*.exe", SearchOption.TopDirectoryOnly); } } }
这是生成的一些日志
[2017-06-22 18:43:29 984] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:43:30 167] 屏幕录像专家没有启动 [2017-06-22 18:43:45 445] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:43:45 450] 屏幕录像专家没有启动 [2017-06-22 18:44:31 948] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:44:31 952] 屏幕录像专家没有启动 [2017-06-22 18:45:17 857] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:45:17 861] 激活屏幕录像专家并设置为活动状态 [2017-06-22 18:45:17 864] 控制台:0x3403FA已经隐藏! [2017-06-22 18:45:17 914] TPageControl:0x150828 [2017-06-22 18:45:17 915] |-->TTabSheet[录像模式]:0x120824 [2017-06-22 18:45:17 916] |---->TPageControl:0x1807D0 [2017-06-22 18:45:17 936] |------>TTabSheet[基本设置]:0x80802 [2017-06-22 18:45:17 937] 开始枚举TTabSheet[基本设置]子窗体 [2017-06-22 18:45:18 048] class:TRadioButton text:LXE [2017-06-22 18:45:18 049] class:TRadioButton text:WMV [2017-06-22 18:45:18 049] class:TCheckBox text:录透明窗体(光标会闪) [2017-06-22 18:45:18 049] class:TCheckBox text:录制视频 [2017-06-22 18:45:18 050] class:TRadioButton text:EXE [2017-06-22 18:45:18 050] class:TRadioButton text:AVI [2017-06-22 18:45:18 051] class:TCheckBox text:自设信息 [2017-06-22 18:45:18 051] class:TCheckBox text:直接录制生成 [2017-06-22 18:45:18 052] class:TGroupBox text:录制频率(帧率) [2017-06-22 18:45:18 052] class:TCheckBox text:帧率过大,自动停止录制 [2017-06-22 18:45:18 053] class:TCheckBox text:自动 [2017-06-22 18:45:18 053] class:TEdit text:5 [2017-06-22 18:45:18 054] 发送WM_GETTEXTLENGTH消息到TEdit:0x140788, message: 0,0 [2017-06-22 18:45:18 055] 发送WM_GETTEXT消息到TEdit:0x140788, message:5 [2017-06-22 18:45:18 055] class:TEdit title:5 WM_GETTEXTLENGTH:1 [2017-06-22 18:45:18 095] class:TCheckBox text:同时录制光标 [2017-06-22 18:45:18 096] class:TCheckBox text:同时录制声音 [2017-06-22 18:45:18 096] class:TEdit text: [2017-06-22 18:45:18 097] 发送WM_GETTEXTLENGTH消息到TEdit:0xB02AE, message: 0,0 [2017-06-22 18:45:18 098] 发送WM_GETTEXT消息到TEdit:0xB02AE, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:45:18 098] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:54 [2017-06-22 18:45:18 098] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:45:18 099] class:TEdit text: [2017-06-22 18:45:18 099] 发送WM_GETTEXTLENGTH消息到TEdit:0x1E009C, message: 0,0 [2017-06-22 18:45:18 100] 发送WM_GETTEXT消息到TEdit:0x1E009C, message:录像1 [2017-06-22 18:45:18 100] class:TEdit title:录像1 WM_GETTEXTLENGTH:5 [2017-06-22 18:45:18 136] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\ [2017-06-22 18:45:18 136] destFile:21b [2017-06-22 18:45:18 137] destFileName:21b.avi [2017-06-22 18:45:18 137] 发送WM_SETTEXT消息到TEdit:0x1E009C, message:21b [2017-06-22 18:45:18 138] [开始录制]发送WM_HOTKEY消息到TMainForm:0x1205D4, message:0,113 [2017-06-22 18:45:18 562] 正在录制:E:\21b.exe [2017-06-22 18:45:25 341] [录制结束]发送WM_HOTKEY消息到TMainForm:0x1205D4, message:0,113 [2017-06-22 18:45:25 341] 删除上一次生成的文件:E:\21b.avi [2017-06-22 18:54:19 182] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:54:19 185] 激活屏幕录像专家并设置为活动状态 [2017-06-22 18:54:19 198] 控制台:0xB0904已经隐藏! [2017-06-22 18:54:19 199] TPageControl:0xA0892 [2017-06-22 18:54:19 200] |-->TTabSheet[录像模式]:0x60938 [2017-06-22 18:54:19 200] |---->TPageControl:0x28079E [2017-06-22 18:54:19 200] |------>TTabSheet[基本设置]:0x40956 [2017-06-22 18:54:19 200] 开始枚举TTabSheet[基本设置]子窗体 [2017-06-22 18:54:19 203] class:TRadioButton text:LXE [2017-06-22 18:54:19 203] class:TRadioButton text:WMV [2017-06-22 18:54:19 204] class:TCheckBox text:录透明窗体(光标会闪) [2017-06-22 18:54:19 205] class:TCheckBox text:录制视频 [2017-06-22 18:54:19 205] class:TRadioButton text:EXE [2017-06-22 18:54:19 205] class:TRadioButton text:AVI [2017-06-22 18:54:19 206] class:TCheckBox text:自设信息 [2017-06-22 18:54:19 206] class:TCheckBox text:直接录制生成 [2017-06-22 18:54:19 206] class:TGroupBox text:录制频率(帧率) [2017-06-22 18:54:19 207] class:TCheckBox text:帧率过大,自动停止录制 [2017-06-22 18:54:19 207] class:TCheckBox text:自动 [2017-06-22 18:54:19 207] class:TEdit text:5 [2017-06-22 18:54:19 208] 发送WM_GETTEXTLENGTH消息到TEdit:0x7602F4, message: 0,0 [2017-06-22 18:54:19 212] 发送WM_GETTEXT消息到TEdit:0x7602F4, message:5 [2017-06-22 18:54:19 213] class:TEdit title:5 WM_GETTEXTLENGTH:1 [2017-06-22 18:54:19 214] class:TCheckBox text:同时录制光标 [2017-06-22 18:54:19 214] class:TCheckBox text:同时录制声音 [2017-06-22 18:54:19 214] class:TEdit text: [2017-06-22 18:54:19 215] 发送WM_GETTEXTLENGTH消息到TEdit:0x1A078C, message: 0,0 [2017-06-22 18:54:19 219] 发送WM_GETTEXT消息到TEdit:0x1A078C, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:54:19 220] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:54 [2017-06-22 18:54:19 220] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:54:19 220] class:TEdit text: [2017-06-22 18:54:19 221] 发送WM_GETTEXTLENGTH消息到TEdit:0x40958, message: 0,0 [2017-06-22 18:54:19 222] 发送WM_GETTEXT消息到TEdit:0x40958, message:录像1 [2017-06-22 18:54:19 223] class:TEdit title:录像1 WM_GETTEXTLENGTH:5 [2017-06-22 18:54:19 223] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\ [2017-06-22 18:54:19 223] destFile:21b [2017-06-22 18:54:19 224] destFileName:21b.avi [2017-06-22 18:54:19 224] 发送WM_SETTEXT消息到TEdit:0x40958, message:21b [2017-06-22 18:54:19 224] [开始录制]发送WM_HOTKEY消息到TMainForm:0x30032A, message:0,113 [2017-06-22 18:54:19 373] 正在录制:E:\21b.exe [2017-06-22 18:54:45 420] [录制结束]发送WM_HOTKEY消息到TMainForm:0x30032A, message:0,113 [2017-06-22 18:54:45 421] 删除上一次生成的文件:E:\21b.avi [2017-06-22 18:55:41 722] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-22 18:55:41 726] 激活屏幕录像专家并设置为活动状态 [2017-06-22 18:55:41 730] 控制台:0x1905D4已经隐藏! [2017-06-22 18:55:41 730] TPageControl:0x31032A [2017-06-22 18:55:41 731] |-->TTabSheet[录像模式]:0x5094E [2017-06-22 18:55:41 731] |---->TPageControl:0x50952 [2017-06-22 18:55:41 731] |------>TTabSheet[基本设置]:0xD0774 [2017-06-22 18:55:41 731] 开始枚举TTabSheet[基本设置]子窗体 [2017-06-22 18:55:41 734] class:TRadioButton text:LXE [2017-06-22 18:55:41 734] class:TRadioButton text:WMV [2017-06-22 18:55:41 735] class:TCheckBox text:录透明窗体(光标会闪) [2017-06-22 18:55:41 735] class:TCheckBox text:录制视频 [2017-06-22 18:55:41 735] class:TRadioButton text:EXE [2017-06-22 18:55:41 792] class:TRadioButton text:AVI [2017-06-22 18:55:41 793] class:TCheckBox text:自设信息 [2017-06-22 18:55:41 793] class:TCheckBox text:直接录制生成 [2017-06-22 18:55:41 794] class:TGroupBox text:录制频率(帧率) [2017-06-22 18:55:41 794] class:TCheckBox text:帧率过大,自动停止录制 [2017-06-22 18:55:41 794] class:TCheckBox text:自动 [2017-06-22 18:55:41 795] class:TEdit text:5 [2017-06-22 18:55:41 795] 发送WM_GETTEXTLENGTH消息到TEdit:0x1905D2, message: 0,0 [2017-06-22 18:55:41 796] 发送WM_GETTEXT消息到TEdit:0x1905D2, message:5 [2017-06-22 18:55:41 796] class:TEdit title:5 WM_GETTEXTLENGTH:1 [2017-06-22 18:55:41 797] class:TCheckBox text:同时录制光标 [2017-06-22 18:55:41 798] class:TCheckBox text:同时录制声音 [2017-06-22 18:55:41 798] class:TEdit text: [2017-06-22 18:55:41 798] 发送WM_GETTEXTLENGTH消息到TEdit:0xD08AE, message: 0,0 [2017-06-22 18:55:41 799] 发送WM_GETTEXT消息到TEdit:0xD08AE, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:55:41 799] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:54 [2017-06-22 18:55:41 800] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ [2017-06-22 18:55:41 800] class:TEdit text: [2017-06-22 18:55:41 800] 发送WM_GETTEXTLENGTH消息到TEdit:0xE07E0, message: 0,0 [2017-06-22 18:55:41 801] 发送WM_GETTEXT消息到TEdit:0xE07E0, message:录像1 [2017-06-22 18:55:41 801] class:TEdit title:录像1 WM_GETTEXTLENGTH:5 [2017-06-22 18:55:41 802] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\ [2017-06-22 18:55:41 802] destFile:21b [2017-06-22 18:55:41 802] destFileName:21b.avi [2017-06-22 18:55:41 803] 发送WM_SETTEXT消息到TEdit:0xE07E0, message:21b [2017-06-22 18:55:41 804] [开始录制]发送WM_HOTKEY消息到TMainForm:0x50946, message:0,113 [2017-06-22 18:55:42 034] 正在录制:E:\21b.exe [2017-06-22 18:58:14 397] [录制结束]发送WM_HOTKEY消息到TMainForm:0x50946, message:0,113 [2017-06-22 18:58:14 397] 删除上一次生成的文件:E:\21b.avi [2017-06-23 22:49:59 200] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-23 22:50:01 197] 屏幕录像专家没有启动 [2017-06-23 22:51:56 512] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-23 22:51:56 518] 屏幕录像专家没有启动 [2017-06-23 23:00:48 900] 文件名 file :E:\21b.exe orginalDir:E: [2017-06-23 23:00:49 559] 屏幕录像专家没有启动