QT學習記錄 嵌入外部程式

2021-10-04 01:52:27 字數 1459 閱讀 9886

第一步:啟動外部程式

程式名:test.exe 程式視窗類名:test

_path:程式的絕對路徑或者相對於工程的相對路徑

//之前在網上找的,忘記出處了

qstring cmd =

"_path/test.exe"

;startupinfo si =

;process_infomation pi;

si.wshowwindow =

true

;bool brect =

createprocess

(null

,(lpwstr)cmd.

tostdwstring()

.c_str()

,null

,null

, false, create_new_console,

null

,null

,&si,

&pi)

;//建立個外部程式程序

//這個地方在專案中可以啟個定時器判斷,當獲取到視窗控制代碼時代表程式視窗已經開啟,再關閉定時器即可

hwnd hwnd =

null

;while

(!hwnd)

第二部:嵌入程式

//qt程式的嵌入介面widget

long style =

::getwindowlong

(hwnd, gwl_style)

;//獲取視窗外觀屬性

::setwindowlong

(hwnd,gwl_style,style &

(~ws_caption)&(

~ws_thickframe));

//取消標題欄、禁止視窗拉伸

::setparent

(hwnd,

(hwnd)widget-

>

winid()

);::setwindowpos

(hwnd, hwnd_top,0,

0, widget-

>

width()

, widget-

>

height()

, swp_framechanged)

;

setwindowpos詳細用法:

補充:程式嵌入qt程式後,可能會出現失去焦點

解決辦法摘抄記錄:

::

showwindow

(hwnd,sw_show);::

setfocus

(hwnd);::

setforegroundwindow

(hwnd);::

setactivewindow

(hwnd)

;

//注意:在嵌入完成後可hide嵌入視窗widget,在需要的響應後再show就可以了

QT呼叫外部程式

qt呼叫外部程式 system calc.exe qprocess execute calc.exe qprocess startdetached calc.exe qprocess pro new qprocess pro start calc.exe 注釋 1 前兩種方法會阻塞程序,直到計算器程...

QT下呼叫外部程式

qt呼叫shell 或 外部程式有三種方法 第一種方法,是呼叫linux c 函式庫中的 system const char string system opt ts test 第二種方法 qprocess execute opt ts test 第三種方法 qprocess poc new qpr...

Qt開發 開啟外部程式

qt開啟外部程式 1.通過呼叫系統函式 2.通過qprocess,阻塞呼叫 3.通過qprocess,非阻塞呼叫 qprocess pro new qprocess 2.qt在執行的時候,要啟動qws服務,如果用前面兩種方法,執行的時候,要新開啟乙個qws,否則不能執行 而用第三種方法,則不需要再開...