社区
Java SE
帖子详情
我的程序如何获得我将要启动的进程是否已经启动了呢?
heyoulin
2006-01-23 06:33:19
我现在想启动一个java程序,但是,该程序在这之前就已经在运行了.
因此,我现在如果还启动它的话,就需要给出提示:该进程已经启动.
我如何才能知道该进程已经启动了呢?
...全文
93
4
打赏
收藏
我的程序如何获得我将要启动的进程是否已经启动了呢?
我现在想启动一个java程序,但是,该程序在这之前就已经在运行了. 因此,我现在如果还启动它的话,就需要给出提示:该进程已经启动. 我如何才能知道该进程已经启动了呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zouxinfox
2006-01-23
打赏
举报
回复
不错,顶
cenlmmx
2006-01-23
打赏
举报
回复
1. 用API函数,那就要用到JNI,java来调用C++ dll.
C++代码:
BOOL GetProcessList ()
{
HANDLE hProcessSnap = NULL;
BOOL bRet = FALSE;
PROCESSENTRY32 pe32 = {0};
// Take a snapshot of all processes in the system.
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return (FALSE);
// Fill in the size of the structure before using it.
pe32.dwSize = sizeof(PROCESSENTRY32);
// Walk the snapshot of the processes, and for each process,
// display information.
if (Process32First(hProcessSnap, &pe32))
{
DWORD dwPriorityClass;
BOOL bGotModule = FALSE;
MODULEENTRY32 me32 = {0};
do
{
bGotModule = GetProcessModule(pe32.th32ProcessID,
pe32.th32ModuleID, &me32, sizeof(MODULEENTRY32));
if (bGotModule)
{
HANDLE hProcess;
// Get the actual priority class.
hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, pe32.th32ProcessID);
dwPriorityClass = GetPriorityClass (hProcess);
CloseHandle (hProcess);
// Print the process's information.
printf( "\nPriority Class Base\t%d\n",
pe32.pcPriClassBase);
printf( "PID\t\t\t%d\n", pe32.th32ProcessID);
printf( "Thread Count\t\t%d\n", pe32.cntThreads);
printf( "Module Name\t\t%s\n", me32.szModule);
printf( "Full Path\t\t%s\n\n", me32.szExePath);
}
}
while (Process32Next(hProcessSnap, &pe32));
bRet = TRUE;
}
else
bRet = FALSE; // could not walk the list of processes
// Do not forget to clean up the snapshot object.
CloseHandle (hProcessSnap);
return (bRet);
}
2. 笨办法,启动一个进程就写标志到一个本地资源(如文件),下一个进程启动先去读这个资源来判断,标志为false(已经有相同进程在运行),启动,为true,放弃.
jlbqd
2006-01-23
打赏
举报
回复
关注
VB中我会实现的
java就不会了
vickcy
2006-01-23
打赏
举报
回复
关注中~~~~~~~~~~~~~
Android应用
程序
进程
管理
这个PPT讲Android应用
程序
进程
的
启动
和回收,主要涉及到Zygote
进程
、System Server
进程
,以及组件管理服务ActivityManagerService、窗口服务WindowManagerService,还有专用驱动Low Memory Killer。通过了解Android...
《Android系统源代码情景分析》
第12章 Android应用
程序
进程
的
启动
过程 12.1 应用
程序
进程
的创建过程 12.2 Binder线程池的
启动
过程 12.3 消息循环的创建过程 第13章 Android应用
程序
的消息处理机制 13.1 创建线程消息队列 13.2 线程...
taskmgr.exe下载
在Windows操作系统中,任务管理器(Task Manager)是不可或缺的工具,它允许用户监控系统性能,查看正在运行的
进程
,管理应用
程序
,结束无响应的任务,以及控制用户账户。标题提到的"taskmgr.exe下载"指的是获取任务...
linux
启动
进程
c,Linux
启动
新
进程
的三种方法
程序
中,我们有时需要
启动
一个新的
进程
,来完成其他的工作。下面介绍了三种实现方法,以及这三种方法之间的区别。1.system函数-调用shell
进程
,开启新
进程
system函数,是通过
启动
shell
进程
,然后执行shell命令
进程
。...
C# 检查
进程
是否
已经
启动
string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName; //获取欲
启动
进程
名 CommonData.VersionNumber = ...//检查
进程
是否
已经
启动
,
已经
启动
则提示信息退出
程序
i
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章