标题:获取窗口标题后面自动生成了好多乱码,不明白啊
只看楼主
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
 问题点数:0 回复次数:5 
获取窗口标题后面自动生成了好多乱码,不明白啊

是这样的,我用这个程序获取窗口标题,获取的倒是很正确,就是不知道为什么,
标题后面老自动生成了许多乱码,一起都写在文本里面了,这是咋回事情呢
请大家给修改一下把,谢谢拉
#include <windows.h>
#define ID_TIMER 1

LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

char szClassName[ ] = "WindowsApp";

int WINAPI
WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;

wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);

wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;

wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

if (!RegisterClassEx (&wincl))
return 0;

hwnd = CreateWindowEx (
0,
szClassName,
"Windows App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);

ShowWindow (hwnd,nFunsterStil);


while (GetMessage (&messages, NULL, 0, 0))
{

TranslateMessage(&messages);

DispatchMessage(&messages);
}

return messages.wParam;
}

LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hw;
LONG hh;
TCHAR s;
HANDLE d;
TCHAR aa[200];
DWORD dd;
switch (message)
{
case WM_CREATE:
SetTimer(hwnd, ID_TIMER, 10000, NULL);
return 0;
case WM_TIMER:
hw=GetForegroundWindow();
hh=GetWindowText(hw,aa,200);
d=CreateFile("c:\\kk.txt",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);

WriteFile(d,aa,sizeof(aa),&dd,NULL);
CloseHandle(d);
return 0;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

搜索更多相关主题的帖子: 窗口标题 乱码 windows 获取 自动 
2006-04-14 10:33
Sun_DN
Rank: 1
来 自:NEU
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-5
得分:0 
是不是TCHAR aa[200]有问题呀?长度太长,导致后面的部分没有填满,结果显示的时候就是乱码。改成string类型或字符指针怎么样?

人不己知,而不愠,不亦君子乎?
2006-04-14 14:00
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
得分:0 
不知道呢,改成string类型或字符指针。可我不会改啊

2006-04-14 14:35
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

非常低级的错误
WriteFile(d,aa,sizeof(aa),&dd,NULL);

学编程,莫急燥,重基础,勿贪进。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-14 18:45
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
得分:0 
我隐隐约约感觉到错在哪里了,尽管我好象还不会修改,
不过我试试改着好了
非常感谢您。斑竹


2006-04-14 19:50
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
得分:0 
斑竹老大,你能不能帮我改改啊,我研究了半天,
,您就给指点一下把
WriteFile(d,aa,hh,&hh,NULL);
这是我改的,能正确写文件,不会出现乱码,但它的第4个参数&hh我
还是觉得不对劲,因该不是这样,可我就是不知道该如何修改,斑竹就给指点一下把

[此贴子已经被作者于2006-4-14 22:54:00编辑过]


2006-04-14 21:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57412-1-1.html




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

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