| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:初学WINAPI抄了个程序HELLOWIN现在正常运行,我现在想把进程遍历程序放在HE ...
只看楼主 加入收藏
newsblue
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-5-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
初学WINAPI抄了个程序HELLOWIN现在正常运行,我现在想把进程遍历程序放在HELLOWIN里发现不会,怎么办
//modify base on hellowin.cpp
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>
LRESULT CALLBACK WndProc (HWND,UINT, WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,
    int iCmdShow)
{
    static TCHAR szAppName[] = TEXT ("hellowin");
    HWND hwnd;
    MSG msg;
    WNDCLASS   wndclass;
    wndclass.style   = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc  = WndProc;
    wndclass.cbClsExtra  = 0 ;
    wndclass.cbWndExtra = 0 ;
    wndclass.hInstance = hInstance;
    wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = szAppName;
    if(!RegisterClass(&wndclass))
    {
        MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);
return 0;
    }
    //RegisterClass(&wndclass);
    hwnd = CreateWindow(szAppName, //window class name
           TEXT("hellowin"),//window caption
           WS_OVERLAPPEDWINDOW,//window style
           CW_USEDEFAULT,//initial x position
           CW_USEDEFAULT,//initial y position
           CW_USEDEFAULT,//initial x size
           CW_USEDEFAULT,//initial y size
           NULL,//parent window handle
           NULL,//window menu handle
           hInstance,//program instance handle
           NULL);//creation parameters
    ShowWindow(hwnd,iCmdShow);
    UpdateWindow(hwnd);
    while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    switch(message)
    {
    case WM_CREATE:
        return 0;
    case WM_PAINT:
        hdc = BeginPaint(hwnd,&ps);
            GetClientRect(hwnd,&rect);
    DrawText (hdc,TEXT("win7hello!!!!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            EndPaint(hwnd,&ps);
        return 0 ;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd,message,wParam,lParam);}
以上是HELLOWIN
我想插入的代码是
PROCESSENTRY32 pe32;
 pe32.dwSize=sizeof(pe32);
 int count=0;
 HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 BOOL bMore=::Process32First(hProcessSnap,&pe32);
  while (bMore)
  {
   count++;
   //printf("\n%20S%10d\n",pe32.szExeFile,pe32.th32ProcessID);
  if(wcscmp(pe32.szExeFile,TEXT("smss.exe")) == 0)
  {
   //system("pause");
  }
   bMore=::Process32Next(hProcessSnap,&pe32);
  }
请问应该怎么改HELLOWIN,让 DRAWTEXT的“WIN7HELLO”变成“SMSS。EXE”
非常感谢
搜索更多相关主题的帖子: include modify 怎么办 
2013-05-29 12:00
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
封一个函数,吧你要插入的函数扔到这个自己封的函数里面去就行了,如果编译有错误, 看看错误是什么,如果有一般都是缺少包含某头文件之类的。#include进去就行了


我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-05-29 12:15
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:10 
你想插入这段代码,和你想实现的效果
请问应该怎么改HELLOWIN,让 DRAWTEXT的“WIN7HELLO”变成“SMSS。EXE”

感觉没有一致性。
你提供的那段插入代码是遍历进程的,如需要可以printf出来,但你获取进程后要做什么没有说明。
你想把DRAWTEXT的文本内容改变,可以考虑提供一个WM_LBUTTONDOWN消息,也就是当鼠标左键按下时就响应该事件,然后DRAWTEXT使显示文本改变就可以了。

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2013-05-29 12:23
快速回复:初学WINAPI抄了个程序HELLOWIN现在正常运行,我现在想把进程遍历程序放 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018370 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved