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