老K交代的任务~

本文来自: UPK软件安全社区 作者: 黑夜彩虹 日期: 2009-12-8 21:16 阅读: 536 收藏
老K交代的任务完成不了,接受BS~,下面放出已完成部份的源码...,哪位大大继续搞
  1. unit Unit_main;

  2. interface

  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls,ShellAPI,Registry,ShlObj,CommCtrl,ComObj;

  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     Button2: TButton;
  10.     Button3: TButton;
  11.     Button4: TButton;
  12.     Button5: TButton;
  13.     Button6: TButton;
  14.     Button7: TButton;
  15.     procedure Button1Click(Sender: TObject);
  16.     procedure Button2Click(Sender: TObject);
  17.     procedure Button3Click(Sender: TObject);
  18.     procedure Button4Click(Sender: TObject);
  19.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  20.     procedure Button5Click(Sender: TObject);
  21.     procedure Button6Click(Sender: TObject);
  22.     procedure Button7Click(Sender: TObject);
  23.   private
  24.     { Private declarations }
  25.   public
  26.      { Public declarations }
  27.   end;



  28. var
  29.   Form1: TForm1;
  30.    Wnd:array[0..4] of THandle;
  31. implementation

  32. {$R *.dfm}


  33. function   IsTaskbarAutoHideOn   :   Boolean; //判断是否自动隐藏
  34.   var
  35.       ABData   :   TAppBarData;
  36.   begin   
  37.       ABData.cbSize   :=   SizeOf   (ABData);
  38.       result   :=   (SHAppBarMessage   (ABM_GETSTATE,   ABData)   and   ABS_AUTOHIDE)   >   0   
  39.   end;

  40. procedure LockTaskbar(Lock: Boolean);   //锁任务栏
  41. Var
  42.   Reg:TRegistry;
  43. Begin
  44.   Reg:=TRegistry.Create;
  45.   try
  46.     Reg.RootKey := HKEY_LOCAL_MACHINE;
  47.     if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', True) then
  48.     begin
  49.       if Lock then
  50.         Reg.WriteInteger('TaskBarSizeMove',0) //锁
  51.       else
  52.         Reg.WriteInteger('TaskBarSizeMove',1); //解
  53.       Reg.CloseKey;
  54.     end;
  55.   except
  56.     Reg.Free;
  57.   end;
  58.   SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST+SHCNF_FLUSH,nil,nil);
  59. end;

  60. procedure GetHandles;   //得到任务栏句柄
  61. begin
  62. //得到Tray Bar的窗口句柄;
  63. Wnd[0]:=FindWindow('ShellTrayWnd',nil);

  64. //得到开始按钮的窗口句柄;

  65. Wnd[1]:=FindWindow('Shell_TrayWnd',nil);

  66. Wnd[1]:=FindWindowEx(Wnd[1],HWND(0),'Button',nil);

  67. //得到应用程序切换区的窗口句柄;

  68. Wnd[2]:=FindWindow('Shell_TrayWnd',nil);

  69. Wnd[2]:=FindWindowEx(Wnd[2],HWND(0),'ReBarWindow32',nil);

  70. //得到任务栏通知区的窗口句柄;

  71. Wnd[3]:=FindWindow('Shell_TrayWnd',nil);

  72. Wnd[3]:=FindWindowEx(Wnd[3],HWND(0),'TrayNotifyWnd',nil);

  73. //得到任务栏时钟的窗口句柄;

  74. Wnd[4]:=FindWindow('Shell_TrayWnd',nil);

  75. Wnd[4]:=FindWindowEx(Wnd[4],HWND(0),'TrayNotifyWnd',nil);

  76. Wnd[4]:=FindWindowEx(Wnd[4],HWND(0),'TrayCLockWClass',nil);
  77. end;

  78. procedure EnableOrDisable(Lock:Boolean;I:Integer);    //禁用或启用任务栏
  79. begin
  80.     GetHandles;
  81.     if Lock then
  82.     case i of
  83.       0: EnableWindow(Wnd[0], False);
  84.       1: EnableWindow(Wnd[1], False);
  85.       2: EnableWindow(Wnd[2], False);
  86.       3: EnableWindow(Wnd[3], False);
  87.       4: EnableWindow(Wnd[4], False);
  88.     end
  89.     else
  90.     case i of
  91.       0: EnableWindow(Wnd[0], True);
  92.       1: EnableWindow(Wnd[1], True);
  93.       2: EnableWindow(Wnd[2], True);
  94.       3: EnableWindow(Wnd[3], True);
  95.       4: EnableWindow(Wnd[4], True);
  96.     end;
  97. end;

  98. procedure HideOrShow(Lock:Boolean;I:Integer);  //隐藏或显示任务栏
  99. begin
  100.   GetHandles;
  101.    if  Lock then
  102.    case i of
  103.     0: ShowWindow(Wnd[0],SW_HIDE);
  104.     1: ShowWindow(Wnd[1],SW_HIDE);
  105.     2: ShowWindow(Wnd[2],SW_HIDE);
  106.     3: ShowWindow(Wnd[3],SW_HIDE);
  107.     4: ShowWindow(Wnd[4],SW_HIDE);
  108.   end
  109.    else
  110.     case i of
  111.     0: ShowWindow(Wnd[0],SW_Show);
  112.     1: ShowWindow(Wnd[1],SW_Show);
  113.     2: ShowWindow(Wnd[2],SW_Show);
  114.     3: ShowWindow(Wnd[3],SW_Show);
  115.     4: ShowWindow(Wnd[4],SW_Show);
  116.     end;
  117. end;

  118. Procedure SetWallPaper(StrFile: String; Style: Integer); //更改桌布
  119. Var DT: IActiveDesktop;
  120.   WPO: TWallpaperOpt;
  121.   WS: WideString;
  122. Begin
  123.   DT := CreateComObject(CLSID_ActiveDesktop) As IActiveDesktop;
  124.   WS := StrFile;
  125.   Case Style Of
  126.     0: WPO.dwStyle := WPSTYLE_CENTER; {居中}
  127.     1: WPO.dwStyle := WPSTYLE_TILE; {平铺}
  128.     2: WPO.dwStyle := WPSTYLE_STRETCH; {拉伸}
  129.   Else WPO.dwStyle := WPSTYLE_CENTER;
  130.   End;
  131.   WPO.dwSize := SizeOf(WPO);
  132.   DT.SetWallpaperOptions(WPO, 0);
  133.   DT.SetWallPaper(PwideChar(WS), 0);
  134.   DT.ApplyChanges(AD_APPLY_ALL);
  135. End;

  136. procedure TForm1.Button1Click(Sender: TObject);
  137. begin
  138.     ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_HIDE);
  139. end;

  140. procedure TForm1.Button2Click(Sender: TObject);
  141. begin
  142.       ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_SHOW);
  143.     //SetTaskbarAutoHide(3);
  144. end;

  145. procedure TForm1.Button3Click(Sender: TObject);
  146. begin
  147.     LockTaskbar(True);
  148. end;

  149. procedure TForm1.Button4Click(Sender: TObject);
  150. begin
  151.      LockTaskbar(False);
  152. end;

  153. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  154. var i:Integer;
  155. begin
  156. for i:=0 to 4 do
  157. begin
  158. EnableWindow(Wnd[i],True);
  159. ShowWindow(Wnd[i],SW_Show);
  160. end;
  161. end;



  162. procedure TForm1.Button5Click(Sender: TObject);
  163. begin
  164.    HideOrShow(true,4);
  165. end;

  166. procedure TForm1.Button6Click(Sender: TObject);
  167. begin
  168.     HideOrShow(false,4);
  169. end;

  170. procedure TForm1.Button7Click(Sender: TObject); //隱藏圖標
  171. var   
  172.   wnd:HWND;   
  173.   begin   
  174.   Wnd   :=   GetDesktopWindow;
  175.   Wnd   :=   FindWindowEx(Wnd,   0,   'Progman',   nil);
  176.   Wnd   :=   FindWindowEx(Wnd,   0,   'SHELLDLL_DefView',   nil);   
  177.   Wnd   :=   FindWindowEx(Wnd,   0,   'SysListView32',   nil);
  178.   SendMessage(wnd,   LVM_DELETEALLITEMS,   0,   0);
  179. SetWallPaper('',0);
  180.   end;

  181. end.
复制代码


哥我就是人见人爱,花见花开,爱情杀手鬼见愁,美女一见就回头,人称玉面小肥龙...

岁数大了, 写代码是你们年轻人的事了。

只研究一些程序应用。程序加密。防脱。

支持你一下。
压缩壳之王——UnPacKcN.The.King.Of.PE.Compressor 排行榜

TOP


  没这能力吖  只能帮顶啰

TOP

ЦиΡасΚсИ
压缩壳之王——UnPacKcN.The.King.Of.PE.Compressor 排行榜

TOP

楼主的UB真多啊。
[20061030]UpK将在适当时机清除0贴会员的ID

TOP