将文本从记事本发送到未聚焦的 Form1

Send text from NotePad to unfocused Form1

这次我打开了一个 reciveText.txt 并且焦点在这个 txt 文件中,我想在上面写一些文字;并同时在 FormtextBox 中写入相同的文本,这将位于第二平面,我的意思是,没有焦点。如何在第二个平面中将文本从 notepad 发送到 textBox

有可能吗?

PS:在实际情况下,条码 Reader 将在特定的 NotePad File 中写入 strings,但另一个应用程序将是 运行 在第二个平面(如 backgroundprocess 或没有焦点)将读取那些 strings 并且当检测到某种问题时,应用程序将通过视觉警报通知我们......我只是需要知道如何将条形码 reader 刚刚阅读的内容发送给不专心的 Form...

请帮忙!

我想发表评论,但我不能。

无论如何,我会做一些记忆黑客: http://www.codeproject.com/Articles/670373/Csharp-Read-Write-another-Process-Memory

使用它访问记事本的内存(RAM)。可以看到明文

内存黑客攻击通常被忽视并且没有得到太多的信任。每个人都有键盘记录之类的东西,但那是不需要的。只需这样做:

这里来自 codeplex:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;

public class MemoryRead
{
const int PROCESS_WM_READ = 0x0010;

[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

[DllImport("kernel32.dll")]
public static extern bool ReadProcessMemory(int hProcess, 
  int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);

public static void Main()
{
    Process process = Process.GetProcessesByName("notepad")[0]; 
    IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id); 

    int bytesRead = 0;
    byte[] buffer = new byte[24]; //'Hello World!' takes 12*2 bytes because of Unicode 


    // 0x0046A3B8 is the address where I found the string, replace it with what you found
    ReadProcessMemory((int)processHandle, 0x0046A3B8, buffer, buffer.Length, ref bytesRead);

    Console.WriteLine(Encoding.Unicode.GetString(buffer) + 
       " (" + bytesRead.ToString() + "bytes)");
    Console.ReadLine();
}
}

UPDATE 复制并粘贴错误代码。以上是新的