首页
社区
课程
招聘
[求助]一个简单程序求助
发表于: 2009-9-23 20:43 3578

[求助]一个简单程序求助

2009-9-23 20:43
3578
#include<windows.h>
#include<tlhelp32.h>
#include "E:\win\进程路径名例程\resource.h"
#define        MessageBoxW        MessageBox

BOOL CALLBACK MyDialogProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{

        DialogBox (hInstance, TEXT ("MyProcess"),  NULL, MyDialogProc);

        return 0;
}
BOOL CALLBACK MyDialogProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam)
{
        PROCESSENTRY32        PE;
        HANDLE        hSnshot;
        TCHAR        szBuffer[300];

        unsigned        int        EditCrt;
        PE.dwSize=sizeof(&PE);
        switch(message)
        {
        case        WM_INITDIALOG:
                return        TRUE;
        case        WM_COMMAND:
                switch(LOWORD(wParam))
                {
                case        IDOK:
                        EditCrt=GetDlgItemInt(hDlg,IDC_EDIT,NULL,FALSE);
                        HANDLE hSnshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,EditCrt);
                        Process32First(hSnshot,&PE);
                        if(PE.szExeFile==NULL)
                        {
                                MessageBox(NULL,TEXT("ERROR"),NULL,MB_OK);
                        }
               
                        strcpy(szBuffer,   PE.szExeFile);  
                        MessageBox(GetForegroundWindow(),szBuffer,TEXT("SUCCESS"),MB_OK);
                        CloseHandle(hSnshot);
                        return        TRUE;
       
                }
        }        
        return        FALSE;
       
}

我想请问为什么这段程序不能输出进程的文件名,,,,输出的是乱码

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
HANDLE hSnshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,EditCrt);
传个EditCrt进去做啥?

#define  MessageBoxW  MessageBox
这样特别定义一下,然后把ascii码存储的BUFFER按照UNICODE去解释,不乱才怪呢
2009-9-23 21:12
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我只是想通过ID获取进程的文件路径名,,哪位高手能指教一下
2009-9-23 21:13
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
#include<windows.h>
#include<tlhelp32.h>
#include "E:\win\进程路径名例程\resource.h"

BOOL CALLBACK MyDialogProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{

        DialogBox (hInstance, TEXT ("MyProcess"),  NULL, MyDialogProc);

        return 0;
}
BOOL CALLBACK MyDialogProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam)
{
        MODULEENTRY32        ME={sizeof(MODULEENTRY32)};

        unsigned        int        EditCrt;
        char        szBuffer[100]={0};
        HANDLE        hSnshot;

        switch(message)
        {
        case        WM_INITDIALOG:
                return        TRUE;
        case        WM_COMMAND:
                switch(LOWORD(wParam))
                {
                case        IDOK:
                        EditCrt=GetDlgItemInt(hDlg,IDC_EDIT,NULL,TRUE);
               
                        HANDLE        hSnshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, EditCrt);
                       
               
                        if(Module32First(hSnshot,&ME))
                                {
                                        MessageBox(NULL,ME.szExePath,NULL,MB_OK);
                                }
                        else
                        {
                                MessageBox(NULL,TEXT("Module32Fist is fail"),NULL,MB_OK);
                                return 0;
                        }
                       
                        CloseHandle(hSnshot);
                        return        TRUE;
       
                }
        }        
        return        FALSE;
       
}

已解决!!!!不过还是不知道原因,,,,,不过还是谢谢了………………
HANDLE hSnshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,EditCrt);
传个EditCrt进去做啥?
EditCrt是进程的ID,,,,,,,我是通过进程ID获取路径名………………

#define  MessageBoxW  MessageBox开始的时候没这行还是出错…………

我是写了很久了有点急才加上去的………………
2009-9-23 21:58
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
再看了一下自己的程序,,,大概知道了……………………多谢高手花时间指教菜鸟
2009-9-23 21:59
0
游客
登录 | 注册 方可回帖
返回
//