スクリーンのカーソルを隠し、示す機能

Files Recovery Software
連絡先の詳細 顧客サポート ダウンロードのデモ 製品  

 
 

/*スクリーンのカーソルを隠し、示す機能*/

show_hide_cursor ( 32, 0 );

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

/* ディスクの終りのセクターまでのデータのための調査 */

while(loop<Sectors_in_HDD2)
{
/* 1つのセクター(セクターのNOを読みなさい。 =ループ) */
readabsolutesectors ( 0x81, loop, 1, buffer );

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

if(kbhit())
{
show_hide_cursor ( 6, 7 ); /* 取り出しなさい 出口の前のカーソルプログラム
*/
exit(0);
}

/* 指定されたらヘッダーはある */
if((memcmp ( buffer, header,7))==0)
{

/* 自動的にファイルを回復されたデータを救うために作成するようにファイル名前を提供する論理 */

strcpy(filename, path);
itoa(num,temp,10);
strcat(filename, temp);
strcat(filename,".DOC");
start_file=loop; /* ファイルのセクターの開始 */

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; /* ファイルの終りのセクター */
Recover_the_file();/* ファイルにデータを書きなさい */
break;
}

/* DOCファイルのフッターがあれば */
for(i=0;i<512;i++)
{
if( memcmp(buffer+i,DOC_footer,12)==0 )
{
end_file=loop; /* ファイルの終りのセクター */
Recover_the_file();/* ファイルにデータを書きなさい */
break;
}
}

/* 別のヘッダーがあれば */
if( memcmp(buffer,header,7)==0 )
{
loop=loop-1;
end_file=loop; /* ファイルの終りのセクター */
Recover_the_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); 第2物理的なハードディスク(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の緩衝); セクター数ループによって指定される第2物理的なハードディスクの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