取金山词霸词库的程序

这是我学C++的时候写的 当时没贴出来怕影响不好 现在看来是想错了 呵呵 供大家参考参考 有点小问题 忘高手点拨 不明白 为什么 每几十条记录就重复3条2条4条不等 不报错

代码如下:

 

#include <iostream.h>
#include <windows.h>
#include <winuser.h>
#include <stdio.h>


void main()
{
 char name[256] = "金山词霸 2005(暂停取词)(总在最上)";
 //GLOBALHANDLE hGlobal;  //GLOBALHANDLE型态的变量 <-全局句柄变量
 char *pText,*pGlobal;
 HGLOBAL hGlobal ;

 bool bl=true;    //控制循环
 FILE *fp;
 int i=0;
 //int i=0;

 //获得金山词霸句柄
 HWND h = FindWindow(0,name);

 //获得文本框句柄
 HWND hEdit = FindWindowEx(h,NULL,"ComboBox",NULL);
 HWND OKhEdit=FindWindowEx(h,hEdit,"ComboBox",NULL);

 //获得左边树型句柄
 HWND viewhEdit=FindWindowEx(h,NULL,"SysListView32",NULL);

 SendMessage(OKhEdit,WM_GETTEXT,'a',0);

 fp=fopen("data.txt","w+");

 while(true)
 {
  PostMessage(h,WM_COMMAND,32791,0);   //发送CTRL+A OK
  Sleep(1);
  PostMessage(h,WM_COMMAND,32775,0);   //发送CTRL+C OK
  Sleep(1);

  OpenClipboard(h);

  #ifdef UNICODE  //是否unicode编码
                  hGlobal = GetClipboardData(CF_UNICODETEXT);
  #else
                  hGlobal = GetClipboardData(CF_TEXT);
  #endif

  pGlobal=(char *)GlobalLock(hGlobal);
  pText=(char *)malloc(GlobalSize(hGlobal));//获得内存块大小的函数
  lstrcpy(pText,pGlobal);//为什么用lstrcpy就不出现内存只读的现象
  GlobalUnlock(hGlobal);//解除锁定
  
  CloseClipboard();
  //输出到文本
  fprintf(fp,"%s/n/n/n",pText);
  fflush(fp);
  //释放内存
  free(pText);
  pText=NULL;

  
  

  /*++i;
  if(i==100)
   break;*/
  //Sleep(1);
  PostMessage(viewhEdit,WM_KEYDOWN,VK_DOWN,0); 
 }
 fclose(fp);
}
/* 以下代码是获得剪切板的数据
 GLOBALHANDLE hGlobal;       //GLOBALHANDLE型态的变量 <-全局句柄变量
 char *pText,*pGlobal;

 OpenClipboard(h);        //打开剪切板
 //EmptyClipboard();        //清空剪切板
 hGlobal=GetClipboardData(CF_TEXT);    //获得剪切板句柄
 pText=(char *)malloc(GlobalSize(hGlobal));  //配置一块与剪贴簿数据块大小相同的内存块,并配置一个指向该块的指标
 pGlobal=(char *)GlobalLock(hGlobal);   //此函数将句柄转换为指标
 strcpy(pText,pGlobal);       //复制到目标
 cout<<pText<<endl;
 CloseClipboard();        //关闭剪切板
*/


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值