首页
社区
课程
招聘
[旧帖] 有进程无界面的问题 0.00雪花
发表于: 2011-12-23 22:35 6645

[旧帖] 有进程无界面的问题 0.00雪花

2011-12-23 22:35
6645
晚上运行一个程序,开了一个影音转换工具并最小化到托盘。然后过了一会发现托盘图标不见了,但是进程还在。。

问题是 ,有办法通过进程调出界面来么?

谢啦。。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最有可能是隐藏啦 看看程序运行面有没
2011-12-24 00:17
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
程序可能发生了未知错误,也可能自己隐藏了进程。
2011-12-27 08:21
0
雪    币: 68
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可以的,给你个提示,可以打开这个进程来得到这个进程的ID1,然后在枚举一下所有的窗口,然后在根据窗口得到进程ID2, 最后进行比对进程ID1和进程ID2就可以调出窗口了

这是我以前写过的代码,大概是这么个意思,有点不一样的是我创建了个进程快照,来得到进程ID1,其他的跟刚才说的差不多
DWORD GetProId(CString ProctName)
{
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
        if (hSnapshot == INVALID_HANDLE_VALUE)
                return NULL;

        PROCESSENTRY32 ProcessInfo;
        ProcessInfo.dwSize = sizeof(PROCESSENTRY32);
        Process32First(hSnapshot,&ProcessInfo);
        while (Process32Next(hSnapshot,&ProcessInfo) != FALSE){
                if(ProctName == ProcessInfo.szExeFile)
                        return ProcessInfo.th32ProcessID;
        }

        return -1;
}

HWND hwndidf;

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
        PIDENTIFICATION pIdf = (PIDENTIFICATION)lParam;
        DWORD ProcessId;
        GetWindowThreadProcessId(hwnd,&ProcessId);
       
        if(ProcessId == pIdf->ProcessId)
        {
                HANDLE hHandle = GetProp(hwnd,pIdf->TargetPath);
                if(hHandle == pIdf->hHandle)
                {
                        hwndidf = hwnd;
                        return FALSE;
                }

        }
        return TRUE;
}

BOOL SetHwndIdf(PIDENTIFICATION pIdf)
{
        EnumWindows(EnumWindowsProc,(LPARAM)pIdf);
        return TRUE;
}
2011-12-27 09:37
0
雪    币: 2210
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
在任务管理器的应用程序页签有没有该程序?
有的话,可以右键--切换至,就可以将其激活到顶层
2011-12-27 10:40
0
游客
登录 | 注册 方可回帖
返回
//