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

留言簿(1)

随笔分类(103)

随笔档案(110)

文章分类(25)

文章档案(28)

新闻档案(3)

友情连接

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

最新随笔

积分与排名

  • 积分 - 143648
  • 排名 - 44

最新评论

阅读排行榜

评论排行榜

新建工程,加两个label组件
uses shellapi
 uses shellapi;
{$R *.dfm}
procedure URLink(URL:PChar);//定义一个过程
begin
  ShellExecute(0, nil, URL, nil, nil, SW_NORMAL);
end;

procedure TForm1.FormCreate(Sender: TObject);//窗口初始化
begin
label1.Caption:='http://www.cnitblog.com/shuyezi122';
label2.Caption:='shuyezi122@163.com';
label1.Font.Color:=clblue;
label2.Font.Color:=clblue;
label1.Cursor:=crHandPoint;
label2.Cursor:=crHandPoint;
end;


procedure TForm1.Label1Click(Sender: TObject);
begin
URLink('http://www.cnitblog.com/shuyezi122');
end;

procedure TForm1.Label2Click(Sender: TObject);
begin
URLink('mailto:shuyezi122@163.com');
end;

procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
Label1.Font.Color:=clred;
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
Label1.Font.Color:=clblue;
end;

procedure TForm1.Label2MouseEnter(Sender: TObject);
begin
Label2.Font.Color:=clred;
end;

procedure TForm1.Label2MouseLeave(Sender: TObject);
begin
Label2.Font.Color:=clblue;
end;

end.
这些一看就明白了吧

posted @ 2009-01-21 03:25 小叶子 阅读(235) | 评论 (0)编辑 收藏

设置关闭按键不可用(存大,只是灰色)
var
     hm: HMENU;
   begin
     hm := GetSystemMenu(Handle, False);
     EnableMenuItem(hm, SC_CLOSE, MF_DISABLED or MF_GRAYED);
   end;
设置关闭按键不可用(右键后你发现  "关闭"  没了)
    var
      hm: HMENU;
    begin
      hm := GetSystemMenu(Handle, False);  // 这里的Handle就是要无效按钮的目标
      DeleteMenu(hm, SC_CLOSE, 0);
    end;
说下 DeleteMenu()中第二个参数
'禁止还原按钮
Success = DeleteMenu(hMenu, SC_RESTORE, 0)
'禁止改变大小
Success = DeleteMenu(hMenu, SC_SIZE, 0)
'禁止最大化
Success = DeleteMenu(hMenu, SC_MAXIMIZE, 0)
'禁止最小化
Success = DeleteMenu(hMenu, SC_MINIMIZE, 0)
'禁止关闭
Success = DeleteMenu(hMenu, SC_CLOSE, 0)
'禁止移动
Success = DeleteMenu(hMenu, SC_MOVE,0)


在主窗口加菜单(就是左键后出现最小(大)化,关闭那里)
var
  hSysMenu:HMENU;
begin

  hSysMenu:=GetSystemMenu(Handle,False);
  AppendMenu(hSysMenu,MF_separator,0,nil);//加一条线
   AppendMenu(hSysMenu,MF_STRING,0,'新菜单');

   end;
posted @ 2009-01-21 02:45 小叶子 阅读(447) | 评论 (0)编辑 收藏

procedure TForm1.Button1Click(Sender: TObject);
var
aCanvas:TCanvas;
 i:Tbitmap;
begin
aCanvas:=TCanvas.Create;
i:=tbitmap.Create;
i.LoadFromFile('c:\1.bmp');
    try
   aCanvas.Handle:=GetDC(0);//把桌面给acanvas
   aCanvas.Draw(480,300,i);

   finally
     aCanvas.Free;
    end;
end;

posted @ 2009-01-18 23:27 小叶子 阅读(454) | 评论 (0)编辑 收藏
 uses  UrlMon;
procedure TForm1.Button1Click(Sender: TObject);
begin
URLDownloadToFile(nil,'http://www.baidu.com/img/baidu_logo.gif',
'c:\12.txt',0,nil);
end;

图片文件都可以!
还可以对自己盘内实现复制
 uses  UrlMon;
procedure TForm1.Button1Click(Sender: TObject);
begin
URLDownloadToFile(nil,'f:\ceshi.txt','c:\12.txt',0,nil);
end;

