نمایش نتایج 1 تا 39 از 39

نام تاپیک: نصب برنامه با توجه به سریال هارد

  1. #1
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039

    نصب برنامه با توجه به سریال هارد

    بعضی نرم افزارها وقتی نصب میشه یه شماره سریال میده که باید آنرا به شرکت مورد نظر اعلام کنی تا شماره سریال اصلی را بده ( ظاهرا با توجه به شماره سریال هارد این کار را میکند ) اگه دوستان اینچنین کدی نوشته اند . لطفا سورس انرا اینجا بگذارند .
    با تشکر

  2. #2
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    کاری نداره با استفاده از کامپوننت MMSystem Information شماره سریال هارد رو بخون و بعد خودت یک فرمول براش

    بساز. یک ضربی یا تقسیمی.

    Source خوندن شماره سریال هارد هم تو اینترنت پر است.

    موفق باشید
    :flower:

  3. #3
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174
    یا می تونی با یک الگوریتم اول عددی رو به بیننده بدی .
    دوم اونو با الگوریتم دیگه تغییر بدی تا بخونش .
    :موفق:

  4. #4
    اگر جستجو میکردی قبلا مطرح شده بود
    کد زیر را آقای کرامتی زحمتش رو کشیدند که میتونه شماره سریال هار رو به دست بیاری در اکثر کد های دیگر با فرمت کردن درایو کد تولید شده تغییر میکنه ولی در کد زیر شماره سریال واقعی هارد دیسک رو به شما میده که با فرمت کردن و پارتیشن بندی تغییر نمیکنه

    //for windows 98 copy Smartvsd.vxd in %WINDIR%/System

    program IdeSN;

    // PURPOSE: Simple console application that extract first IDE disk serial number.

    {$APPTYPE CONSOLE}

    uses
    Windows,
    SysUtils; // only for Win32Platform and SysErrorMessage

    //-------------------------------------------------------------
    function GetIdeDiskSerialNumber : String;
    type
    TSrbIoControl = packed record
    HeaderLength : ULONG;
    Signature : Array[0..7] of Char;
    Timeout : ULONG;
    ControlCode : ULONG;
    ReturnCode : ULONG;
    Length : ULONG;
    end;
    SRB_IO_CONTROL = TSrbIoControl;
    PSrbIoControl = ^TSrbIoControl;

    TIDERegs = packed record
    bFeaturesReg : Byte; // Used for specifying SMART "commands".
    bSectorCountReg : Byte; // IDE sector count register
    bSectorNumberReg : Byte; // IDE sector number register
    bCylLowReg : Byte; // IDE low order cylinder value
    bCylHighReg : Byte; // IDE high order cylinder value
    bDriveHeadReg : Byte; // IDE drive/head register
    bCommandReg : Byte; // Actual IDE command.
    bReserved : Byte; // reserved. Must be zero.
    end;
    IDEREGS = TIDERegs;
    PIDERegs = ^TIDERegs;

    TSendCmdInParams = packed record
    cBufferSize : DWORD;
    irDriveRegs : TIDERegs;
    bDriveNumber : Byte;
    bReserved : Array[0..2] of Byte;
    dwReserved : Array[0..3] of DWORD;
    bBuffer : Array[0..0] of Byte;
    end;
    SENDCMDINPARAMS = TSendCmdInParams;
    PSendCmdInParams = ^TSendCmdInParams;

    TIdSector = packed record
    wGenConfig : Word;
    wNumCyls : Word;
    wReserved : Word;
    wNumHeads : Word;
    wBytesPerTrack : Word;
    wBytesPerSector : Word;
    wSectorsPerTrack : Word;
    wVendorUnique : Array[0..2] of Word;
    sSerialNumber : Array[0..19] of Char;
    wBufferType : Word;
    wBufferSize : Word;
    wECCSize : Word;
    sFirmwareRev : Array[0..7] of Char;
    sModelNumber : Array[0..39] of Char;
    wMoreVendorUnique : Word;
    wDoubleWordIO : Word;
    wCapabilities : Word;
    wReserved1 : Word;
    wPIOTiming : Word;
    wDMATiming : Word;
    wBS : Word;
    wNumCurrentCyls : Word;
    wNumCurrentHeads : Word;
    wNumCurrentSectorsPerTrack : Word;
    ulCurrentSectorCapacity : ULONG;
    wMultSectorStuff : Word;
    ulTotalAddressableSectors : ULONG;
    wSingleWordDMA : Word;
    wMultiWordDMA : Word;
    bReserved : Array[0..127] of Byte;
    end;
    PIdSector = ^TIdSector;

    const
    IDE_ID_FUNCTION = $EC;
    IDENTIFY_BUFFER_SIZE = 512;
    DFP_RECEIVE_DRIVE_DATA = $0007c088;
    IOCTL_SCSI_MINIPORT = $0004d008;
    IOCTL_SCSI_MINIPORT_IDENTIFY = $001b0501;
    DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE;
    BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize;
    W9xBufferSize = IDENTIFY_BUFFER_SIZE+16;
    var
    hDevice : THandle;
    cbBytesReturned : DWORD;
    pInData : PSendCmdInParams;
    pOutData : Pointer; // PSendCmdOutParams
    Buffer : Array[0..BufferSize-1] of Byte;
    srbControl : TSrbIoControl absolute Buffer;

    procedure ChangeByteOrder( var Data; Size : Integer );
    var ptr : PChar;
    i : Integer;
    c : Char;
    begin
    ptr := @Data;
    for i := 0 to (Size shr 1)-1 do
    begin
    c := ptr^;
    ptr^ := (ptr+1)^;
    (ptr+1)^ := c;
    Inc(ptr,2);
    end;
    end;

    begin
    Result := '';
    FillChar(Buffer,BufferSize,#0);
    if Win32Platform=VER_PLATFORM_WIN32_NT then
    begin // Windows NT, Windows 2000
    // Get SCSI port handle
    hDevice := CreateFile( '\\.\Scsi0:',
    GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE,
    nil, OPEN_EXISTING, 0, 0 );
    if hDevice=INVALID_HANDLE_VALUE then Exit;
    try
    srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL);
    System.Move('SCSIDISK',srbControl.Signature,8& #41;;
    srbControl.Timeout := 2;
    srbControl.Length := DataSize;
    srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY;
    pInData := PSendCmdInParams(PChar(@Buffer)
    +SizeOf(SRB_IO_CONTROL));
    pOutData := pInData;
    with pInData^ do
    begin
    cBufferSize := IDENTIFY_BUFFER_SIZE;
    bDriveNumber := 0;
    with irDriveRegs do
    begin
    bFeaturesReg := 0;
    bSectorCountReg := 1;
    bSectorNumberReg := 1;
    bCylLowReg := 0;
    bCylHighReg := 0;
    bDriveHeadReg := $A0;
    bCommandReg := IDE_ID_FUNCTION;
    end;
    end;
    if not DeviceIoControl( hDevice, IOCTL_SCSI_MINIPORT,
    @Buffer, BufferSize, @Buffer, BufferSize,
    cbBytesReturned, nil ) then Exit;
    finally
    CloseHandle(hDevice);
    end;
    end
    else
    begin // Windows 95 OSR2, Windows 98
    hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil,
    CREATE_NEW, 0, 0 );
    if hDevice=INVALID_HANDLE_VALUE then Exit;
    try
    pInData := PSendCmdInParams(@Buffer);
    pOutData := @pInData^.bBuffer;
    with pInData^ do
    begin
    cBufferSize := IDENTIFY_BUFFER_SIZE;
    bDriveNumber := 0;
    with irDriveRegs do
    begin
    bFeaturesReg := 0;
    bSectorCountReg := 1;
    bSectorNumberReg := 1;
    bCylLowReg := 0;
    bCylHighReg := 0;
    bDriveHeadReg := $A0;
    bCommandReg := IDE_ID_FUNCTION;
    end;
    end;
    if not DeviceIoControl( hDevice, DFP_RECEIVE_DRIVE_DATA,
    pInData, SizeOf(TSendCmdInParams)-1, pOutData,
    W9xBufferSize, cbBytesReturned, nil ) then Exit;
    finally
    CloseHandle(hDevice);
    end;
    end;
    with PIdSector(PChar(pOutData)+16)^ do
    begin
    ChangeByteOrder(sSerialNumber,SizeOf(sSeri alNumber));
    SetString(Result,sSerialNumber,SizeOf(sSer ialNumber));
    end;
    end;


    این هم روش استفاده از کد بالا :

    var s : String; 
    rc : DWORD;
    begin
    s := GetIdeDiskSerialNumber;
    if s='' then
    begin
    rc := GetLastError;
    if rc=0 then WriteLn('IDE drive is not support SMART feature')
    else WriteLn(SysErrorMessage(rc));
    end
    else WriteLn('Disk serial number: ''', s,'''');
    end.

  5. #5
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    متاسفانه این کد فقط برروی تعدادی از هارد دیسک ها جواب می دهد
    :strange:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  6. #6
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    آدرس سایت این کامپوننت کجاست ؟ ( MMSystem Information)

  7. #7
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    MMSystem Information
    اصلا همچین کامپوننتی وجود ندارد .
    :strange:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  8. #8
    نقل قول نوشته شده توسط Delphi KDE
    کد زیر را آقای کرامتی زحمتش رو کشیدند...
    http://delphi.cartall.com.pl/Pytania/pyt41.htm

    ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟ ؟

  9. #9
    حالا چطوری میشه سریال مادربرد را درآورد؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  10. #10
    آدرس سایت این کامپوننت کجاست ؟ ( MMSystem Information)
    فکر کنم Touskaمنظورش MiTeC System Information Component باشه
    که نسخه بدون سورس رو میتونید از ادرس زیر مجانی تهیه کنید

    http://www.mitec.cz

  11. #11
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    اون سورس بالایی ک جواب نداد.

    بالاخره این همه نرم افزار که بصورت شماره سریال کار می کند و در سطح ایران پخش است از چی استفاده می کنند ( با همه هاردها هم کار می کنه ؟ )

  12. #12
    کاربر دائمی آواتار javidtaheri
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    301
    در کتاب 296 مثال آقای ریاضی این مثال آمده

  13. #13
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    باید نگاه کنم ولی فکر کنم که اون لیبل را میدهد نه شماره سریال هارد را

  14. #14
    کامپوننتی که Delphi KDE زحمت کشیده معرفی کرده (MiTec System Information) از لحاظ کارآیی حرف ندارد و انواع و اقسام شماره سریالها و دیگر اطلاعات مربوط به انواع سخت افزار را قابل دسترسی می کند ، دستش درد نکند :flower: :موفق:
    فقط یک مشکل دارد و آن اینکه اگر آن را بر روی فرم قرار دهی در هر بار اجرای برنامه نام شرکت سازنده را اعلام می کند اگر راه حلی برای این مشکل وجود داشته باشد عالی است :sad2:

  15. #15
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    آخه اون نسخه شرط افزار است و ... . :sorry:

  16. #16
    کسی راه حل دیگری ، کامپوننتی ، چیزی راجع به این موضوع ندارد ؟
    راستی کتابی که javid معرفی کرده بود به درد خورد ؟

  17. #17
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    این تاپیک هم در مورد شماره سریال هارد بخث شده اما به نتیجه ای نرسیده :sorry:
    http://www.barnamenevis.org/viewtopic.php?t=26942

    من نمیدانم که بقیه برنامه نویسان از چه کد یا کامپوننتی استفاده می کنند

  18. #18
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    تهران
    پست
    558
    سلام
    من از این کد استفاده می کنیم٬‌تا حالا هم درست بوده تا نظر دوستان چی باشه :
    (کل یونیت رو کپی کردم می بخشید)

    unit Unit1
    ;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    HddLbl: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    private
    { Private declarations }
    function GetIdeDiskSerialNumber : String;
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    function TForm1.GetIdeDiskSerialNumber : String;
    type
    TSrbIoControl = packed record
    HeaderLength : ULONG;
    Signature : Array[0..7] of Char;
    Timeout : ULONG;
    ControlCode : ULONG;
    ReturnCode : ULONG;
    Length : ULONG;
    end;
    SRB_IO_CONTROL = TSrbIoControl;
    PSrbIoControl = ^TSrbIoControl;

    TIDERegs = packed record
    bFeaturesReg : Byte; // Used for specifying SMART "commands".
    bSectorCountReg : Byte; // IDE sector count register
    bSectorNumberReg : Byte; // IDE sector number register
    bCylLowReg : Byte; // IDE low order cylinder value
    bCylHighReg : Byte; // IDE high order cylinder value
    bDriveHeadReg : Byte; // IDE drive/head register
    bCommandReg : Byte; // Actual IDE command.
    bReserved : Byte; // reserved. Must be zero.
    end;
    IDEREGS = TIDERegs;
    PIDERegs = ^TIDERegs;

    TSendCmdInParams = packed record
    cBufferSize : DWORD;
    irDriveRegs : TIDERegs;
    bDriveNumber : Byte;
    bReserved : Array[0..2] of Byte;
    dwReserved : Array[0..3] of DWORD;
    bBuffer : Array[0..0] of Byte;
    end;
    SENDCMDINPARAMS = TSendCmdInParams;
    PSendCmdInParams = ^TSendCmdInParams;

    TIdSector = packed record
    wGenConfig : Word;
    wNumCyls : Word;
    wReserved : Word;
    wNumHeads : Word;
    wBytesPerTrack : Word;
    wBytesPerSector : Word;
    wSectorsPerTrack : Word;
    wVendorUnique : Array[0..2] of Word;
    sSerialNumber : Array[0..19] of Char;
    wBufferType : Word;
    wBufferSize : Word;
    wECCSize : Word;
    sFirmwareRev : Array[0..7] of Char;
    sModelNumber : Array[0..39] of Char;
    wMoreVendorUnique : Word;
    wDoubleWordIO : Word;
    wCapabilities : Word;
    wReserved1 : Word;
    wPIOTiming : Word;
    wDMATiming : Word;
    wBS : Word;
    wNumCurrentCyls : Word;
    wNumCurrentHeads : Word;
    wNumCurrentSectorsPerTrack : Word;
    ulCurrentSectorCapacity : ULONG;
    wMultSectorStuff : Word;
    ulTotalAddressableSectors : ULONG;
    wSingleWordDMA : Word;
    wMultiWordDMA : Word;
    bReserved : Array[0..127] of Byte;
    end;
    PIdSector = ^TIdSector;

    const
    IDE_ID_FUNCTION = $EC;
    IDENTIFY_BUFFER_SIZE = 512;
    DFP_RECEIVE_DRIVE_DATA = $0007c088;
    IOCTL_SCSI_MINIPORT = $0004d008;
    IOCTL_SCSI_MINIPORT_IDENTIFY = $001b0501;
    DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE;
    BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize;
    W9xBufferSize = IDENTIFY_BUFFER_SIZE+16;
    var
    hDevice : THandle;
    cbBytesReturned : DWORD;
    pInData : PSendCmdInParams;
    pOutData : Pointer; // PSendCmdOutParams
    Buffer : Array[0..BufferSize-1] of Byte;
    srbControl : TSrbIoControl absolute Buffer;
    procedure ChangeByteOrder( var Data; Size : Integer );
    var ptr : PChar;
    i : Integer;
    c : Char;
    begin
    ptr := @Data;
    for i := 0 to (Size shr 1)-1 do
    begin
    c := ptr^;
    ptr^ := (ptr+1)^;
    (ptr+1)^ := c;
    Inc(ptr,2);
    end;
    end;

    begin
    Result := '';
    FillChar(Buffer,BufferSize,#0);
    if Win32Platform=VER_PLATFORM_WIN32_NT then
    begin // Windows NT, Windows 2000, Windows XP
    // Get SCSI port handle
    hDevice := CreateFile('\\.\Scsi0:',
    // Note: '\\.\C:' required administrative privileges.
    GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
    if hDevice=INVALID_HANDLE_VALUE then Exit;
    try
    srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL);
    System.Move('SCSIDISK',srbControl.Signature,8& #41;;
    srbControl.Timeout := 2;
    srbControl.Length := DataSize;
    srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY;
    pInData := PSendCmdInParams(PChar(@Buffer)
    +SizeOf(SRB_IO_CONTROL));
    pOutData := pInData;
    with pInData^ do
    begin
    cBufferSize := IDENTIFY_BUFFER_SIZE;
    bDriveNumber := 0;
    with irDriveRegs do
    begin
    bFeaturesReg := 0;
    bSectorCountReg := 1;
    bSectorNumberReg := 1;
    bCylLowReg := 0;
    bCylHighReg := 0;
    bDriveHeadReg := $A0;
    bCommandReg := IDE_ID_FUNCTION;
    end;
    end;
    if not DeviceIoControl( hDevice, IOCTL_SCSI_MINIPORT,
    @Buffer, BufferSize, @Buffer, BufferSize,
    cbBytesReturned, nil ) then
    Exit;
    finally
    CloseHandle(hDevice);
    end;
    end
    else
    begin // Windows 95 OSR2, Windows 98, Windows ME
    hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0 );
    if hDevice=INVALID_HANDLE_VALUE then
    Exit;
    try
    pInData := PSendCmdInParams(@Buffer);
    pOutData := @pInData^.bBuffer;
    with pInData^ do
    begin
    cBufferSize := IDENTIFY_BUFFER_SIZE;
    bDriveNumber := 0;
    with irDriveRegs do
    begin
    bFeaturesReg := 0;
    bSectorCountReg := 1;
    bSectorNumberReg := 1;
    bCylLowReg := 0;
    bCylHighReg := 0;
    bDriveHeadReg := $A0;
    bCommandReg := IDE_ID_FUNCTION;
    end;
    end;
    if not DeviceIoControl( hDevice, DFP_RECEIVE_DRIVE_DATA,
    pInData, SizeOf(TSendCmdInParams)-1, pOutData,
    W9xBufferSize, cbBytesReturned, nil ) then
    Exit;
    finally
    CloseHandle(hDevice);
    end;
    end;
    with PIdSector(PChar(pOutData)+16)^ do
    begin
    ChangeByteOrder(sSerialNumber,SizeOf(sSeri alNumber));
    SetString(Result,sSerialNumber,SizeOf(sSer ialNumber));
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Close;
    end;

    procedure TForm1.FormShow(Sender: TObject);
    var
    s : String;
    rc : DWORD;
    begin
    s := GetIdeDiskSerialNumber;
    if s='' then
    begin
    rc := GetLastError;
    if rc=0 then
    HddLbl.Caption := 'IDE drive does not support SMART feature'
    else
    HddLbl.Caption := SysErrorMessage(rc);
    end
    else
    HddLbl.Caption := s;
    end;

    end.

  19. #19
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    این همان کدی است که در صفحه یک همین تاپیک موجود است و من که تست می کنم پیغام خطای زیر را میدهد :


    The system cannot find the file specified

  20. #20
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    تهران
    پست
    558
    سلام
    انگار درسته همون کده٬‌میبخشید. :embr:

  21. #21
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    شما که تعریف می کردی حالا بگو چرا روی هارد من کار نمی کنه

  22. #22
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    کسی دیگر تابع یا کامپوننت جالب (رایگان) قابل ارایه نداره

  23. #23
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174
    کسی دیگر تابع یا کامپوننت جالب (رایگان) قابل ارایه نداره
    یه سری به swissdelphi بزن .

  24. #24
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    دوست عزیز ظاهرا شما هم بدنبال چنین کامپوننتی بودید (8 خردادMachineID Library SDK ) آیا این را جدیدا پیدا کردید یا نه ؟
    http://www.barnamenevis.org/viewtopic.php?t=26942

    میشه یه شمه ای از کارایی آنرا بگویید یا سایت آن ؟

  25. #25
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    دوست من ؛ دنیای دلفی ؛ چی شد ؟ جوابی ندادی :wise1:

  26. #26
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    این کامپوننت یک شماره سریال منحصربفرد از ترکیب شماره سریال واقعی HDD و BIOS مادربورد می دهد .
    به علاوه امکانات بسیار بالاتر
    :موفق:

    یک سرچ تو google بزن نام سایتوشو پیدا کن و نسخه Trial اون رو دانلود کن .

  27. #27
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    اگه MiTeC System Information Component Suite version 9.1.0 را داشته باشی خیلی بهتره چون این امکان هست که فقط شماره سریال هارد را بدست بیاری و خیلی امکانات دیگه ؟

  28. #28
    Mahdi_S_T نظرت در مودر اینکه چند نفر جمع شویم و نسخه اصلی MiTec System Information را بخریم چیه قیمتش 110 یورو است و سورس آن نیز همراهش است :wink:

  29. #29
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    من هستم :flower:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  30. #30
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    به شرطی که چند نفری بشیم

  31. #31
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    تا نظر دوستان دیگه چی باشه ؟

  32. #32
    کاربر دائمی
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    هیچ کی مثل ایرونی نمیشه
    پست
    134
    دوستان این رو من امتحان کردم. رو 3 تا کامپیوتر به درستی جواب داد بدون هیچ مشکلی.با این کد می تونید برنامه رجیستری بسازید. خلاصه 1 کدی میده
    function GetHardSerial:integer;
    var
    SerialNum: DWord;
    A,B: DWord;
    C: array [0..255] of Char;
    Buffer: array [0..255] of Char;
    begin
    if GetVolumeInformation(
    PChar('C:\'),
    Buffer,
    256,
    @SerialNum,
    A,
    B,
    C,
    256) then Result:=SerialNum;
    end;

  33. #33
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    دوست عزیز این کد شماره سریال یک درایو را بر می گرداند و با فرمت درایو تغییر می کند .
    :strange:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  34. #34
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    اگه جناب کرامتی این تابع رو بنویسه خیلی ها اینو لازم دارند و میشه به قیمت مناسب عرضه بشه :kaf:
    اما به شرطی که روی همه هاردها کار کنه ؟ ( جایی که همکار سایت بتونه اینکارو بکنه برای چی کامپوننت خارجی بخریم )

    جناب کرامتی - لطفا نظرتان را بدهید

  35. #35
    <span dir=ltr>

    • THDDInfo - nonvisual Delphi component provided low level information about IDE, SCSI and ATAPI devices.

      Supports both Win9x (IDE and ATAPI only) and WinNT platforms, on WinNT also provided information about SCSI devices.

      Provided information:

      drive type
      Model sting
      Firmware revision
      Serial number
      For IDE also:
      drive geometry (cylinders, heads, sectors per track)
      LBA sectors count
      drive size (nonformatted)
      Controller buffer size
    </span>

    رایگان و سورس آزاد
    http://artsoft.nm.ru/download/hddinfo.zip
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  36. #36
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    :flower:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  37. #37
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,039
    :flower: :flower:

  38. #38
    Inprise
    خیلی دمت گرم ، خیلی مرسی :flower: :موفق:

  39. #39
    این componenet واقعا جالب و به درد بخور بود ولی اگه کسی کامپوننتی برای سریال main board و ... هم سراغ داشته باشه ممنون می شم که معرفی کنه :embr:

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •