首页
社区
课程
招聘
[旧帖] [分享]SendMessage在结束进程上的使用--在线刷kx的工具 0.00雪花
发表于: 2010-10-31 22:16 6165

[旧帖] [分享]SendMessage在结束进程上的使用--在线刷kx的工具 0.00雪花

2010-10-31 22:16
6165

      最近在看雪论坛注册了一个账号,需要100kx才能转为正式会员,故想编写一个可以在线刷kx的工具。

    思路就是第一次运行程序的时候显示bbs主页,然后手动登陆论坛(其实可以用Au3实现自动登陆),然后每个指定时间(我设置为6分钟)再次访问论坛就可以了。

    主要练习delphi控制台程序,一是如何调用外部程序,二是如何结束指定程序。

    关于调用外部程序,无非就是ShellExecute或WinExec,我选的后者,因为参数少,简单些,不过貌似前者是现在的主流,而且可以直接访问网站。

    关于结束进程,上网查了很多资料,比较多的方法是用正统的terminateprocess但使用起来比较麻烦,偶然发现有人说SendMessage也可以,就关注了一下后者。

    没想到用SendMessage非常简便,所以就用它了。下面是源码:有不足之处希望批评指正!另外我的系统是Win7 32旗舰版 IE8.0

program Refresh;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Messages,
  WinProcs;
var
IsFirstRun,ErrorOccur:Boolean;


const UrlKanXue='C:\Program Files\Internet Explorer\IEXPLORE.EXE http://bbs.pediy.com/';
const SleepTime=360000;//360000;//6分钟
begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    while not ErrorOccur do
    begin
      if not IsFirstRun then
      begin
        IsFirstRun:=True;
        if WinExec(PAnsiChar(UrlKanXue),SW_NORMAL)>31 then //第一次运行时先访问主页,登陆一下。
        begin
          Writeln(FormatDateTime('hh:mm:ss',GetTime)+' 成功访问主页');
          Sleep(SleepTime);
          SendMessage(FindWindow('IEFrame','看雪软件安全论坛 - www.pediy.com - Windows Internet Explorer'),WM_CLOSE,0,0);
        end
        else
        ErrorOccur:=True;
      end
      else
      begin
        if WinExec(PAnsiChar(UrlKanXue),SW_HIDE)>31 then
        begin
          Writeln(FormatDateTime('hh:mm:ss',GetTime)+' 成功刷新页面');
          Sleep(SleepTime);
          SendMessage(FindWindow('IEFrame','看雪软件安全论坛 - www.pediy.com - Windows Internet Explorer'),WM_CLOSE,0,0);
        end
        else
        ErrorOccur:=True;
      end
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 247
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好东西,充分利用每一个机会发现问题再用编程方式解决,这才是计算机爱好者的标准状态。谢谢楼主,我是编程菜鸟,有空看看能不能用这个例子用其他语言实现这个功能。
2010-10-31 22:34
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上太牛了!佩服佩服
2010-10-31 22:34
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢你的提点。
2010-10-31 22:41
0
雪    币: 258
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
过奖了,我也是初学者
共同学习共同提高!
2010-10-31 23:17
0
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
论坛好多这种功能的小东西
2010-11-1 08:33
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你知道赚论坛币不容易的。。。下载ing.....icon9
2010-11-1 14:39
0
雪    币: 51
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
赚钱太难了,,,,还不到一半
2010-11-1 14:48
0
雪    币: 275
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
我勒个去的 还以为是c 的 汗死 怎么很多非主流的东东~
2010-11-1 14:57
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果是C的就好了 。 呵呵
2010-11-1 15:04
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
路过,瞧瞧!!
2010-11-1 16:00
0
雪    币: 486
活跃值: (210)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我一般也是用delphi
不过控制台只用过一次
不过老是创建进程有点浪费资源喽,建议楼主用idhttp的get和Post,也很方便。
(但不知道控制台可不可以创建idhttp)

PS:要是只想刷Kx的话可以找一个像遨游之类的带自动刷新功能的浏览器就行了。
2010-11-2 10:04
0
雪    币: 258
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
嗯,其实这个程序用Au3很容易做,换delphi练练手。谢谢您的建议,我去学一下delphi的IE控制类~~!
2010-11-2 13:04
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
呵呵,这个好啊.可以赚论坛上的kx.而快速可以成为正式会员了.
2011-7-21 12:21
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
没KX的路过,急需!
2011-7-21 12:43
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
有时间我也用AU3试刷下。^_^
2012-3-22 12:48
0
雪    币: 29
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不错不错,感谢楼主~
2012-3-25 15:42
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
对我们这些菜鸟来说,kx来之不易呀。
2012-3-25 16:04
0
游客
登录 | 注册 方可回帖
返回
//