saikat banik

saikat banik

  • 1.9k
  • 30
  • 262

How to send Keypress events in MS word Application

Sep 15 2020 7:43 AM
Hi every one I am new in C# . I am facing some problem that's I want to send a keypress event (ALT+J+P+Q+S) to MS Word Application docx file .  Here is my code I am extracting the images from docx files then I want to send keypress event (ALT+J+P+Q+S) for each Image where in this code function name SaveInlineShapeToFile() under this function inlineShape.Select();  - is selecting each image in MSWordApplication docx file after that I want to send keypress (ALT+J+P+Q+S) that will execute in MS Word Application . Please help me to solve this problem . 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;
using System.Drawing;
using Application = Microsoft.Office.Interop.Word.Application;
namespace MSWordExtract
public class SaveWordImage : CodeActivity
protected override void Execute(CodeActivityContext context)
var wordApplication = new Application();
var document = wordApplication.Documents.Open(@"D:\C#\Project.docx");
for (var i = 1; i <= wordApplication.ActiveDocument.InlineShapes.Count; i++)
var inlineShapeId = i;
var thread = new Thread(() => SaveInlineShapeToFile(inlineShapeId, wordApplication,context));
protected void SaveInlineShapeToFile(int inlineShapeId, Application wordApplication, CodeActivityContext context)
var inlineShape = wordApplication.ActiveDocument.InlineShapes[inlineShapeId];
// Check data is in the clipboard
if (Clipboard.GetDataObject() != null)
var data = Clipboard.GetDataObject();
// Check if the data conforms to a bitmap format
if (data != null && data.GetDataPresent(DataFormats.Bitmap))
// Fetch the image and convert it to a Bitmap
var image = (Image)data.GetData(DataFormats.Bitmap, true);
var currentBitmap = new Bitmap(image);
// Save the bitmap to a file
currentBitmap.Save(@"D:\C#\Image_Test" + String.Format("img_{0}.png", inlineShapeId));

Brought to you by:

Answers (3)