ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 2 از 2
  1. #1
    تاریخ عضویت
    2019/01/28
    نوشته ها
    1
    0
    Junior Member

    باز کردن پورت سریال ویندوز 10

    سلام
    با زبان دلفی 7 چطور میتوان پورت سریال ویندوز 10 خواند و یا روی آن نوشت؟
    باتشکر
  2. #2
    تاریخ عضویت
    2017/11/18
    نوشته ها
    61
    58
    Administrator
    برای استفاده از پورت سریال در دلفی ۷ کامپوننت های زیادی توی نت موجوده که به راحتی می تونید استفاده کنید در زیر نمونه برنامه برای استفاده از پورت سریال براتون گذاشتم.

    کد:
    function OpenCOMPort: Boolean;
    var
      DeviceName: array[0..80] of Char;
      ComFile: THandle;
    begin
       { First step is to open the communications device for read/write.
         This is achieved using the Win32 'CreateFile' function.
         If it fails, the function returns false.
    
       
       }
      StrPCopy(DeviceName, 'COM1:');
    
      ComFile := CreateFile(DeviceName,
        GENERIC_READ or GENERIC_WRITE,
        0,
        nil,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        0);
    
      if ComFile = INVALID_HANDLE_VALUE then
        Result := False
      else
        Result := True;
    end;
    
    
    function SetupCOMPort: Boolean;
    const
      RxBufferSize = 256;
      TxBufferSize = 256;
    var
      DCB: TDCB;
      Config: string;
      CommTimeouts: TCommTimeouts;
    begin
       { We assume that the setup to configure the setup works fine.
         Otherwise the function returns false.
    
       
       }
    
      Result := True;
    
      if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then
        Result := False;
    
      if not GetCommState(ComFile, DCB) then
        Result := False;
    
      // define the baudrate, parity,...
    
       
      Config := 'baud=9600 parity=n data=8 stop=1';
    
      if not BuildCommDCB(@Config[1], DCB) then
        Result := False;
    
      if not SetCommState(ComFile, DCB) then
        Result := False;
    
      with CommTimeouts do
      begin
        ReadIntervalTimeout         := 0;
        ReadTotalTimeoutMultiplier  := 0;
        ReadTotalTimeoutConstant    := 1000;
        WriteTotalTimeoutMultiplier := 0;
        WriteTotalTimeoutConstant   := 1000;
      end;
    
      if not SetCommTimeouts(ComFile, CommTimeouts) then
        Result := False;
    end;
    
    
    {
      The following is an example of using the 'WriteFile' function
      to write data to the serial port.
    
    
    }
    
    
    procedure SendText(s: string);
    var
      BytesWritten: DWORD;
    begin
       {
         Add a word-wrap (#13 + #10) to the string
    
    
       }
      s := s + #13 + #10;
      WriteFile(ComFile, s[1], Length(s), BytesWritten, nil);
    end;
    
    
    {
      The following is an example of using the 'ReadFile' function to read
      data from the serial port.
      
    
    }
    
    
    procedure ReadText: string;
    var
      d: array[1..80] of Char;
      s: string;
      BytesRead, i: Integer;
    begin
      Result := '';
      if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil) then
      begin
        { Raise an exception }
      end;
      s := '';
      for i := 1 to BytesRead do s := s + d[I];
      Result := s;
    end;
    
    
    procedure CloseCOMPort;
    begin
      // finally close the COM Port!
      CloseHandle(ComFile);
    end;
نمایش نتایج: از 1 به 2 از 2

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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