很簡(jiǎn)單,取到程序句柄,之后找到想控制的控件,通過程序給他改值或控制就可以了
創(chuàng)新互聯(lián)公司長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為海棠企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),海棠網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
正好我寫個(gè)一個(gè)函數(shù)封裝在DLL里了,代碼是這樣的:
''' summary
''' 檢查進(jìn)程是否運(yùn)行
''' /summary
''' param name="ProcessName"要檢查的進(jìn)程名/param
''' returns/returns
''' remarks/remarks
Public Function CheckProcessByName(ByVal ProcessName As String) As Boolean
Dim MgmtClass As New ManagementClass("Win32_Process")
Dim rtnVal As Boolean = False
Dim mo As New ManagementObject()
For Each mo In MgmtClass.GetInstances()
If mo("Name").ToString().ToLower() = ProcessName.ToLower() Then
rtnVal = True
End If
Next
Return rtnVal
End Function
知道PID的話:
''' summary
''' 返回所有窗口句柄
''' /summary
''' returns/returns
''' remarks/remarks
Public Function ListAllProcessesHandle() As String
Dim sb As New StringBuilder()
Dim p As New Process()
For Each p In Process.GetProcesses(".")
Try
If p.MainWindowTitle.Length 0 Then
sb.Append("句柄:" + p.MainWindowHandle.ToString() + Environment.NewLine)
End If
Catch
End Try
Next
Return sb.ToString()
End Function
窗口隱藏進(jìn)程總有吧,函數(shù)調(diào)用的參數(shù)是進(jìn)程名,不是窗口名。
函數(shù)是自己寫的沒有調(diào)用API
PID不是關(guān)本程序的事的吧。
普遍上定義PID是指:
P:比例
I:積分
D:微分
PID一般只是工控控制器上才用得到的一種模糊控制方式,而PID只是三個(gè)數(shù)值而以,與API無關(guān)。
#include
#include
"global_varible.h"
/****************************************************************************
*
模塊名:
pid
*
描述:
pid調(diào)節(jié)子程序
*
采用pid-pd算法。在偏差絕對(duì)值大于△e時(shí),用pd算法,以改善動(dòng)態(tài)品質(zhì)。
*
當(dāng)偏差絕對(duì)值小于△e時(shí),用pid算法,提高穩(wěn)定精度。
*
pidout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]
*============================================================================
*
入口:
無
*
出口:
無
*
改變:
pid_t_run=加熱時(shí)間控制
*****************************************************************************/
void
pid_math(void)
{
signed
long
ee1;
//偏差一階
//signed
long
ee2;
//偏差二階
signed
long
d_out;
//積分輸出
if(!flag_pid_t_ok)
return;
flag_pid_t_ok=0;
temp_set=3700;
//溫度控制設(shè)定值37.00度
pid_e0
=
temp_set-temp_now;
//本次偏差
ee1
=
pid_e0-pid_e1;
//計(jì)算一階偏差
//ee2
=
pid_e0-2*pid_e1+pid_e2;
//計(jì)算二階偏差
if(ee1
500)
//一階偏差的限制范圍
ee1
=
500;
if(ee1
-500)
ee1
=
-500;
pid_e_sum
+=
pid_e0;
//偏差之和
if(pid_e_sum
200)
//積分最多累計(jì)的溫差
pid_e_sum
=
200;
if(pid_e_sum
-200)
pid_e_sum
=
-200;
pid_out
=
pid_kp*pid_e0+pid_kd*ee1;
//計(jì)算pid比例和微分輸出
if(abs(pid_e0)
200)
//如果溫度相差小于1.5度則計(jì)入pid積分輸出
{
if(abs(pid_e0)
100)
//如果溫度相差大于1度時(shí)積分累計(jì)限制
{
if(pid_e_sum
100)
pid_e_sum
=
100;
if(pid_e_sum
-100)
pid_e_sum
=
-100;
}
d_out
=
pid_ki*pid_e_sum;
//積分輸出
if(pid_e0
-5)
//當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)積分累計(jì)限制
{
if(pid_e_sum
150)
pid_e_sum
=
150;
if(pid_e_sum
0)
//當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)削弱積分正輸出
d_out
=
1;
}
pid_out
+=
d_out;
//pid比例,積分和微分輸出
}
else
pid_e_sum=0;
pid_out/=100;
//恢復(fù)被pid_out系數(shù)放大的倍數(shù)
if(pid_out
200)
pid_out=200;
if(pid_out0)
pid_out=0;
if(pid_e0
300)
//當(dāng)前溫度比設(shè)定溫度低3度則全速加熱
pid_out=200;
if(pid_e0
-20)
//當(dāng)前溫度高于設(shè)定溫度0.2度則關(guān)閉加熱
pid_out=0;
hot_t_run=pid_out;
//加熱時(shí)間控制輸出
pid_e2
=
pid_e1;
//保存上次偏差
pid_e1
=
pid_e0;
//保存當(dāng)前偏差
}
////////////////////////////////////////////////////////////void
pid_math()
end.
關(guān)于進(jìn)程的問題你問了多次吧,為何不多看看Process
Dim p As Process() = Process.GetProcessesByName("qq")
If p.Count = 1 Then
Dim p1 As Process = p(0)
Dim m = p1.Modules '進(jìn)程的所有模塊。
End If
Dim p As Process = Process.GetProcessById(Pid)‘通過pid取進(jìn)程。
AppActivate 可以根據(jù)窗口的標(biāo)題來激活 也可以PID 枚舉進(jìn)程PID代碼 百度下一堆 就不貼了
Dim MyAppID, ReturnValue
AppActivate "Microsoft Word" ' 激活 Microsoft
' Word。
' AppActivate 也可利用 Shell 函數(shù)的返回值。
MyAppID = Shell("C:\WORD\WINWORD.EXE", 1) ' 運(yùn)行 Microsoft Word。
AppActivate MyAppID ' 激活 Microsoft
' Word。
' 您也可使用 Shell 函數(shù)的返回值。
ReturnValue = Shell("c:\EXCEL\EXCEL.EXE",1) ' 運(yùn)行 Microsoft Excel。
AppActivate ReturnValue ' 激活 Microsoft
' Excel。
分享文章:vb.netpid控制,VBNET的編程機(jī)制
文章轉(zhuǎn)載:http://m.kartarina.com/article0/dseehoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、企業(yè)網(wǎng)站制作、域名注冊(cè)、搜索引擎優(yōu)化、網(wǎng)站營(yíng)銷、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)