HRESULT URLDownloadToFile(
LPUNKNOWN pCaller,
LPCSTR szURL,
LPCSTR szFileName,
DWORD dwReserved,
LPBINDSTATUSCALLBACK lpfnCB);
pCaller
仅当调用者是一个ActiveX对象才使用,对于一个非ActiveX对象的应用程序这个参数应该为NULL
szURL
为要下载的绝对URL 文件名,这个参数不能为空。
szFileName
包含创建的目标文件名
dwReserved
必须为零
lpfnCB
一个指向 IBindStatusCallback 接口的指针, IE通过它向你通知下载的进度


再说一种方法
 uses gifimage;//这里去网上下载

procedure TForm1.Button1Click(Sender: TObject);
var
  ms: TMemoryStream;
  pic: TGIFImage;
begin
ms:=tmemorystream.Create;
idhttp1.Get('http://www.baidu.com/img/baidu_logo.gif',ms);
ms.Position:=0;//移动指针到最开头的位置
if ms.Size=0 then//如果文件大小等于0,那么...
begin
showmessage('出错');
ms.Free;
Exit;
end;
pic:=tgifimage.Create;
pic.LoadFromStream(ms);
image1.Picture.Graphic:=pic;
ms.Free;
pic.Free;
end;

posted @ 2009-01-18 22:38 小叶子 阅读(447) | 评论 (0)编辑 收藏
Windows 规定 RCDATA 用作自定义格式, 我们也可以自定义格式名称, 譬如本例(rc 文件):
MyFile1 RCDATA "notepad.exe"


procedure TForm1.Button1Click(Sender: TObject);
var
  rs: TResourceStream;
begin
  rs := TResourceStream.Create(HInstance, 'MyFile1', RT_RCDATA);
  rs.SaveToFile('c:\temp\pad.exe');
  WinExec('c:\temp\pad.exe', 1);
  rs.Free;
end;


同样,dll文件也可以,如果做木马之类可用来释放木马
posted @ 2009-01-17 16:27 小叶子 阅读(574) | 评论 (0)编辑 收藏
rc文件:  mywav WAVE "F:\歌曲\17.wav"
添加到project1.exe中

注意:在uses加mmsystem,下面两种方法都加

方法1:
procedure TForm1.Button2Click(Sender: TObject);
  var
  hResInfo:THandle;
  PtrSound:pChar;
  hRes:THandle;
begin
  hResInfo:=FindResource(hinstance,'mywav','WAVE');//查找所需资源
  hRes:=LoadResource(HInstance,hResInfo);//把资源放到全局存储器中
  ptrSound:=LockResource(hRes);//锁到全局存储器中这个资源
  sndplaysound(ptrSound,snd_async   or   snd_Memory);//开始播放调用
end;


方法2:
procedure TForm1.Button1Click(Sender: TObject);
var
  rs: TResourceStream;
begin
  rs := TResourceStream.Create(HInstance, 'mywav', 'WAVE');

  sndPlaySound(rs.Memory, SND_ASYNC or SND_MEMORY);
  //上面那句可用下句代替
  //PlaySound(rs.Memory, HInstance, SND_ASYNC or SND_MEMORY);

  rs.Free;
end;




上面两种方法中关于API简介
FindResource()
函数功能:该函数确定指定模块中指定类型和名称的资源所在位置
函数原型:HRSRC FindResource(HMODULE hModule,LPCTSTR lpName,LPCTSTR lpType);
hModule:处理包含资源的可执行文件的模块,用HInstance就是指在本程序中找资源
lpName:指定资源名称
lpType:指定资源类型
 应用程序可以使用FindResource函数去查找任何种类资源,但是这个函数只有在应用程序并发调用LoadLibray和LockResource函数来存取二进制资源时才被使用,所以下面用到了LockResource()
关于更多请自己查找资料

LockResource()
函数功能:该函数锁定内存中的指定资源,说白了就是返回资源在内存中的地址
LPVOID LockResource(HGLOBAL hResDate);
hResDate:被装载的资源的句柄。函数LoadResource可以返回这个句柄
所以又用到了函数:LoadResource()

