我现在想启动一个java程序,但是,该程序在这之前就已经在运行了.
因此,我现在如果还启动它的话,就需要给出提示:该进程已经启动.
我如何才能知道该进程已经启动了呢?
因此,我现在如果还启动它的话,就需要给出提示:该进程已经启动.
我如何才能知道该进程已经启动了呢?
解决方案 »
- 毕业设计想用Java开发一个类似QQ的即时聊天软件,求专家提供学习参考资料!
- 请高手解决一个问题。关于final类型
- java 导入 Signal SignalHandler 求解
- 新手提问Java中如何定位资源的相对路径
- swing界面中socket服务端一启动就死掉
- 大家帮我看一下,万分感谢。错误提示是: Win 中的 run() 无法实现 java.lang.Runnable 中的 run();被覆盖的方法不抛出 java.io.IOException
- String s = new String("xyz");创建了几个String Object?
- 重定向恢复,在那里执行这些恢复语句?新手啊
- 关于HTTP的KeepAlive
- java小程序,帮忙看看怎么改
- 用JAVA写一个类似QQ的P2P简单的信息交流软件
- 继承问题,谁能帮解释一下?
VB中我会实现的
java就不会了
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,放弃.