vb.netpid控制,VBNET的编程机制

vb.net 怎样控制其它应用程序

很简单,取到程序句柄,之后找到想控制的控件,通过程序给他改值或控制就可以了

创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为海棠企业提供专业的成都网站设计、网站制作、外贸营销网站建设海棠网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

vb.net怎么确定一个pid是否存在?

正好我写个一个函数封装在DLL里了,代码是这样的:

''' summary

''' 检查进程是否运行

''' /summary

''' param name="ProcessName"要检查的进程名/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

窗口隐藏进程总有吧,函数调用的参数是进程名,不是窗口名。

函数是自己写的没有调用API

vb 如何获取本程序的PID?

PID不是关本程序的事的吧。

普遍上定义PID是指:

P:比例

I:积分

D:微分

PID一般只是工控控制器上才用得到的一种模糊控制方式,而PID只是三个数值而以,与API无关。

求一段VB编写的增量式PID控制程序

#include

#include

"global_varible.h"

/****************************************************************************

*

模块名:

pid

*

描述:

pid调节子程序

*

采用pid-pd算法。在偏差绝对值大于△e时,用pd算法,以改善动态品质。

*

当偏差绝对值小于△e时,用pid算法,提高稳定精度。

*

pidout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]

*============================================================================

*

入口:

*

出口:

*

改变:

pid_t_run=加热时间控制

*****************************************************************************/

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;

//温度控制设定值37.00度

pid_e0

=

temp_set-temp_now;

//本次偏差

ee1

=

pid_e0-pid_e1;

//计算一阶偏差

//ee2

=

pid_e0-2*pid_e1+pid_e2;

//计算二阶偏差

if(ee1

500)

//一阶偏差的限制范围

ee1

=

500;

if(ee1

-500)

ee1

=

-500;

pid_e_sum

+=

pid_e0;

//偏差之和

if(pid_e_sum

200)

//积分最多累计的温差

pid_e_sum

=

200;

if(pid_e_sum

-200)

pid_e_sum

=

-200;

pid_out

=

pid_kp*pid_e0+pid_kd*ee1;

//计算pid比例和微分输出

if(abs(pid_e0)

200)

//如果温度相差小于1.5度则计入pid积分输出

{

if(abs(pid_e0)

100)

//如果温度相差大于1度时积分累计限制

{

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)

//当前温度高于设定温度0.5度时积分累计限制

{

if(pid_e_sum

150)

pid_e_sum

=

150;

if(pid_e_sum

0)

//当前温度高于设定温度0.5度时削弱积分正输出

d_out

=

1;

}

pid_out

+=

d_out;

//pid比例,积分和微分输出

}

else

pid_e_sum=0;

pid_out/=100;

//恢复被pid_out系数放大的倍数

if(pid_out

200)

pid_out=200;

if(pid_out0)

pid_out=0;

if(pid_e0

300)

//当前温度比设定温度低3度则全速加热

pid_out=200;

if(pid_e0

-20)

//当前温度高于设定温度0.2度则关闭加热

pid_out=0;

hot_t_run=pid_out;

//加热时间控制输出

pid_e2

=

pid_e1;

//保存上次偏差

pid_e1

=

pid_e0;

//保存当前偏差

}

////////////////////////////////////////////////////////////void

pid_math()

end.

求大神指点 vb.net 怎么通过进程pid取所加载的所有模块 路径

关于进程的问题你问了多次吧,为何不多看看Process

Dim p As Process() = Process.GetProcessesByName("qq")

If p.Count = 1 Then

Dim p1 As Process = p(0)

Dim m = p1.Modules '进程的所有模块。

End If

Dim p As Process = Process.GetProcessById(Pid)‘通过pid取进程。

VB 根据进程PID 激活窗口

AppActivate 可以根据窗口的标题来激活 也可以PID 枚举进程PID代码 百度下一堆 就不贴了

Dim MyAppID, ReturnValue

AppActivate "Microsoft Word" ' 激活 Microsoft

' Word。

' AppActivate 也可利用 Shell 函数的返回值。

MyAppID = Shell("C:\WORD\WINWORD.EXE", 1) ' 运行 Microsoft Word。

AppActivate MyAppID ' 激活 Microsoft

' Word。

' 您也可使用 Shell 函数的返回值。

ReturnValue = Shell("c:\EXCEL\EXCEL.EXE",1) ' 运行 Microsoft Excel。

AppActivate ReturnValue ' 激活 Microsoft

' Excel。


网站名称:vb.netpid控制,VBNET的编程机制
新闻来源:http://pwwzsj.com/article/dseehoo.html