Jump to content

Modify clipboard RTF contents


Recommended Posts

I'm trying to manipulate clipboard data that's in registered format called "Rich Text Format".

(I want to do a substitution/replace: Part of the RTF code is "\cf3" and I want to change it to "\cf0")

since Rich Text Format is not standard, I can't use clipget.

I've gotten far enough to know that I need to refer to the memory contents by its "unsigned integer value", which is returned to me by "_clipboard_registerformat"

But from there, how do I return the contents, do my search and replace, and then put my modified info back into the clipboard?

Any help or guidance appreciated.

Bob

#include-once

#include <Memory.au3>
#include <WinAPI.au3>
#include<clipboard.au3>


$rtf_guid = _clipboard_RegisterFormat ("Rich Text Format")
MsgBox(4096,"rtf guid",$rtf_guid)
$contents= _clip_board_GetData($rtf_guid)
MsgBox(4096,"title",$contents)
Func _clip_board_GetData($rtf_guid = 1)
    Local $hMemory, $tData

    If Not _clip_board_IsFormatAvailable($rtf_guid) Then Return SetError(-1, 0, 0)
    If Not _clipboard_Open(0) Then Return SetError(-2, 0, 0)
    $hMemory = _clip_board_GetDataEx($rtf_guid)
    MsgBox(4096,"hmemory",$hMemory)
    _clipboard_Close()
    If $hMemory = 0 Then Return SetError(-3, 0, 0)
;Experimenting with trying to return the memory contents by converting it to text
;Switch $rtf_guid
    ;Case $CF_TEXT, $CF_OEMTEXT
            $tData = DllStructCreate("char Text[2097152]", $hMemory)
        ;$tData = DllStructCreate("char Text[8192]", $hMemory)
        ;Return DllStructGetData($tData, "Text")
    ;Case $CF_UNICODETEXT
            Return _WinAPI_WideCharToMultiByte($tData)
    ;Case Else
        ;Return $hMemory
;EndSwitch
EndFunc 

Func _clip_board_IsFormatAvailable($rtf_guid)
    Local $aResult

    $aResult = DllCall("User32.dll", "int", "IsClipboardFormatAvailable", "int", $rtf_guid)
    Return $aResult[0] <> 0
EndFunc

Func _Clip_Board_GetDataEx($rtf_guid = 1)
    Local $aResult

    $aResult = DllCall("User32.dll", "hwnd", "GetClipboardData", "int", $rtf_guid)
    
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc
Link to comment
Share on other sites

  • 8 months later...

I am not the author, but i have a similar issue (extract the content of the clipboard in RTF format), so i thought that since this topic is 6 month old, i will try to bump it a little :D

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...