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

时间:2023-03-08 21:52:00

笔者下载过一些视频,全部是屏幕录像专家录制的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 = ,
CTRL_SHUTDOWN_EVENT
} private const int F2 = ; private const int WM_CHAR = ; private const int WM_SYSKEYDOWN = ; private const int WM_SYSKEYUP = ; private const int WM_SYSCHAR = ; private const int WM_KEYDOWN = ; private const int WM_KEYUP = ; private const int WM_HOTKEY = ; private const int WM_COMMAND = ; private const int WM_CLOSE = ; private const int WM_SYSCOMMAND = ; private const int WM_GETTEXT = ; private const int WM_GETTEXTLENGTH = ; private const int WM_SETTEXT = ; private const int WM_SETTINGCHANGE = ; private const int SW_HIDE = ; private const int SW_SHOW = ; private static Program.EventHandler _handler; private static bool eventHandled = false; private static int elapsedTime = ; 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 > )
{
StringBuilder stringBuilder = new StringBuilder(windowTextLength + );
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):
case (Program.CtrlType):
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 != )
{
if (File.Exists(args[]))
{
Program.function(args[]);
}
else if (Directory.Exists(args[]))
{
string[] files = Program.getFiles(args[]);
if (files.Length != )
{
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(, 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, );
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, );
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, , , );
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 > )
{
stringBuilder = new StringBuilder(num + );
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 - ];
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, , 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, , , );
}
}
}
return true;
}, 0L);
Program.PostMessage(hwndApplication, , , );
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(), ));
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, , , );
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(), ));
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 > )
{
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, , , );
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 += ;
}
}
}
}
} 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);
}
}
}

这是生成的一些日志

