스크린에 커서를 숨기고 보여주는 기능

Files Recovery Software
연락처 세부 정보 고객 지원 다운로드 데모 제품  

 
 

/* 스크린에 커서를 숨기고 보여주는 기능 */

show_hide_cursor ( 32, 0 );

gotoxy(15,18);cprintf("[ %d ] Files Recovered...",
num);

/* 디스크의 결말 분야까지 자료를 위한 수색 */

while(loop<Sectors_in_HDD2)
{
/* Read one Sector (Sector No. = loop) */
readabsolutesectors ( 0x81, loop, 1, buffer );

gotoxy(19,16);cprintf("Scanning Sector Number = % ld",
loop);

if(kbhit())
{
show_hide_cursor ( 6, 7 ); /* Retrieve the
cursor before
Exit the program
*/
exit(0);
}

/* 지정되어 있다면 우두머리는 있다 */
if((memcmp ( buffer, header,7))==0)
{

/* 지정되어 있다면 우두머리는 있다
재기한 자료를 저장하기 위하여 파일을 창조하십시오 */

strcpy(filename, path);
itoa(num,temp,10);
strcat(filename, temp);
strcat(filename,".DOC");
start_file=loop; /* starting sector of file */

gotoxy(5,19);cprintf("File Found..., Saving As %s",
filename);
num++;

////////////// 파일 폐색기는 조절한다 \\\\\\\\\\\\\\\\

file_size=0;
while( file_size<5000000)
{

loop++;
file_size+=512;
readabsolutesectors ( 0x81, loop, 1, buffer );

gotoxy(19,16);cprintf("Scanning Sector Number = % ld" ,
loop);

/* 파일 사이즈가 5MB의 최대 크기까지 도달하는 경우에 */
if(file_size>=5000000)
{
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}

/* if footer of DOC file is found */
for(i=0;i<512;i++)
{
if( memcmp(buffer+i,DOC_footer,12)==0 )
{
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}
}

/* if another header is found */
if( memcmp(buffer,header,7)==0 )
{
loop=loop-1;
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}
if(kbhit())
{
show_hide_cursor ( 6, 7 );
exit(0);
}
}

}
loop++;
} ////////루프가 여기에서 끝내는 동안

 

/* 수색과 회복의 완료를 위한 전시 메시지 */ if(loop>=Sectors_in_HDD2 )
{
gotoxy(17,23);cprintf("The Saving of files in the Disk is
Completed !!");
gotoxy(17,24);cprintf("Press Any Key to Exit...");
show_hide_cursor ( 6, 7 );
getch();
}

}

코딩에 대하여 코멘트:

구조 기하학은 INT 13H 연장, 기능 수 0x48를 사용하여 getdrivegeometry 기능에 의해 디스크의 각종 매개변수를 얻기 위하여 이용된다.

구조 diskaddrpacket는 디스크 주소 소포 체재를 위해, readabsolutesectors 기능에 의해 사용되기 위하여 이다.

getdrivegeometry 기능은 (int 드라이브) 지정했다 육체적인 드라이브 수 드라이브를 디스크의 드라이브 매개변수를 얻기 위한 것이다.

(숯) peekb (0x0040, 0x0075)는 세그먼트 0040H에 의해 대표된 기억 장소에 저장된 컴퓨터에 연결된 하드 디스크의 수를 찾아내는 이용된다: 상쇄 0075H. 만약에 붙어 있던 하드 디스크의 총계가 더 적은 그 때 2 디스플레이하면 착오 알림말을 이면 나가거든.

Sectors_in_HDD2=getdrivegeometry (0x81); 두번째 육체적인 하드 디스크 (0x81) 및 반환의 각종 매개변수를 디스크의 분야의 총계 찾아낸다.

계산서 만약에 (접근 (경로, 0)! = 0개는) 사용자가 주어진 경로의 접근가능성을 검사한다. 수신지 디렉토리가 존재하지 않는 경우에, 목적지는 1개 수준까지 주어진 경로가 조건에 의하여 검사한 경우에 경우에, 그리고 창조된다 (mkdir (경로)! =0는) 불법, 착오 알림말 표시된다 이다.

재기된 자료를 저장하는 자동으로 작성된 파일의 파일 이름은 파일의 첫번째 3개의 특성이 strcat (경로, "\ \ Ptt")에 의해 PTT를 주어진다 그런이라고 창조된다; 기능. 그것은 수신지 디렉토리에 있는 이중 파일 이름을 피하기 위하여 이렇게 행해진다. 그러므로 재기된 파일의 파일 이름은 "PTTxxxxx.DOC"의 체재에서 주어진다

기능 show_hide_cursor (32, 0); show_hide_cursor (6, 7) 스크린에서 커서를 숨기는 사용되는; 스크린 등을 맞댄 커서를 만회한다.


기능 readabsolutesectors (0x81 의 루프, 1 의 완충기); 분야 수 루프에 의해 지정된 두번째 육체적인 하드 디스크의 1개의 분야를 읽는다.

파일의 우두머리가 있는 경우에, = 루프 start_file; 재기될 파일의 분야 수 시작에 start_file 놓는다. 프로그램은 파일의 결말 분야를 찾아내기 위하여 다음 주어진 3개의 조건을, 따른다:

  • 파일 사이즈가 5MB의 최대 크기까지 도달하는 경우에
  • DOC 파일의 보행자가 있는 경우에
  • 다른 우두머리가 있는 경우에


end_file 긴 정수는 end_file=loop에 의해 파일의 결말 분야 수에 놓인다; 3 중에서 아무 1개의 조건나 만족한 경우에. end_file 기능 Recover_the_file를 가진 파일에 분야 수에 start_file 분야 수에서 출발 분야의 지금 자료는, 저장된다 ().


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

Next page
 
 
데이터 복구 도서
 
장-1 자료 회복의 개관
장-2 하드 디스크의 소개
장-3 디스크와 OS에 논리적인 접근
장-4 수 체계
장-5 C 프로그램의 소개
장-6 컴퓨터 기초에 소개
장-7 필요한 DOS는 명령한다
장-8 디스크 BIOS는 작용하고 C로 취급을 중단한다
장-9 큰 하드 디스크 취급
장-10 타락된 플로피에서 자료 회복
장-11 백업을 만들기
장-12 프로그램을 가진 읽고는 및 변경 MBR
장-13 프로그램을 가진 읽고는 및 변경 DBR
장-14 "익지않는 파일" 회복을 위해 프로그램
장-15 자료 와이퍼를 위해 프로그램
장-16 디스크를 위한 공용품 더 개발
부록 자료 회복 기간의 용어집
 
 
Pro Data Doctor

제품

연락처 세부 정보

고객 지원

다운로드 데모

이용 약관

 
Pro Data Doctor