随笔 - 110  文章 - 28 评论 - 26 

留言簿(1)

随笔分类(103)

随笔档案(110)

文章分类(25)

文章档案(28)

新闻档案(3)

友情连接

  • 小蜜蜂
  • 马氏膏药网
  • 淋巴结肿大,淋巴结核,淋巴结炎 乳腺增生,小叶增生 颈椎病,腰椎病,腰间盘突出 马氏淋巴消炎贴,马氏增生散结贴,马氏关节肌肉贴
  • 黑客基地
  • 全球最大的黑客门户网站

最新随笔

积分与排名

  • 积分 - 143648
  • 排名 - 44

最新评论

阅读排行榜

评论排行榜

1.汇编指令  机器码的助记符,有着对应的机器码
2.伪指令     没有对应机器码,编译器执行,电脑不会执行
3.其它符号  如+ - * /等,编译器识别,无对应机器码
posted @ 2009-02-28 03:22 小叶子 阅读(313) | 评论 (0)编辑 收藏
今天下了一本王爽的汇编语言,PDF书
也许了解一下汇编对学DELPHI更有帮助

如你自己有兴趣,也下载一本吧

经过几天学习,发现这本书真的不错
所以么,我也给大家一个下载地址
由于这本书的PDF太大,博客里放不开,我就传到了网盘上让大家下载
书和答案全有,不过答案感觉有的一些错了,自己找错不是更好的提高么,呵呵.

王爽汇编语言下载

答案下载

posted @ 2009-02-20 16:19 小叶子 阅读(501) | 评论 (0)编辑 收藏

工程中加:
  Memo1: TMemo;
    Button1: TButton;两个
在uses中加入wininet,windows;

implementation

{$R *.dfm}

function GetWebPage(const Url: string):string;
var
Session,
HttpFile:HINTERNET;
szSizeBuffer:Pointer;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwFileSize:DWord;
dwBytesRead:DWord;
Contents:PChar;
begin
Session:=InternetOpen('',0,niL,niL,0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer:=1024;
HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
GetMem(Contents,dwFileSize);
InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result:=StrPas(Contents);
form1.Memo1.Lines.Add(Contents);
FreeMem(Contents);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   GetWebPage(pchar('http://www.baidu.com'));

end;

posted @ 2009-02-09 03:36 小叶子 阅读(1374) | 评论 (2)编辑 收藏
FindWindow(
  lpClassName,        {窗口的类名}
  lpWindowName: PChar {窗口的标题}
): HWND;              {返回窗口的句柄; 失败返回 0}

FindWindowEx(
  Parent: HWND;     {要查找子窗口的父窗口句柄}
  Child: HWND;      {子窗口句柄}
  ClassName: PChar; {}
  WindowName: PChar {}
): HWND;

GetClassName(
  hWnd: HWND;         {指定窗口句柄}
  lpClassName: PChar; {缓冲区}
  nMaxCount: Integer  {缓冲区大小}
): Integer;           {返回类名大小; 失败返回 0}获取指定窗口的类名

GetNextWindow(
  hWnd: HWND; {指定的窗口句柄}
  uCmd: UINT  {指定的关系选项}
): HWND;      {失败返回0; 成功返回符合的窗口句柄}
//uCmd 可选值:
GW_HWNDNEXT  = 2; {同级别 Z 序之下}
GW_HWNDPREV  = 3; {同级别 Z 序之上}获取指定窗口Z上或Z下的窗口的句柄

GetTopWindow(
  hWnd: HWND; {指定的窗口句柄}
): HWND;      {失败返回0; 成功返回最顶层的子窗口句柄}获取指定窗口的子窗口中最顶层的窗口句柄

GetWindow(
  hWnd: HWND; {指定的窗口句柄}
  uCmd: UINT  {指定的关系选项}
): HWND;      {失败返回0; 成功返回符合的窗口句柄}

//uCmd 可选值:
GW_HWNDFIRST = 0; {同级别第一个}
GW_HWNDLAST  = 1; {同级别最后一个}
GW_HWNDNEXT  = 2; {同级别下一个}
GW_HWNDPREV  = 3; {同级别上一个}
GW_OWNER     = 4; {属主窗口}
GW_CHILD     = 5; {子窗口}获取与指定窗口具有指定关系的窗口的句柄

GetForegroundWindow: HWND;
 获取前台窗口的句柄

GetWindowTextLength(
  hWnd: HWND {窗口句柄}
): Integer;  {返回窗口标题长度} 获取窗口标题长度

GetWindowText(
  hWnd: HWND;       
{窗口句柄}
  lpString: PChar;   {接收文本的缓冲区的指针}
  nMaxCount: Integer {指定缓冲区大小, 其中包含NULL字符; 如果文本超出,会被被截断}
): Integer;          {返回字符个数, 不包括中断的空字符; 如果标题为空或句柄无效, 则返回零}
 获取窗口标题

SetWindowText(
  hWnd: HWND;     {窗口句柄}
  lpString: PChar {新标题串指针}
): BOOL;设置窗口标题

GetDesktopWindow: HWND; {无参数; 返回桌面窗口的句柄}



posted @ 2009-02-08 21:28 小叶子 阅读(2295) | 评论 (0)编辑 收藏
getparent(子窗口句柄)    得到父窗口句柄
posted @ 2009-02-05 21:39 小叶子 阅读(1743) | 评论 (0)编辑 收藏
procedure TForm1.Button1Click(Sender: TObject);
begin
 keybd_event(VK_LWIN, 0, 0 ,0);
    keybd_event(byte('M'), 0, 0 ,0);
    keybd_event(byte('M'), 0, KEYEVENTF_KEYUP ,0);
    keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0);
