屏幕录像专家exe视频批量自动翻录成视频avi格式

时间:2024-02-17 11:22:38

笔者下载过一些视频,全部是屏幕录像专家录制的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]  屏幕录像专家没有启动