LoadResource()
函数功能:该函数装载指定资源到全局存储器
hModule:处理包合资源的可执行文件的模块句柄,hinstance就是指程序自身刚初始化时
hReslnfo:将被装载资源的句柄,由FindResource()得到的句柄

PlaySound()   sndPlaySound()
bool PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音.fdwSound是标志的组合(更多请查查关资料),只说下snd_async or snd_Memory or SND_LOOP
snd_async用异步方式播放声音,PlaySound函数在开始播放后立即返回,如果没有程序会卡住
snd_Memory播放载入到内存中的声音,此时pszSound是指向声音数据的指针,如果没有声音就不能播放
snd_loop 重复播放声音,必须与snd_async一块使用,如果不一起那么就不会重复播放声音
中间参数hmod,是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL,所以可是hinstance,也可是数字0
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。函数的声明为
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);


TResourceStream  资源流
TResourceStream.Create(Instance: THandle; const ResName: string; ResType: PChar); 可以把指定的资源读入Tresourcestream的实例对应的内存中
   第一个参数指定一个包含有资源数据的可执行文件或者dll文件的实例句柄   
   第二个参数用于说明所需调入的资源在.RC文件中的名字或者数字ID,由于参数类型是string,   
   所以如果用数字ID来说明的话,就在数字前面加#。而且用数字比用字符所需要的内存要少
  第三个参数指定资源类型
posted @ 2009-01-15 22:31 小叶子 阅读(1975) | 评论 (0)编辑 收藏
几乎每一个提取资源的例子都用到了 HInstance, 做个对比测试:

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=inttostr(hinstance);
edit2.Text:=inttostr(application.Handle);
edit3.text:=inttostr(self.Handle);
end;

你会发现hinstance=4194304
4194304=X400000
电脑让用户使用的内存是在X400000开始的,也就是说HINSTANCE是初始化的的句柄4194304
posted @ 2009-01-15 22:16 小叶子 阅读(1084) | 评论 (0)编辑 收藏
你想使用系统的cur,只要用(-1..-22)就可
procedure TForm1.FormCreate(Sender: TObject);
begin
 form1.cursor:=-4;//1-到-22可自己试用下
end;



下面说cur文件使用

*.cur文件你可以自己做,也要在自己电脑上找一些
先编辑rc文件:att cursor "attack.cur"
再加到project1.exe中

procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[1] := LoadCursor(HInstance, 'att');//这是如果是2,下面就是2Cursors[2] form1.cursor:=1;//这里是2  cursor:=2
end;


posted @ 2009-01-15 21:52 小叶子 阅读(396) | 评论 (0)编辑 收藏
如果上节说的一样(delphi资源文件调用 - ICO)

首先编辑 rc 文件  1hao bitmap "12.bmp"
窗体上添加一个 Image、 Button

procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Picture.Bitmap.Handle:=loadbitmap(hinstance,'1hao');
end;

只是调用函数不同而已
posted @ 2009-01-15 19:19 小叶子 阅读(513) | 评论 (0)编辑 收藏

1.新建:application工程文件,然后保存在桌面ceshi文件夹内
2.在ceshi文件夹内新建记事本,并写入:      1hao icon "xin.ico",重名命为:ceshi.rc
3.delphi中按:ctrl+alt+F11  打开project manager 右键点击projcet1.exe,选择add...     在这里加上ceshi.rc
        说明:你可以打开:project->view source查看,已经加上了:{$R 'ceshi.res' 'ceshi.rc'}
4.在工程文件上加上三个button按钮,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
Icon.Handle:=loadicon(hinstance,'1hao');//截入你的xin.ico
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Icon.Handle:=loadicon(hinstance,'mainico');//mainico换成nil也可,这是系统默认图标
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 Application.Icon:=nil;//不使用图标(会显示 Windows 系统的默认图标)
end;



HInstance 当前程序实例的句柄, 调用资源文件一定要用到它;
ico1 是资源文件的标识符;
LoadIcon 是个 API 函数, 专门用于调用资源中的 ico 文件, 它返回的是指定 ico 文件的句柄.

posted @ 2009-01-15 19:08 小叶子 阅读(914) | 评论 (0)编辑 收藏
仅列出标题
共11页: First 3 4 5 6 7 8 9 10 11 

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