end;//显示桌面
posted @ 2009-02-05 02:51 小叶子 阅读(1808) | 评论 (0)编辑 收藏
只用  mouse_event就可以
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
  mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
end;//这样就是单击



procedure TForm1.Timer1Timer(Sender: TObject);
begin
  mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
  mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
  mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
  mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
end;//这样就是双击了!
posted @ 2009-02-05 02:30 小叶子 阅读(615) | 评论 (0)编辑 收藏

SendMessage(thandle,wm_settext, 0, lParam(pChar('5555')));已经不行了


SendMessage(thandle,EM_REPLACESEL, 0, lParam(pChar('5555')));

对于QQ2008还是可以的
posted @ 2009-02-04 23:38 小叶子 阅读(501) | 评论 (0)编辑 收藏
学了一断时间,你会发现数据类型很重要,特别是在你分析delphi源码时
现在在细细回顾一下
a、 整数类型:       (通用类型<32位>:Integer-有符号;Cardinal-无符号)
         有符号:Shortint<8位>,Smallint<16位>,Longint<32位 >
         无符号:Byte<8位>,Word<16位>,LongWord<32位 >
有符号,最高位用1表示(-)
示例说明下:有符号:shortint(8位)  最小值 1111,1111(-127 ) 最大值  :0111,1111(127)//最高位不是数,是+ - 号
                     无符号:  Byte<8位>,也就是从0到1111,1111(255)   //showmessage(inttostr(maxbyte))->255
       8位一个字节,一个字节8个二进数组成
   var
  b:byte;
  l:longint;
begin
showmessage(inttostr(sizeof(b)));//结果:1
showmessage(inttostr(sizeof(l)));//结果:4
end;
longint就是常用的integer;
而cardinal就是LongWord;

 b、字符类型:         (通用类型<8位>:Char -与AnsiChar等同)
            AnsiChar<8位> :主要存放Ansi字符
            WideChar<16位>:主要存放Unicode字符
常用的char就是指 AnsiChar<8位>

var
i:widechar;
begin
showmessage(inttostr(length(i)));//结果:1
showmessage(inttostr(sizeof(i)));//结果:2,说明占用两个字节内存
end;

c、  字符串类型
           ShortString :最多存放255个字符,第一个自己存放字符个数,不以NULL结尾
           AnsiString :存放Ansi字符,以NULL结尾(也是string)
          WideString:存放Unicode字符,以NULL结尾
var
ss:string;
s:shortstring;
begin
edit1.Text:=inttostr(sizeof(ss));//   4
edit2.Text:=inttostr(length(ss));//  0   大小为4,说明分了4个字节内存,长度为0说明用时自动分配
edit3.Text:=inttostr(sizeof(s));//   255
edit4.Text:=inttostr(length(s));//  4     已经分配了大小长度,固定了
end;


如果你给shortstring一个值
s:='(这里面有256个)';
你运行就提示错误,并提示只能放255个
posted @ 2009-02-03 16:47 小叶子 阅读(1612) | 评论 (0)编辑 收藏

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,nb30;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
Var
  NCB : TNCB;
  ADAPTER : TADAPTERSTATUS;
  LANAENUM : TLANAENUM;
  intIdx : Integer;
  re : Char;
  buf : String;
begin
  Try
    // Reset adapter
    ZeroMemory(@NCB, SizeOf(NCB));
    NCB.ncb_command := Chr(NCBRESET);
    NCB.ncb_lana_num := LANAENUM.lana[0];//important
    re := NetBios(@NCB);
    If Ord(re)<>0 Then
      exit;

    // Get adapter address
    ZeroMemory(@NCB, SizeOf(NCB));
    NCB.ncb_command := Chr(NCBASTAT);
    NCB.ncb_lana_num := LANAENUM.lana[0];////bowman
    StrPCopy(NCB.ncb_callname, '*');
    NCB.ncb_buffer := @ADAPTER;
    NCB.ncb_length := SizeOf(ADAPTER);
    re := NetBios(@NCB);
    If Ord(re)<>0 Then
      exit;

    buf := '';
    For intIdx := 0 To 5 Do
      buf := buf + InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2)+'-';
    edit1.Text := copy(buf,0,length(buf)-1);
  Finally
  End;

end;

end.

posted @ 2009-02-03 00:53 小叶子 阅读(762) | 评论 (1)编辑 收藏
仅列出标题
共11页: 1 2 3 4 5 6 7 8 9 Last 

笔记和文章,可能抄袭,只为学习,请原谅