Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Lấy kích thước Text trong clipboard ?

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định Lấy kích thước Text trong clipboard ?

    Mình muốn lấy size của text clipboard, theo cách cổ truyền , gettext ra rồi xem length nhưng , mình thử với dữ liệu mấy chục mb hay 100 mb là đơ liền , mình muốn hỏi làm thế nào để lấy được kích thước của nó giống như đọc kích thước file ấy , file 1 mb hay 1 Gb cũng vậy , đọc thoải mái .
    Mọi người giúp mình với
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  2. #2

    đã thử với unicode text 20MB

    khai báo mấy thứ
    Code:
            Public Declare Function OpenClipboard Lib "User32.dll" (ByVal hwnd As IntPtr) As Boolean
            Public Declare Function SetClipboardData Lib "User32.dll" (ByVal Format As CF, ByVal hMem As IntPtr) As IntPtr
            Public Declare Function EmptyClipboard Lib "User32.dll" () As Boolean
            Public Declare Function CloseClipboard Lib "User32.dll" () As Boolean
            Public Declare Function GetClipboardData Lib "User32.dll" (ByVal Format As CF) As IntPtr
    
            Public Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As IntPtr) As Boolean
            Public Declare Function GlobalSize Lib "Kernel32.dll" (ByVal hMem As IntPtr) As IntPtr
    
    
        Public Enum CF
            Text = 1
            Bitmap = 2
            MetaFilePict = 3
            Sylk = 4
            Dif = 5
            Tiff = 6
            OemText = 7
            Dib = 8
            Palette = 9
            Pendata = 10
            Riff = 11
            Wave = 12
            UnicodeText = 13
            EnhMetaFile = 14
            HDrop = 15
            Locale = 16
            Dibv5 = 17
    
            OwnerDisplay = &H80
            DspText = &H81
            DspBitmap = &H82
            DspMetaFilePict = &H83
            DspEnhMetaFile = &H8E
    
            PrivateFirst = &H200
            PrivateLast = &H2FF
    
            GdiObjFirst = &H300
            GdiObjLast = &H3FF
        End Enum
    code để lấy size clipboard , đặt nó trong 1 form đã có handle ( thường là khi form đã hiện )
    Code:
            OpenClipboard(Me.Handle)
            Dim P As IntPtr = GetClipboardData(Enums.CF.UnicodeText)
            Dim Size As IntPtr = GlobalSize(P)
            CloseHandle(P)
            CloseClipboard()
            MessageBox.Show(Size.ToString)
    Đã được chỉnh sửa lần cuối bởi Kỳ Nam : 29-08-2008 lúc 07:42 PM.
    [URL=http://k-n.co.cc/gotv/index.html]Chương trình Gõ Tiếng Việt cho Windows , Linux , Windows Mobile , Android , nhiều chức năng hơn Unikey[/URL]

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Sao không làm 1 exe cho dễ dịch ra c# , chứ đống này khó xài nha. dịch thì hiểu tạm nhưng Me.Handle là gì vậy ?
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  4. #4

    class form1
    inherits form

    sub sub1
    OpenClipboard(Me.Handle)
    Dim P As IntPtr = GetClipboardData(CF.UnicodeText)
    Dim Size As IntPtr = GlobalSize(P)
    CloseHandle(P)
    CloseClipboard()
    MessageBox.Show(Size.ToString)
    end sub

    end class

    form.handle đó
    [URL=http://k-n.co.cc/gotv/index.html]Chương trình Gõ Tiếng Việt cho Windows , Linux , Windows Mobile , Android , nhiều chức năng hơn Unikey[/URL]

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Em đã thử , kết quả là get được size nhưng dung lượng file exe kiểm tra nó tăng theo , vậy có khác gì gettext ra string đâu . Em muốn đọc kích thước file mà chương trình bộ nhớ không thay đổi cơ mà (text vài chục mb cũng mặc, ram chương trình chỉ như lúc ban đầu khởi động thôi)
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  6. #6

    Mặc định Lấy kích thước Text trong clipboard ?

    ờ ram tăng thiệt , nhưng mà nó nhanh hơn bình thường nhiều
    [URL=http://k-n.co.cc/gotv/index.html]Chương trình Gõ Tiếng Việt cho Windows , Linux , Windows Mobile , Android , nhiều chức năng hơn Unikey[/URL]

  7. #7
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Có 1 hàm undocument của Windows, nhưng cậu dùng C# nên không dùng được. Internal của GetClipboardData dùng hàm này để lấy size và format hiện hành của clipboard, sau đó mới allocate memory và copy về.
    Prototype của hàm này:
    Code:
    DWORD _stdcall NtUserGetClipboardData(IN UINT uFormat, OUT LPDWORD lpCurFormat);
    Hàm này trả về size của clipboard tương ứng với uFormat nếu *lpCurFormat = uFormat

  8. #8

    NtUserGetClipboardData trong dll nào dậy , ntdll.dll w vista 0 có , trong cuốn w2000 native api cũng 0 có ...GetClipboardData

    TQN nếu có tài liệu đựng hàm đó hay tương tự thì cho mượn nhe , cám ơn
    Đã được chỉnh sửa lần cuối bởi Kỳ Nam : 31-08-2008 lúc 12:25 PM.
    [URL=http://k-n.co.cc/gotv/index.html]Chương trình Gõ Tiếng Việt cho Windows , Linux , Windows Mobile , Android , nhiều chức năng hơn Unikey[/URL]

  9. #9

    ra rồi , win32k.sys , đang load thử coi được 0

    cũng 0 có nốt

    ờ biết rồi , NtUserGetClipboardData 0 có được export nên 0 dùng getprocaddress được , dẩy địa chỉ của nó là nhiêu dị ? có phải bf8f9881 , rồi từ bf8f9881 làm sao để ra địa chỉ tương ứng với địa chỉ của win32k.sys ?
    Đã được chỉnh sửa lần cuối bởi Kỳ Nam : 31-08-2008 lúc 12:55 PM.
    [URL=http://k-n.co.cc/gotv/index.html]Chương trình Gõ Tiếng Việt cho Windows , Linux , Windows Mobile , Android , nhiều chức năng hơn Unikey[/URL]

  10. #10
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Nó nằm trong user32.dll. Dùng pdb symbol của user32.dll sẽ thấy nó.

Các đề tài tương tự

  1. Lấy text từ ứng dụng khác ( kéo thả và clipboard) trong lập trình C#
    Gửi bởi tienlbhoc trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 25-06-2013, 10:22 AM
  2. Sử dụng sự kiện Onclik trong html để copy đoạn văn bản vào clipboard như thế nào?
    Gửi bởi quan100157 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 31-10-2012, 08:04 PM
  3. Thay thế header Text được load từ field trong db bằng text theo ý muốn ?
    Gửi bởi toanzoom trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 17-05-2012, 09:38 PM
  4. lấy đoạn văn bản trong clipboard.
    Gửi bởi egr trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 14-09-2009, 08:16 AM
  5. Tạo nhiều Clipboard trong C#?
    Gửi bởi mysuncl trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-12-2007, 06:23 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn