zoukankan      html  css  js  c++  java
  • 屏幕录像专家exe视频批量自动翻录成视频avi格式

    笔者下载过一些视频,全部是屏幕录像专家录制的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}
    {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	lxsoft屏幕录像专家 共享版 V2015ls
    [2017-06-22 18:45:18 098]  class:TEdit title:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls WM_GETTEXTLENGTH:54
    [2017-06-22 18:45:18 098]  tmpDir:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls
    [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	lxsoft屏幕录像专家 共享版 V2015ls\
    [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	lxsoft屏幕录像专家 共享版 V2015ls
    [2017-06-22 18:54:19 220]  class:TEdit title:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls WM_GETTEXTLENGTH:54
    [2017-06-22 18:54:19 220]  tmpDir:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls
    [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	lxsoft屏幕录像专家 共享版 V2015ls\
    [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	lxsoft屏幕录像专家 共享版 V2015ls
    [2017-06-22 18:55:41 799]  class:TEdit title:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls WM_GETTEXTLENGTH:54
    [2017-06-22 18:55:41 800]  tmpDir:D:Program Files	lxsoft屏幕录像专家 共享版 V2015ls
    [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	lxsoft屏幕录像专家 共享版 V2015ls\
    [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]  屏幕录像专家没有启动
  • 相关阅读:
    【APUE | 10】函数signal
    【C++ Primer | 15】C++虚函数表剖析②
    【C++ Primer | 15】C++类内存分布
    VMware虚拟机 Ubuntu 16.04 安装
    主题
    【C++ Primer | 15】构造函数与拷贝控制
    08 IO库
    001 库函数【01】
    DataTable序列化及反序列化Json
    DbHelper简单的使用
  • 原文地址:https://www.cnblogs.com/passedbylove/p/7071948.html
Copyright © 2011-2022 走看看