读书人

VC++6.0源码改成delphi源码呀!该怎

发布时间: 2013-01-25 15:55:29 作者: rapoo

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。传你

读书人网 >.NET

热点推荐