VC++6.0源码改成delphi源码,急呀!
原文如下我想把它改成delphi下远行那位给写出源码
笔者主要是采用了Windows API 函数,下面先对几个API函数简单的介绍一下:
FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName ):
查找指定类名和窗口名的窗口,返回一个窗口句柄。GetWindowText( HWND hWndLPTSTR lpString, int nMaxCount ):
获得窗口的文本,如果该窗口是对话框,则lpString返回它的标题。
FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass,
LPCTSTR lpszWindow ):
在指定的父窗口内查找第一个指定类名的子窗口,返回一个窗口句柄。
SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ):
发一个消息给指定窗口,直到消息被处理完才返回。
SendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam):
发一个消息给指定窗口。
有了设计思想后,再来选定一种程序语言。由于大部分语言都支持Windows API函数,所以选什么语言并不太重要,比如DELPHI,VC++,C++BUILDER,VB等都可以,笔者采用的是VC++6.0。
HWND a_window,b_window,f_window;
CFileException e;
char* pFileName ;
char pbuf[100];
memset(pbuf,0,100);
LPTSTR lpString;
CString filename=theApp.GetProfileString("Parameter","FileName","result.txt");//从配置文件中读取要填入对话框的文件名,也就是打印到文件的文件名
CString title=theApp.GetProfileString("Parameter","DialogName","打印到文件");//从配置文件中读取要输入文件名的对话框的标题,如果是英文软件就应该是”Print to file”
f_window=::FindWindow((LPCSTR)(DWORD)WC_DIALOG,title);//找到要输入文件名的对话框的窗口,获得它的句柄。
memset(pbuf,0,100);
:: (f_window,pbuf,15);
lpString=title.GetBuffer(15);
if(*lpString==*pbuf)
GetWindowText
{
pFileName=filename.GetBuffer(20);
CFile::Remove( pFileName );//如果已经有同名文件存在,则先删除。
filename.ReleaseBuffer();
//注意: CEdit和CButton 都是CWnd 的子类,所以都是窗口,也可以用::FindWindowEx查找得到。
a_window=::FindWindowEx(f_window,NULL,"Edit",NULL);//找到要输入文件名的编辑框。
lpString=filename.GetBuffer(15);
::SendMessage(a_window, WM_SETTEXT,NULL,(LPARAM)lpString);//模拟键盘输入文件名
b_window=::FindWindowEx(f_window,NULL,"Button",NULL);// 找到”确定”按扭
::SendNotifyMessage(b_window, WM_LBUTTONDOWN,MK_LBUTTON,NULL);//给”确定”按扭发送一个按下鼠标左键的消息
::SendNotifyMessage(b_window, WM_LBUTTONUP, NULL,NULL);// 再给”确定”按扭发送一个弹起鼠标左键的消息,第三个参数一定要是NULL,否则不成功。
}
title.ReleaseBuffer();
上述问题必须在delphi7下运行通过我需要原代码
[解决办法]
留个QQ。452330643。传你