关于Windows API控制的几个小问题,请各位师兄来指点一下小弟..(200分)

  • 主题发起人 主题发起人 菜鸟黄
  • 开始时间 开始时间

菜鸟黄

Unregistered / Unconfirmed
GUEST, unregistred user!
1、获取任务栏尺寸<br>2、获取CPU信息<br>3、获取内存信息<br>4、获取磁盘空间大小<br>5、限制鼠标范围<br>6、检测驱动器是否准备就绪<br>最好可以有完整的实现代码。<br>可以选答,全答出来就更好。人多可以再开贴给分。。。我现在的分是500可以全给出来。
 
获取磁盘大小:DiskSize 磁盘大小 &nbsp;DiskFree 磁盘自由空间 。
 
var<br> r : TRect;<br>SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0); &nbsp;//得到工作区<br>Screen.Height -(r.Bottom-r.Top ) 即任务栏的高度,宽度你应该自己会算。<br>下面的问题一部分可以参见我的笔记:<br>http://www.delphibbs.com/keylife/iblog_show.asp?xid=20097
 
不要把一些还不知道能不能实现的代码从其它地方COPY一大堆进来,最好可以经过检测过可以实现的.:)
 
to zbr<br>可以写得完整一点吗?
 
限制鼠标范围:<br>var <br> &nbsp;myRect:TRect;<br>begin<br>myrect.left:=100;<br>myrect.right:=200;<br>myrect.top:=100;<br>myrect.bottom:=200;<br>clipcursor(@myrect);<br>end;
 
to happycyp我看资料找到这个~但我不知道怎样用<br>三、获取任务栏尺寸及位置<br>用FindWindow找到句柄,再用GetWindowRect获取当前任务栏尺寸大小。<br>GetWindowRect(HWND hWnd,    //所求窗口的句柄<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPRECT lpRect   //存储窗口坐标的结构体的地址<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ):Boolean;
 
to happycyp最好把解除限制鼠标的也写一下吧~谢谢
 
//得到任务栏的高度,宽度和位置你可以自己写<br>procedure TForm1.Button2Click(Sender: TObject);<br>var<br> r : TRect;<br> h : HWND;<br>begin<br> h := FindWindow('Shell_TrayWnd', nil);<br> GetWindowRect(h,r);<br> Showmessage('任务栏高度:'+IntToStr(r.Bottom-r.Top));<br>end;<br>//---------------解除锁定<br>procedure TForm1.Button2Click(Sender: TObject);<br>var<br>rtScreen: TRect;<br>begin<br>rtScreen := Rect(0, 0, Screen.Width, Screen.Height);<br>ClipCursor(@rtScreen);<br>end;
 
to happycyp非常谢谢师兄~[:)]
 
to happycyp你有QQ号吗~我的是38993286~我们有时间多多交流
 
15800902,这是我的QQ群。
 
好的~其它的问题~不知还会不会呢?
 
前面不是说了吗?<br>参见我的笔记:<br>http://www.delphibbs.com/keylife/iblog_show.asp?xid=20097<br>里面有你想要的东东。
 
好的~我先去看看~
 
procedure TForm1.Button1Click(Sender: TObject);<br>var<br> &nbsp;DriveSize: Int64;<br> &nbsp;FreeSize: Int64;<br>begin<br> &nbsp;DriveSize:= DiskSize(0);//当前磁盘<br> &nbsp;DriveSize:= DiskSize(1);//A盘 ,1位B盘,依次类推<br> &nbsp;FreeSize:= DiskFree(0);//参数含义同上<br>end;
 
to zbr谢谢师兄的帮忙
 
to happycyp你的笔记中的获取C盘可用空间不行~跟实际差好远可以帮我完善一下吗?
 
to happycyp你笔记中的获取内存信息也不准~你试下我这个吧:<br>procedure TForm1.Button8Click(Sender: TObject);<br>var<br> &nbsp;sector,byte,cluster,free: DWORD;<br> &nbsp;freespace,totalspace: longint;<br>begin<br> &nbsp;GetDiskFreeSpace('C:', LPDWORD(@sector)^, LPDWORD(@byte)^, LPDWORD(@free)^, LPDWORD(@cluster)^); //获得返回参数<br> &nbsp;totalspace := cluster * byte * sector div 1024 div 1024; //计算总容量<br> &nbsp;freespace := free * byte * sector div 1024 div 1024; //计算可用空间<br> &nbsp;Memo1.Lines.Add('C盘总空间(' + inttostr(integer(totalspace)) + 'MB)。');<br> &nbsp;Memo1.Lines.Add('C盘可用空间(' + inttostr(integer(freespace)) + 'MB)。');<br>end;
 
后退
顶部