PDA

View Full Version : خواندن سکتور



حمیدرضاصادقیان
سه شنبه 05 اسفند 1382, 11:36 صبح
سلام اساتید بزرگوار.من میخوام یک برنامه بنویسم که وقتی اجرا شد شماره یک سکتور رو ازما بپرسه بعد اطلاعات اون سکتور رو روی مانیتور نمایش بده.ایا واقعا این امر امکان پذیر هست.
اگه میشه لطفا کمکم کنید.ممنون :oops: :P

حمیدرضاصادقیان
سه شنبه 05 اسفند 1382, 18:57 عصر
سلام.اقای نصیری کجایین استاد گرامی. :cry: :(
هیچکس نیست کمکم کنه؟ :(

Vahid_Nasiri
سه شنبه 05 اسفند 1382, 20:28 عصر
دقیقا می خوای چکار کنی؟ :wink:

حمیدرضاصادقیان
سه شنبه 05 اسفند 1382, 20:50 عصر
میخوام اطلاعات یک سکتور رو روی مانیتور نمایش بدم. :oops:

Vahid_Nasiri
سه شنبه 05 اسفند 1382, 20:54 عصر
راستشو بگو! :evil2:

حمیدرضاصادقیان
سه شنبه 05 اسفند 1382, 22:19 عصر
اقای نصیری هیچی به جون خودم. :P
بابا من تازه سی شارپ رو شروع کردم حالا یکی بهم گفته اگه سی بلدی این برنامه رو بنویس بیار منم بلد نیستم.
الانم همش دارم دراین زمینه مطالعه میکنم ولی چیز خاصی دستگیرم نشده حالا اگه میشه کمکم کنید.
بعد مگه بااین کارمن میشه کار خاصی کرد؟؟؟ :evil2:
منو تحریک کردید اقای نصیری :wink:

Inprise
سه شنبه 05 اسفند 1382, 22:41 عصر
برادر صادقیان ،
دوست داشتم برای این سوال متداول یک مطلب مفصل و کامل مینوشتم اما نقدا" که حسش نیست ، باشه طلبت . اجالتا" : برای دسترسی مستقیم به دیسک سخت و تبادل داده ( Raw i/o ) یک سری محدودیت در محیطهای مبتنی بر NT وجود داره . ( در محیطهای قبلی که اصولا" باید یک درایور سطح کرنل - VXD - مینوشتی ) برای فائق اومدن بر این محدودیتها باید اول هندل درایو مورد نظرت رو با تابع API معروف CreateFile بدست بیاری با این تفاوت که باید اسم درایو رو کمی دستکاری کنی . مثلا" اگر اولین درایو لاجیکال است دوتا بک اسلش ، دات ، بک اسلش ، PhysicalDrive1 و ... . حالا تو هندل یک درایو رو داری که بهش Raw i/o Access داری . بعدش هم میتونی سطح دیسک رو بایت به بایت با تابع ReadFile بخونی . ( تبدیل مشخصات سکتور هم به عهدهء خودت ، کاری نداره ) حالا این توضیحات بی حوصلهء من رو بگذار کنار یک سرچ مفصل و مقاله عباس عریضی در مورد نحوه کار با Win32 API ها در محیط دات نت . مشکلت حله . MSDN رو بگرد بعیده چیزی در این مورد توش نباشه .

شرمنده .
خوش باشی

حمیدرضاصادقیان
چهارشنبه 06 اسفند 1382, 18:00 عصر
جناب اینپرایز عزیزممنون از راهنماییتون.اگه میشه یک لینک هم ازاون مقاله بهم بدین ممنون میشم.
اقای نصیری یک مقدار بیشتر کمک میکنید؟
:oops:

Vahid_Nasiri
چهارشنبه 06 اسفند 1382, 19:33 عصر
البته این سوال بیشتر به بخش اسمبلی مربوط می شود تا سی شارپ .
برای مثال (تحت داس):
http://www.experts-exchange.com/Programming/Programming_Languages/Assembly/Q_20662752.html

برای ویندوز:
http://www.codeproject.com/system/cfloppydisk.asp

30yavash
شنبه 09 اسفند 1382, 12:48 عصر
من سی شارپ رو هنوز کار نکردم. ولی با سی یا سی++ باید با استفاده از وقفه ها این کار رو انجام بدی.(فکر نکنم سی شار÷ چیزی به نام وقفه داشته باشه؟!)

حمیدرضاصادقیان
یک شنبه 10 اسفند 1382, 22:35 عصر
حالا من چه جوری میتونم از توابع api تو سی شارپ استفاده کنم
اگه میشه یک مقاله ایی که چیزی یک کمکی بهم بکنید :oops:

حمیدرضاصادقیان
سه شنبه 12 اسفند 1382, 23:03 عصر
اقا کسی نبود جواب منو بده.
:cry:

sh
سه شنبه 12 اسفند 1382, 23:36 عصر
سلام

فکر کنم اینجوری


[DllImport("kernel32.dll", EntryPoint="CreateFileA")]
static extern int32 CreateFile (
string lpFileName,
int32 dwDesiredAccess,
int32 dwShareMode,
[MarshalAs(UnmanagedType.Struct)] SECURITY_ATTRIBUTES lpSecurityAttributes,
int32 dwCreationDisposition,
int32 dwFlagsAndAttributes,
int32 hTemplateFile);
struct SECURITY_ATTRIBUTES{
private int32 nLength;
private int32 lpSecurityDescriptor;
private int32 bInheritHandle;
}

Mahdavi
چهارشنبه 13 اسفند 1382, 20:59 عصر
و اینم یه مثال دیگه :

using System;
class callAPICls {
[sysimport(dll="user32.dll")]
public static extern int MessageBoxA(int h, string m, string c, int type);
public static int Main()
{
return MessageBoxA(0, "Hello World!", "Caption", 0);
}
}

حمیدرضاصادقیان
چهارشنبه 13 اسفند 1382, 21:18 عصر
ممنونم ازهمتون که اینهمه به من تازه کار لطف دارین.
حالا اگه امکان داره یک مقدار هم توضیح بدین دیگه خیلی خیلی ممنونتون میشم در مورد این کدهایی که اوردین. :oops:

Abbas Arizi
چهارشنبه 13 اسفند 1382, 23:03 عصر
یه نگاه به اینجا بنداز به دردت میخورهhttp://www.barnamenevis.org/forum/viewtopic.php?t=7163