64,642
社区成员
发帖
与我相关
我的任务
分享
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Au" F:\ffmpeg\call_record_3.mp3
UINT nRetCmd = WinExec(cmd.c_str(),SW_SHOW);
代码加颜色效果出不来啊UINT nRetCmd = WinExec(cmd.c_str(),SW_SHOW);
难得在程序里调用其他的exe 发送的按键都需要加上 Alt ?
不管怎样,问题解决了,谢谢各位的思路.::PostMessage(hWndFFMPEG,WM_SYSKEYDOWN,0x71,1<<29);//发送Alt+q 0x71
DWORD pid =getProcessIdFromName(_T("ffmpeg.exe"));
if (0 != pid)
{
HWND hWndFFMPEG = GetWindowHwndByPorcessID(pid);
if (NULL != hWndFFMPEG)
{
//方法1
//::PostMessage(hWndFFMPEG, WM_KEYDOWN, 'q', 1); //按下
//::PostMessage(hWndFFMPEG,WM_KEYUP, 'q', 1); //释放
//方法2
//::PostMessage(hWndFFMPEG,WM_CHAR,'q',NULL);//发送按键消息
//方法3
//把窗口放到前台接收输入
::SetForegroundWindow(hWndFFMPEG);
//键盘事件
INPUT ip;
ip.type=INPUT_KEYBOARD;
ip.ki.wScan=0;
ip.ki.time=0;
ip.ki.dwExtraInfo=0;
//按下 q 0x71 a 0x41
ip.ki.wVk=0x71;
ip.ki.dwFlags=0;
::SendInput(1,&ip,sizeof(INPUT));
//抬起
ip.ki.dwFlags=KEYEVENTF_KEYUP;
::SendInput(1,&ip,sizeof(INPUT));
}
}
IPC问题还没找到更简单的方法,一般用双匿名管道,也就是9楼的办法!