Retrieve HTML from Clipboard
MSDN:
This is sample code. Add error handling and adjust to your requirements as necessary. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 lcHtml = HtmlFromClipboard() IF NOT ISNULL(lcHtml) lnStartHTML = VAL(STREXTRACT(lcHtml, "StartHTML:", "")) lnEndHTML = VAL(STREXTRACT(lcHtml, "EndHTML:", "")) * If StartFragment is present, retrieve HTML fragment IF ("StartFragment" $ lcHtml) lnStartHTML = VAL(STREXTRACT(lcHtml, "StartFragment:", "")) lnEndHTML = VAL(STREXTRACT(lcHtml, "EndFragment:", "")) ENDIF lcHtml = SUBSTR(lcHtml, lnStartHTML + 1, lnEndHTML - lnStartHTML) ***STRTOFILE(lcHtml, "Temp2.html") ***Modify command Temp2.html NOWAIT ELSE ? "HTML is not on clipboard" ENDIF RETURN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 FUNCTION HtmlFromClipboard LOCAL lnHtmlFormat, lhMem, lnPtr, lcHtml lcHtml = "" lcHtml = NULL * Load required Windows API functions =LoadApiDlls() * Register HTML format lnHtmlFormat = RegisterClipboardFormat("HTML Format") * open clipboard = OpenClipboard(_SCREEN.hWnd) * Uncomment to see what formats are present on clipboard *= EnumerateClipboardFormats() lhMem = GetClipboardData (lnHtmlFormat) IF lhMem = 0 * No HTML data on Clipboard = CloseClipboard() RETURN lcHtml ENDIF lnPtr = GlobalLock(lhMem) IF lnPtr = 0 * No HTML data on Clipboard = CloseClipboard() RETURN lcHtml ENDIF lnLen = lstrlen (lnPtr) lcHtml = SYS(2600, lnPtr, lnLen) =GlobalUnlock(lhMem) *= EmptyClipboard() = CloseClipboard() RETURN lcHtml FUNCTION LoadApiDlls * Clipboard Functions DECLARE LONG OpenClipboard IN WIN32API LONG HWND DECLARE LONG CloseClipboard IN WIN32API DECLARE LONG RegisterClipboardFormat IN WIN32API STRING lpszFormat DECLARE Long GetClipboardData IN WIN32API Long lnFormat * Memory Management Functions DECLARE LONG GlobalLock IN WIN32API LONG HMEM DECLARE LONG GlobalUnlock IN WIN32API LONG HMEM DECLARE Long lstrlen IN WIN32API Long RETURN FUNCTION EnumerateClipboardFormats * Enumerate the file formats in the clipboard. * Helpful for testing, otherwise is not required. DECLARE Long EnumClipboardFormats IN WIN32API Long lnFormat lnFormat = 0 lnFormat = EnumClipboardFormats(lnFormat) lnCntr = 1 DO WHILE lnFormat > 0 ? lnCntr, lnFormat lnCntr = lnCntr + 1 lnFormat = EnumClipboardFormats(lnFormat) ENDDO ENDFUNC
Comments