用 cmd line 執行 MFC 後的訊息顯示,该怎么解决
用 cmd line 執行 MFC 後的訊息顯示
目前我有寫了一個 MFC 的程式,並經由 cmd line 呼叫
而且在程式執行失敗時,可以顯示訊息到 cmd 當下的視窗中
但是顯示的訊息位置是在下一個命令列的最後面…
我希望是先顯示完訊息後再出現命令列
於 cmd 底下執行
----------------------------------------------------------------------
C:\>MFC.exe
程式執行失敗 <-在 C:\> 之前顯示,這樣是我想要的
C:\>
----------------------------------------------------------------------
C:\>MFC.exe
C:\>程式執行失敗 <-在 C:\> 之後才顯示,這是目前希望解決樣子
----------------------------------------------------------------------
cmd line 執行 MFC 的部分我是使用下面的方法來接收參數
CString strCommandLine(GetCommandLine());
CommandLineToArgvW(CString(GetCommandLine()), &nArgCount);
讓訊息顯示在原 cmd 視窗上有試過兩種方法
第一種是
AttachConsole(ATTACH_PARENT_PROCESS); //直接取得當下 process
_cprintf("程式執行失敗");
另一種方法是下面這個網址的做法
http://blog.****.net/panchunrong/article/details/8930603
來顯示訊息
上述方法都可以將訊息顯示在當下的 cmd 視窗
可是都沒辦法達成我想要的顯示方式…
有想過把 C:\> 覆蓋掉(如下)
_cwprintf(L"\r程式執行失敗%68s\n", L"");
-------------顯示狀況---------
C:\>MFC.exe
程式執行失敗
-----------------------------------
可是要再多按一次 Enter 才能再顯示出 C:\>
如果有方法可以不需要多按一次 Enter 就能顯示出 C:\> 的話也可以
也有想過再加上 system("CD");
可是會變成
------------------------------
C:\>MFC.exe
程式執行失敗
C:\
_ <- 少了'>'符號,且多換了一行
------------------------------
想知道有沒有辦法能夠達成我想要的顯示方式?
還請各位高手幫忙解答了,謝謝。
------解决思路----------------------
console屏幕处理例子程序。终端窗口屏幕处理相关API使用例子。来自MSVC20\SAMPLES\win32\console\ http://download.****.net/detail/zhao4zhong1/3461309
------解决思路----------------------
注入进程这个,可能一下两下讲不清楚了,详细的系统的,可以看《WINDOWS核心编程》,简单的就是以“进程注入”为关键字进行搜索找点别人整理的网文来学习一下。
至于发送消息就简单了,不过CMD的话发送消息可能比较麻烦,可以考虑激活并置顶CMD窗口,然后使用keybd_event。
目前我有寫了一個 MFC 的程式,並經由 cmd line 呼叫
而且在程式執行失敗時,可以顯示訊息到 cmd 當下的視窗中
但是顯示的訊息位置是在下一個命令列的最後面…
我希望是先顯示完訊息後再出現命令列
於 cmd 底下執行
----------------------------------------------------------------------
C:\>MFC.exe
程式執行失敗 <-在 C:\> 之前顯示,這樣是我想要的
C:\>
----------------------------------------------------------------------
C:\>MFC.exe
C:\>程式執行失敗 <-在 C:\> 之後才顯示,這是目前希望解決樣子
----------------------------------------------------------------------
cmd line 執行 MFC 的部分我是使用下面的方法來接收參數
CString strCommandLine(GetCommandLine());
CommandLineToArgvW(CString(GetCommandLine()), &nArgCount);
讓訊息顯示在原 cmd 視窗上有試過兩種方法
第一種是
AttachConsole(ATTACH_PARENT_PROCESS); //直接取得當下 process
_cprintf("程式執行失敗");
另一種方法是下面這個網址的做法
http://blog.****.net/panchunrong/article/details/8930603
來顯示訊息
上述方法都可以將訊息顯示在當下的 cmd 視窗
可是都沒辦法達成我想要的顯示方式…
有想過把 C:\> 覆蓋掉(如下)
_cwprintf(L"\r程式執行失敗%68s\n", L"");
-------------顯示狀況---------
C:\>MFC.exe
程式執行失敗
-----------------------------------
可是要再多按一次 Enter 才能再顯示出 C:\>
如果有方法可以不需要多按一次 Enter 就能顯示出 C:\> 的話也可以
也有想過再加上 system("CD");
可是會變成
------------------------------
C:\>MFC.exe
程式執行失敗
C:\
_ <- 少了'>'符號,且多換了一行
------------------------------
想知道有沒有辦法能夠達成我想要的顯示方式?
還請各位高手幫忙解答了,謝謝。
------解决思路----------------------
console屏幕处理例子程序。终端窗口屏幕处理相关API使用例子。来自MSVC20\SAMPLES\win32\console\ http://download.****.net/detail/zhao4zhong1/3461309
------解决思路----------------------
注入进程这个,可能一下两下讲不清楚了,详细的系统的,可以看《WINDOWS核心编程》,简单的就是以“进程注入”为关键字进行搜索找点别人整理的网文来学习一下。
至于发送消息就简单了,不过CMD的话发送消息可能比较麻烦,可以考虑激活并置顶CMD窗口,然后使用keybd_event。