在 WinCC 中啟動或關閉一個Windows程序
可以利用Win32 API的函數(shù)關閉程序:
" SendMessage" 函數(shù)將指令傳送給要關閉的進程并且等待直到該指令被執(zhí)行。然后返回其調用腳本。< /li>
" PostMessage" 函數(shù)也將指令傳送給要關閉的進程,但是不用等到指令被確實執(zhí)行完畢就立即返回其調用腳本。< /li>
" TerminateProcess" 函數(shù)將進程從主存儲器中刪除。其效果就等同于在Windows NT 任務管理器中單擊“結束任務”按鈕。
警告 !:
如果使用“TerminateProcess”函數(shù),數(shù)據(jù)可能被遺失。當前運行程序中的數(shù)據(jù)就不能保存。
使用“SendMessage”和“PostMessage”函數(shù),程序就有可能恰當?shù)臄嚅_與數(shù)據(jù)庫,OPC services DLLs等的連接。
因此總是使用“SendMessage” 和“PostMessage”函數(shù)。
下面的WinCC項目展示了如何中止標準Windows程序“Calculator”。在開始窗口中有五個按鈕。用“Start Calculator”按鈕啟動程序。用“Close Calculator terminate”,“Close Calculator SendMessage”和“Close Calculator PostMessage”按鈕關閉在PC上運行的所有的“ Calculator”程序。
“Close Calculator”按鈕的腳本可以分為以下部分:
對“Calculator”窗口的控制由該窗口分類名決定。計算器窗口的分類名為“SciCalc”。
注意事項:
可以發(fā)現(xiàn)窗口分類名“Spy++”,如Microsoft VC++的交貨軟件包包括“Spy++”。
確定相關進程的ID。
產(chǎn)生進程的控制。
關閉進程。
由于“sending message”和“mail message”函數(shù),條目2和3被放棄。
注意事項:
下面是SIMATICWinCC V5.x和SIMATICWinCC V6.0的例子。這兩個例子的功能是一樣的。
收費軟件(用SIMATIC卡/AVC卡付費):
文件“endtask.exe”包含一個 WinCC項目。該項目已經(jīng)通過WinCC V5.0 SP1產(chǎn)生。
文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉載。