⑴ c#中怎样判断一个程序是否正在运行
判断代码如下:
stringname="进程名";
if(GetPidByProcessName(name)==0)
{
MessageBox.Show("程序未运行");
return;
}(stringprocessName)
{
Process[]arrayProcess=Process.GetProcessesByName(processName);foreach(ProcesspinarrayProcess)
{
returnp.Id;
}
return0;
}
注意事项
/获取欲启动进程名
string strProcessName;
strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
//检查进程是否已经启动,已经启动则退出程序。
if (System.Diagnostics.Process.GetProcessesByName(strProcessName).Length > 1)
{
Application.Exit();
return;
}
Application.EnableVisualStyles();
Application.(false);
Application.Run(new frmMainPlatform());
⑵ 怎样查询电脑有哪些程序在运行具体一点
常用的做法是在任务管理器里边看
打开任务管理器的方法
Alt+Ctrl+Delete
或者Alt+Ctrl+Del
有时候电脑中病毒
有些进程是看不到的
你可以下在 进程查看器
这样子 可以看到所有的 用户 系统 隐藏进程
我用的是 卡卡安全助手
很多用户都对于自己机器的进程不是很明白,有时总误认为是病毒的进程,希望介绍一些系统的小知识,
便于大家使用计算机。
最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):
smss.exe Session Manager
csrss.exe 子系统服务器进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
svchost.exe 包含很多系统服务
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
explorer.exe 资源管理器
internat.exe 托盘区的拼音图标
附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):
mstask.exe 允许程序在指定时间运行。(系统服务)
regsvc.exe 允许远程注册表操作。(系统服务)
winmgmt.exe 提供系统管理信息(系统服务)。
inetinfo.exe 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)
tlntsvr.exe 允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)
允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)
tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务
)
termsrv.exe 提供多会话环境允许客户端设备访问虚拟的 Windows 2000 Professional 桌面会话以及运
行在服务器上的基
于 Windows 的程序。(系统服务)
dns.exe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)
以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉
tcpsvcs.exe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系
统服务)
支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(
系统服务)
ismserv.exe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)
ups.exe 管理连接到计算机的不间断电源(UPS)。(系统服务)
wins.exe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)
llssrv.exe License Logging Service(system service)
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。(系统服务)
RsSub.exe 控制用来远程储存数据的媒体。(系统服务)
locator.exe 管理 RPC 名称服务数据库。(系统服务)
lserver.exe 注册客户端许可证。(系统服务)
dfssvc.exe 管理分布于局域网或广域网的逻辑卷。(系统服务)
clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)
msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。
(系统服务)
faxsvc.exe 帮助您发送和接收传真。(系统服务)
cisvc.exe Indexing Service(system service)
dmadmin.exe 磁盘管理请求的系统管理服务。(系统服务)
mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)
netdde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)
smlogsvc.exe 配置性能日志和警报。(系统服务)
rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服
务)
RsEng.exe 协调用来储存不常用数据的服务和管理工具。(系统服务)
RsFsa.exe 管理远程储存的文件的操作。(系统服务)
grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空
间。(系统服务)
SCardSvr.exe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)
snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)
snmptrap.exe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机
上 SNMP 管理程序
。(系统服务)
UtilMan.exe 从一个窗口中启动和配置辅助工具。(系统服务)
msiexec.exe 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)
详细说明:
win2k运行进程
Svchost.exe
Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位
在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要
加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服
务,
以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。
Svchost.exe 组是用下面的注册表值来识别。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost
每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的
例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一
个
或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service
explorer.exe
这是一个用户的shell(我实在是不知道怎么翻译shell),在我们看起来就像任务条,桌面等等。这个
进程并不是像你想象的那样是作为一个重要的进程运行在windows中,你可以从任务管理器中停掉它,或
者重新启动。
通常不会对系统产生什么负面影响。
internat.exe
这个进程是可以从任务管理器中关掉的。
internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置
HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加载内容的。
internat.exe 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。
当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。
lsass.exe
这个进程是不可以从任务管理器中关掉的。
这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是
通过使用授权的包,例如默认的msgina.dll来执行的。如果授权是成功的,lsass就会产生用户的进入
令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。
mstask.exe
这个进程是不可以从任务管理器中关掉的。
这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行。
smss.exe
这个进程是不可以从任务管理器中关掉的。
这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,
包括已经正在运行的Winlogon,Win32(Csrss.exe)线程和设定的系统变量作出反映。在它启动这些
进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么
不可预料的事情,smss.exe就会让系统停止响应(就是挂起)。
spoolsv.exe
这个进程是不可以从任务管理器中关掉的。
缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
service.exe
这个进程是不可以从任务管理器中关掉的。
大多数的系统核心模式进程是作为系统进程在运行。
System Idle Process
这个进程是不可以从任务管理器中关掉的。
这个进程是作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。
winlogon.exe
这个进程是管理用户登录和推出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框
。
winmgmt.exe
winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个
进程初始化
taskmagr.exe
这个进程就是任务管理器。
在知道里找到不少制作QQ空间的代码。但每次我在新建模块无论在网址里还是评论里输入代码最后保存都
没有显示相应的效果,请问具体制作步骤是怎样?
winXP进程全接触
Windows 2000/XP 的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如
现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,
不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。本文的目的就是提供一
些常用的Windows 2000 中的进程名,并简单说明它们的用处。
在 WINDOWS 2000 中,系统包含以下缺省进程:
Csrss.exe
Explorer.exe
Internat.exe
Lsass.exe
Mstask.exe
Smss.exe
Spoolsv.exe
Svchost.exe
Services.exe
System
System Idle Process
Taskmgr.exe
Winlogon.exe
Winmgmt.exe
下面列出更多的进程和它们的简要说明
进程名 描述
smss.exe Session Manager
csrss.exe 子系统服务器进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安
全驱动程序。
svchost.exe Windows 2000/XP 的文件保护系统
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。)
explorer.exe 资源管理器
internat.exe 托盘区的拼音图标)
mstask.exe 允许程序在指定时间运行。
regsvc.exe 允许远程注册表操作。(系统服务)->remoteregister
winmgmt.exe 提供系统管理信息(系统服务)。
inetinfo.exe msftpsvc,w3svc,iisadmn
tlntsvr.exe tlnrsvr
tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。
termsrv.exe termservice
dns.exe 应答对域名系统(DNS)名称的查询和更新请求。
tcpsvcs.exe 提供在 PXE 可远程启动客户计算机上远程安装 Windows
2000 Professional 的能力。
ismserv.exe 允许在 Windows Advanced Server 站点间发送和接收消息。
ups.exe 管理连接到计算机的不间断电源(UPS)。
wins.exe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS
名称服务。
llssrv.exe 证书记录服务
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。
RsSub.exe 控制用来远程储存数据的媒体。
locator.exe 管理 RPC 名称服务数据库。
lserver.exe 注册客户端许可证。
dfssvc.exe 管理分布于局域网或广域网的逻辑卷。
clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页
面。
msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统
或其它事务保护护资源管理器。
faxsvc.exe 帮助您发送和接收传真。
cisvc.exe 索引服务
dmadmin.exe 磁盘管理请求的系统管理服务。
mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌
面。
netdde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。
smlogsvc.exe 配置性能日志和警报。
rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和
本地通信控制安装功功能。
RsEng.exe 协调用来储存不常用数据的服务和管理工具。
RsFsa.exe 管理远程储存的文件的操作。
grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向
一个数据存储点,以节省磁盘空间(只对 NTFS 文件系统有用)。
SCardSvr.ex 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控
制。
snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作
站汇报。
snmptrap.exe 接收由本地或远程 SNMP 代理程序产生的陷阱(trap)消息,
然后将消息传递到运行在这台计算机上 SNMP 管理程序。
UtilMan.exe 从一个窗口中启动和配置辅助工具。
msiexec.exe 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。
另外,有很多朋友都有这样的疑问:我的开机进程里有smss.exe和csrss.exe两个文件,
有什么作用?
进程文件: smss or smss.exe
进程名称: Session Manager Subsystem
描述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及
COM,调用Win32壳子系统和运行在Windows登陆过程。
常见错误: N/A
是否为系统进程: 是
进程文件: csrss or csrss.exe
进程名称: Client/Server Runtime Server Subsystem
描述: 客户端服务子系统,用以控制Windows图形相关子系统。
常见错误: N/A
是否为系统进程: 是
所以,对自己不熟悉 没有把握的进程, 不要随便结束它.建议:把你认为有问题的进程比
如"csrss.exe",在google里搜索"csrss.exe",就会获得相关的知识.
⑶ vc如何判断一个程式是否在执行
InstanceName 自定义用于表示应用程式的唯一标识名
hWndClassName 窗体的注册类名 CreateWindow 函式中指定
hWndWinName 窗体名 CreateWindow 函式中指定
mOperate 操作判断变数
BOOL OperateMutex( LPCWSTR InstanceName,LPCWSTR hWndClassName, LPCWSTR hWndWinName, BOOL mOperate)
{
HANDLE hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE,InstanceName);
switch(mOperate)
{
case APP_OPEN: OPEN = 启动程式
if(hMutex==NULL)
{
hMutex = CreateMutex(NULL,FALSE,InstanceName);
if( (hMutex == NULL) || (GetLastError()==ERROR_ALREADY_EXISTS))
{
ActiveOldApp(hWndClassName,hWndWinName);
return FALSE; 程式已经启动或有错误发生
}
else
{
return TRUE;
} 第一次启动程式
}
else
{
ActiveOldApp(hWndClassName,hWndWinName);
return FALSE; 程式已经启动
}
break;
case APP_CLOSE: CLOSE = 退出升亏程式
ReleaseMutex(hMutex);
CloseHandle(hMutex);
break;
}
return TRUE;
}
启用已启动的同一个程式
引数:hWndClassName 窗体的注册类名 CreateWindow 函式中指定
hWndWinName 窗体名 CreateWindow 函式中指定
BOOL ActiveOldApp( LPCWSTR hWndClassName, LPCWSTR hWndWinName)
{
HWND hWndApp,hWndPopup;
if (hWndApp = FindWindow(hWndClassName,hWndWinName))
{
PutLog( "已经闹启启动的例项的视窗控制代码是%ld", hWndApp );
SendMessage( hWndApp, WM_ACTIVE, 0, 0 );
hWndPopup = GetLastActivePopup(hWndApp);
PutLog( "GetLastActivePopup得到的视窗控制代码是%ld", hWndPopup );
return TRUE;
}
else
{
return FALSE;
}
}
查询程序,假设档名为:a.exe,你可以查询它,如找到,说明在运行了
网上很多查询程序的资料
这个问题比较普遍,有多种不同的解决方法。 比较常用的,就是在B程式中新增Log档案机制,随时记录B程式的执行状态,或者只记录B程式捕捉到的异常,A程式需要检视B程式执行状态的时候就读取B的log档案,进行分析。
这个问题比较普遍,有多种不同的解决方法。 比较常用的,
就是在B程式中新增Log档案机制,随时记录B程式的执行状态,
或者只记录B程式捕捉到的异常
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Const STILL_ACTIVE As Long = &H103
Public hShell As Long, hProc As Long, lExit As Long
Private Sub Command1_Click()
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
GetExitCodeProcess hProc, lExit
If lExit = STILL_ACTIVE Then
MsgBox "程式正在执行"
Else
hShell = Shell("cmd.exe")
End If
End Sub
一般通过登录档实现吧,不过也可以通过配置档案实现。现在教你通过登录档实现:
如果一个程式从未被执行过,那么它是不可能对登录档有所操作的,所以我们可以在程式执行是就检测一次登录档中某个值是否存在,如果不存在就给出提示操作。当然一旦程式被执行,首先是要检测那个值是否存在,而接着就必须要向某个你指定的位置写值,不然每次都检测到程式是第一次执行,显然是不合理的。至于按钮是否第一次被按下,也是同理的。
你可以用:
RegOpenKeyEx()开启登录档(对登录档操作之前必须先开启它)
RegQueryValueEx()检测登录档中指定的值是否存在
RegSetValueEx()对指定位置写值
RegDeleteKey()删除登录档的值或项
这些函式上网络看它们的用法,很详细!
我用win系统变数解决program Project1;uses Forms, Windows, Dialogs, Unit1 in 'Unit1.pas' {Form1};{$R *.res}var vATOM: ATOM;const ATOMID = 'Zswang方法'begin if GlobalFindAtom(ATOMID) > 0 then begin ShowMessage(ATOMID); Exit; end; vATOM := GlobalAddAtom(ATOMID); try Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; finally GlobalDeleteAtom(vATOM); end;end. 检视原帖>>
cmd是 mand的缩写.即 命令提示符(CMD),是在OS / 2 , Windows CE与Windows NT平台为基础的作业系统(包括Windows 2000和XP中, Vista中,和Server 2003 )下的“MS-DOS 方式”。中文版Windows XP 中的命令提示符进一步提高了与DOS 下操作命令的相容性,使用者可以在命令提示符直接输入中文呼叫档案。
asklist > a.txt<回车>type a.txt | find /i "%程序名%" && goto b<回车>第一句是将当前程序储存到档案,第二句是检测程序是否执行,是否跳转到B处执行。
tasklist /nh>d:1.txt find /i "QQ.exe" d:1.txt if ERRORLEVEL 1 ("C:sofareTencentqqQQQ.exe" ) else (exit) 意思是检测"QQ.EXE"有没有在程序里,大家都知道QQ开启后进程名是"QQ.EXE"如果有在程序里则执行"EXIT"退出,如果没有在程序里,说明QQ没有开启,则执行QQ程式"C:sofareTencentqqQQQ.exe" 第二种写法 tasklist /nh|find /i "QQ.exe" if ERRORLEVEL 1 ("C:sofareTencentqqQQQ.exe") else (exit)
⑷ 易语言中怎样检测某个程序是否正在运行
.版本 2
.支持库 eAPI
.子程序 _按钮1_被单击
.局部变量 进程列表, 进程信息, , "0"
.局部变袜做宽量 计次, 整数型
.局部变量 存在进程, 逻辑型
.局部变量 要判断的程序名, 文本型
进程列表 = 取系统进程列表 ()
要判断的程序名 = “QQ1.exe” '胡尺 这里的QQ.exe可以改为你想要判断的程序名
.计次循环首 (取数组成员数 (进程列表), 计次)
.如果 (进告亮程列表 [计次].进程名称 = 要判断的程序名)
存在进程 = 真
跳出循环 ()
.否则
存在进程 = 假
.如果结束
.计次循环尾 ()
.判断开始 (存在进程 = 真)
信息框 (“存在进程: ” + 要判断的程序名, 0, )
.默认
信息框 (“不存在进程: ” + 要判断的程序名, 0, )
.判断结束
⑸ 如何判断指定进程是否运行
System.Diagnostics.Process [] processes =System.Diagnostics.Process.GetProcesses ( );
for ( int i=0 ; i < processes.Length ; i++ )
{
if ( String.Compare(processes [ i ].ProcessName, "QQ"链销, true ) == 0)
{
MessageBox.Show ( "程序已经棚丛游运行。"郑兄 );
break;
}
}
⑹ 如何检查一个指定的程序是否在运行
On Error Resume Next
Dim s, objWMIService, colProcessList, objProcess
Dim mFind As Boolean
s="excel.exe" '要查找的进程名宴搭称
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name='" & s & "'")
For Each objProcess In colProcessList '查找进程
mFind = True
Next
If mFind Then '州信如果找到册祥轮
'在此加入代码
Else '如果找不到
'在此加入代码
End If
⑺ vc如何判断一个程序是否在运行
一般通过注册表实漏桥桥现吧,不过也可以通过配置文件实现。现在教你通过注册表实现:
如果一个程序从未被运行过,那么它是不可能对注册表有所操作的,所以我们可以在程序运行是就检测一次注册表中某个值是否存在,如果不存在就给出提示操作。当然一旦程序被运行,首先是要检测那个值是否存在,而接着就必须要向某个你指定的位置写值,不然每消唯次都检测到程序是第一次运行,显然是不合理的。至于按钮是否第一次被按下,也是返猛同理的。
你可以用:
regopenkeyex()打开注册表(对注册表操作之前必须先打开它)
regqueryvalueex()检测注册表中指定的值是否存在
regsetvalueex()对指定位置写值
regdeletekey()删除注册表的值或项
这些函数上网络看它们的用法,很详细!