[-- :: ]  文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 激活屏幕录像专家并设置为活动状态
[-- :: ] 控制台:0x3403FA已经隐藏!
[-- :: ] TPageControl:0x150828
[-- :: ] |-->TTabSheet[录像模式]:0x120824
[-- :: ] |---->TPageControl:0x1807D0
[-- :: ] |------>TTabSheet[基本设置]:0x80802
[-- :: ] 开始枚举TTabSheet[基本设置]子窗体
[-- :: ] class:TRadioButton text:LXE
[-- :: ] class:TRadioButton text:WMV
[-- :: ] class:TCheckBox text:录透明窗体(光标会闪)
[-- :: ] class:TCheckBox text:录制视频
[-- :: ] class:TRadioButton text:EXE
[-- :: ] class:TRadioButton text:AVI
[-- :: ] class:TCheckBox text:自设信息
[-- :: ] class:TCheckBox text:直接录制生成
[-- :: ] class:TGroupBox text:录制频率(帧率)
[-- :: ] class:TCheckBox text:帧率过大,自动停止录制
[-- :: ] class:TCheckBox text:自动
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x140788, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x140788, message:
[-- :: ] class:TEdit title: WM_GETTEXTLENGTH:
[-- :: ] class:TCheckBox text:同时录制光标
[-- :: ] class:TCheckBox text:同时录制声音
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0xB02AE, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0xB02AE, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:
[-- :: ] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x1E009C, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x1E009C, message:录像1
[-- :: ] class:TEdit title:录像1 WM_GETTEXTLENGTH:
[-- :: ] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\
[-- :: ] destFile:21b
[-- :: ] destFileName:21b.avi
[-- :: ] 发送WM_SETTEXT消息到TEdit:0x1E009C, message:21b
[-- :: ] [开始录制]发送WM_HOTKEY消息到TMainForm:0x1205D4, message:,
[-- :: ] 正在录制:E:\21b.exe
[-- :: ] [录制结束]发送WM_HOTKEY消息到TMainForm:0x1205D4, message:,
[-- :: ] 删除上一次生成的文件:E:\21b.avi
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 激活屏幕录像专家并设置为活动状态
[-- :: ] 控制台:0xB0904已经隐藏!
[-- :: ] TPageControl:0xA0892
[-- :: ] |-->TTabSheet[录像模式]:0x60938
[-- :: ] |---->TPageControl:0x28079E
[-- :: ] |------>TTabSheet[基本设置]:0x40956
[-- :: ] 开始枚举TTabSheet[基本设置]子窗体
[-- :: ] class:TRadioButton text:LXE
[-- :: ] class:TRadioButton text:WMV
[-- :: ] class:TCheckBox text:录透明窗体(光标会闪)
[-- :: ] class:TCheckBox text:录制视频
[-- :: ] class:TRadioButton text:EXE
[-- :: ] class:TRadioButton text:AVI
[-- :: ] class:TCheckBox text:自设信息
[-- :: ] class:TCheckBox text:直接录制生成
[-- :: ] class:TGroupBox text:录制频率(帧率)
[-- :: ] class:TCheckBox text:帧率过大,自动停止录制
[-- :: ] class:TCheckBox text:自动
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x7602F4, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x7602F4, message:
[-- :: ] class:TEdit title: WM_GETTEXTLENGTH:
[-- :: ] class:TCheckBox text:同时录制光标
[-- :: ] class:TCheckBox text:同时录制声音
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x1A078C, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x1A078C, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:
[-- :: ] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x40958, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x40958, message:录像1
[-- :: ] class:TEdit title:录像1 WM_GETTEXTLENGTH:
[-- :: ] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\
[-- :: ] destFile:21b
[-- :: ] destFileName:21b.avi
[-- :: ] 发送WM_SETTEXT消息到TEdit:0x40958, message:21b
[-- :: ] [开始录制]发送WM_HOTKEY消息到TMainForm:0x30032A, message:,
[-- :: ] 正在录制:E:\21b.exe
[-- :: ] [录制结束]发送WM_HOTKEY消息到TMainForm:0x30032A, message:,
[-- :: ] 删除上一次生成的文件:E:\21b.avi
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 激活屏幕录像专家并设置为活动状态
[-- :: ] 控制台:0x1905D4已经隐藏!
[-- :: ] TPageControl:0x31032A
[-- :: ] |-->TTabSheet[录像模式]:0x5094E
[-- :: ] |---->TPageControl:0x50952
[-- :: ] |------>TTabSheet[基本设置]:0xD0774
[-- :: ] 开始枚举TTabSheet[基本设置]子窗体
[-- :: ] class:TRadioButton text:LXE
[-- :: ] class:TRadioButton text:WMV
[-- :: ] class:TCheckBox text:录透明窗体(光标会闪)
[-- :: ] class:TCheckBox text:录制视频
[-- :: ] class:TRadioButton text:EXE
[-- :: ] class:TRadioButton text:AVI
[-- :: ] class:TCheckBox text:自设信息
[-- :: ] class:TCheckBox text:直接录制生成
[-- :: ] class:TGroupBox text:录制频率(帧率)
[-- :: ] class:TCheckBox text:帧率过大,自动停止录制
[-- :: ] class:TCheckBox text:自动
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0x1905D2, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0x1905D2, message:
[-- :: ] class:TEdit title: WM_GETTEXTLENGTH:
[-- :: ] class:TCheckBox text:同时录制光标
[-- :: ] class:TCheckBox text:同时录制声音
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0xD08AE, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0xD08AE, message:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit title:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\ WM_GETTEXTLENGTH:
[-- :: ] tmpDir:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\
[-- :: ] class:TEdit text:
[-- :: ] 发送WM_GETTEXTLENGTH消息到TEdit:0xE07E0, message: ,
[-- :: ] 发送WM_GETTEXT消息到TEdit:0xE07E0, message:录像1
[-- :: ] class:TEdit title:录像1 WM_GETTEXTLENGTH:
[-- :: ] 删除临时文件:D:\Program Files\tlxsoft\屏幕录像专家 共享版 V2015\ls\\
[-- :: ] destFile:21b
[-- :: ] destFileName:21b.avi
[-- :: ] 发送WM_SETTEXT消息到TEdit:0xE07E0, message:21b
[-- :: ] [开始录制]发送WM_HOTKEY消息到TMainForm:0x50946, message:,
[-- :: ] 正在录制:E:\21b.exe
[-- :: ] [录制结束]发送WM_HOTKEY消息到TMainForm:0x50946, message:,
[-- :: ] 删除上一次生成的文件:E:\21b.avi
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动
[-- :: ] 文件名 file :E:\21b.exe orginalDir:E:
[-- :: ] 屏幕录像专家没有启动