版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、切換按鈕001SetTagBit("TE_BOOL",!GetTagBit("TE_BOOL");002BOOL AA=GetTagBit("TE_BOOL");if(A)SetTagBit("TE_BOOL",0);ElseSetTagBit("TE_BOOL",1);003SetTagBit("TE_BOOL ",1-GetTagBit("TE_BOOL ");I O 域處的 xx 輸入輸出在 I/O 域的輸出值事件處的動作Float F_TAG;F_
2、TAG =GetTagFloat("TE_FLOAT");return(F_TAG /100);WINCC運(yùn)行畫面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow("PDLRTisAliveAndWaitsForYou",NULL);CloseWindow(WinCCHwnd);WINDOWSxx提供的標(biāo)準(zhǔn)對話框BOOL bool1;HWND Hwnd;int iRet;Hwnd = FindWindow(NULL,"WinCC運(yùn)-行系統(tǒng) - ");1/11if (!Hwnd) Hwnd = FindWin
3、dow(NULL,"WinCC運(yùn)-行系統(tǒng) - ");if (!Hwnd) printf("rnGetWinCC Handle Failed!");iRet=MessageBox(Hwnd,"確認(rèn)合閘 "," 確認(rèn)對話框",MB_YESNOCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEM MODAL);switch (iRet)case IDYES:printf("user do YESrn");SetTagBit("TE_QUES
4、T",1);break;case IDNO:printf("user do NOrn");SetTagBit("TE_QUEST",0);break;case IDCANCEL:printf("user do CANCELrn");break;本畫框的功能是點(diǎn)擊按鈕的時候彈出 windows 詢問對話框其中 “確認(rèn)合閘 ” 為對話內(nèi)容,對話框的名稱為 “確認(rèn)對話框 ”用戶不同顯示不同的按鈕你可以在用戶管理器給每個用戶不同的權(quán)限,使他們對按鈕有不同的操作權(quán),這是最簡便的。但是如果一定要根據(jù)用戶不同顯示不同的按鈕就要用 C腳本了
5、2/11下面這段代碼可以加在有兩個按鈕的畫面的對象屬性 -事件 -畫面對象 -其他-打開畫面,三個用戶名是 user1, user2,user3,按鈕名稱是按鈕 1,按鈕2,你可以自行修改,這里假設(shè)已經(jīng)進(jìn)行過用戶登錄的操作,當(dāng)打開有這兩個按鈕的畫面時執(zhí)行下列腳本判斷用戶并顯示相應(yīng)的按鈕if(strcmp(GetTagChar("CurrentUser"),"user1") )elseSetVisible(lpszPictureName,"按鈕 1",TRUE);SetVisible(lpszPictureName,"按紐 2
6、",FALSE);if(strcmp(GetTagChar("CurrentUser"),"user2") )elseSetVisible(lpszPictureName,"按鈕 1",FALSE);SetVisible(lpszPictureName,"按鈕 2",TRUE);if (strcmp(GetTagChar("CurrentUser"),"user3") )elseSetVisible(lpszPictureName,"按鈕 1",
7、TRUE);SetVisible(lpszPictureName,"按鈕 2",TRUE);strcmp 是比較字符串的語句,比較文本變量只能用它,幫助里沒有的,用它比較讀取到的用戶名 GetTagChar("CurrentUser")和三個用戶名 "userX",你把這段語句加到一個按鈕的鼠標(biāo)動作里,看點(diǎn)擊按鈕會不會兩個按鈕現(xiàn)實(shí)和隱藏。登錄登出對話框3/11#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTL
8、ogin('c');PWRTLogin參數(shù)必須是 CHAR字符。它指定了顯示對話框的監(jiān)視器。如果只使用一個監(jiān)視器,那么保留默認(rèn)參數(shù) “c或”者指定 “1。”#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();PWRTLogin參數(shù)必須是 CHAR字符。它指定了顯示對話框的監(jiān)視器。如果只使用一個監(jiān)視器,那么保留默認(rèn)參數(shù) “c或”者指定 “1?!盬inCC如何實(shí)現(xiàn)鼠標(biāo) OnMouseOVer事件用 WINDOWAPI函數(shù) GetCusorPo
9、s獲取當(dāng)前鼠標(biāo)位置,用 GetWindowRect 函數(shù)獲取窗口位置,兩值相減得鼠標(biāo)在 WINCCframe上的相對位置。用全局腳本(設(shè)定為 1s 定時刷新),然后獲取要 OnMouseOver 事件的物體的位置,并與鼠標(biāo)位置相比較,如一致則觸發(fā)自己定義的動作。 i nclude "apdefap.h"int gscAction( void )#pragma code("user32.dll");BOOL GetCusorPos(POINT lpPoint); 獲/取鼠標(biāo)的位置(絕對位置 -對應(yīng)屏幕分辨率) BOOL GetWindowRect(HWND
10、 hwnd,LPRECT lpRect);獲/取窗體位置#pragma code();4/11POINT pPos;RECT rRec;HWND hwnd;BOOL bRet,bRet2;long lLeft,lTop,lWidth,lHeight;long lX,lY;char szStr100;hwnd=FindWindow(NULL,"WinCC-Runtime - "); /如語言為中文應(yīng)為 "WinCC運(yùn)行系統(tǒng) -"if (hwnd=0) printf("rnError! WinCc Handle is %d",hwnd);
11、goto over;bRet=GetCursorPos(&pPos);if (bRet=0) goto over;bRet2=GetWindowRect(hwnd,&rRec);if (bRet2=0) goto over;lX=pPos.x-rRec.left;/鼠標(biāo)對 置lY=pPos.y-rRec.top;/鼠標(biāo)位置/ 如果為非全屏模式,需將上述數(shù)值中的高 height 判斷減去標(biāo)題欄的寬度/printf("The Current Cusor Pos is x:%d,y:%drn",pPos.x,pPos.y);/printf("The Cu
12、sor Pos in Window is x:%d,y:%drn",pPos.x-lLeft2,pPos.y-lTop2);5/11lLeft=GetLeft("NewPdl0.Pdl","Text1");/Return - Type :long intlTop=GetTop("NewPdl0.Pdl","Text1");/Return - Type :long intlWidth=GetWidth("NewPdl0.Pdl","Text1");/Return -
13、Type :long intlHeight=GetHeight("NewPdl0.Pdl","Text1");/Return - Type :long intif (lX>=lLeft)&&(lY>=lTop)&&(lX<=lLeft+lWidth)&&(lY<=lTop+lHeight) sprintf(szStr,"%d,%d",lX,lY);SetText("NewPdl0.Pdl","Text1",szStr);/R
14、eturn - Type :char*/printf("The Text1 Pos is x:%d,y:%drn",lLeft2,lTop-lTop2);over:return 0; 退出 WINCC監(jiān)控時選擇退出方式6/11DMExitWinCCEx (DM_SDMODE_SYSTEM);或者使用動態(tài)向?qū)ㄟ^給變量 ExitSystem賦不同的數(shù)值實(shí)現(xiàn)不同的方式int a;a=GetTagWord("ExitSystem");/返回類型 :WORDswitch(a)case 1 :MExitWinCCEx (DM_SDMODE_REBOOT);brea
15、k;case 2 :DMExitWinCCEx (DM_SDMODE_SYSTEM);break;case 4 :ExitWinCC();break; /DMExitWinCCEx (DM_SDMODE_WINCC);case 8 :DMExitWinCCEx (DM_SDMODE_LOGOFF);break;如何實(shí)現(xiàn)用戶登陸日志 wincc 中用 c 腳本實(shí)現(xiàn) ?break;#pragma code("kernel32.dll")VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);#pragma code()char* usernam
16、e;char buf128;static char preuser128;unsigned a,b,c,d,e,f;FILE* fp;7/11SYSTEMTIME sysTime;/ 讀取系統(tǒng)時間 ,并且復(fù)制給變量 a,b,c,d,e,fGetLocalTime(&sysTime);a=sysTime.wHour;b=sysTime.wMinute;f=sysTime.wYear; e=sysTime.wMonth;d=sysTime.wDay;c=sysTime.wSecond;username = GetTagChar("CurrentUser");得/到當(dāng)前用
17、戶名稱fp= fopen("c:wincclog.txt", "a+");/創(chuàng)建文件if(strcmp(username, preuser)!=0)/ 如果當(dāng)前用戶名稱和前一個用戶名不同if(strcmp(username, "") != 0)&&(strcmp(preuser, "") = 0)/ 如果當(dāng)前用戶名稱不空同時前一個用戶名為空sprintf(buf, " 用戶 :%st 登陸時間是:t %d-%d-%d,%d-%d-%dn", username,a,b,c,d,e,
18、f);fputs(buf, fp);elseif(strcmp(username, "") = 0)&&(strcmp(preuser, "") != 0)/ 如果當(dāng)前用戶名稱為空同時前一個用戶名不空sprintf(buf," 用戶 :%st 退出時間是:t%d-%d-%d,%d-%d-%dn",preuser,a,b,c,d,e,f);fputs(buf, fp);elsesprintf(buf," 用戶 :%st 退出時間是:8/11t%d-%d-%d,%d-%d-%dn",preuser,a,
19、b,c,d,e,f);fputs(buf, fp);sprintf(buf," 用戶 :%st 登陸時間是:t%d-%d-%d,%d-%d-%dn",username,a,b,c,d,e,f); fputs(buf, fp);strcpy(preuser, username); fclose(fp);return 0;用戶登陸 xx:(包括用戶的登陸退出信息,以便查詢在什么時間段是哪個用戶在使用這個監(jiān)控軟件)設(shè)置語言英語 SetLanguage(0x409);法語 SetLanguage(0x407);德語 SetLanguage(0x40C);調(diào)用計算器如果在 C 腳本中
20、僅僅有一句ProgramExecute("CALC.exe")此時不關(guān)計算器就切換畫面,則計算器都在后臺運(yùn)行。所以在腳本中加入使計算器必須顯示在 WINDOW的激活層上。HWND Hwnd;BOOL bRet;9/11Hwnd=FindWindow(NULL,"Calculator");if (!Hwnd)ProgramExecute("CALC.exe");Hwnd=FindWindow(NULL,"Calculator");if (Hwnd)printf("rn%d",Hwnd);bRet=
21、SetWindowPos(Hwnd,HWND_TOPMOST,300,300,200,200,SWP_NOSIZE);if (!bRet) printf("rnSetWindowPos Error!"); 修改密碼 #pragma code("UseGen.dll")#include "USEGENAP.H"#pragma code()LPCMN_ERROR err;if (PWGENConnect("CC_ass_04-09-21_16:35:22",err) )if(PWGENChangePassword(GetTagChar(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版安全防范設(shè)備安裝與保安人員勞務(wù)合同2篇
- 2025版太陽能光伏發(fā)電系統(tǒng)安裝與安全檢驗(yàn)合同3篇
- 《養(yǎng)老保險宣傳方案》課件
- 2025年度個人投資理財合同4篇
- 2025版萬科物業(yè)知識共享與培訓(xùn)服務(wù)合同3篇
- 2025版戶外廣告牌清洗及維護(hù)服務(wù)合同3篇
- 2025版司機(jī)車輛維護(hù)保養(yǎng)合同3篇
- 二零二五年度大數(shù)據(jù)分析服務(wù)借款合同協(xié)議2篇
- 2025年度鋁單板智能制造技術(shù)改造項(xiàng)目合同4篇
- 2025版我國行政救濟(jì)制度優(yōu)化與執(zhí)行監(jiān)督合同3篇
- 2025-2030年中國陶瓷電容器行業(yè)運(yùn)營狀況與發(fā)展前景分析報告
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學(xué)英語教學(xué)設(shè)計重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個人主要事跡
- 連鎖商務(wù)酒店述職報告
- 《實(shí)踐論》(原文)毛澤東
- 第三單元名著導(dǎo)讀《紅星照耀中國》(公開課一等獎創(chuàng)新教學(xué)設(shè)計+說課稿)
評論
0/150
提交評論