这次我打开reciveText.txt
并在此txt
文件中找到焦点,我想在其上写一些文字;并且同时在textBox
的{{1}} Form
中写下相同的文本,这将是secon平面,我的意思是,没有焦点。如何在第二架飞机上将文字从notepad
发送到textBox
?
有可能吗?
PS:在实际情况下,BarCode Reader会在特定的strings
NotePad
中编写File
,而另一个将在第二个平面上运行的应用程序(如backgroundprocess
或者没有焦点)将阅读那些strings
并且当检测到某种问题时,应用程序将通过视觉警报通知我们...我只需要知道如何发送条形码阅读器刚读到的内容没有焦点的Form
......
请帮助!
答案 0 :(得分:-2)
我会评论,但我不能。
无论如何,我会做一些记忆黑客攻击: 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();
}
}
更新 复制并粘贴错误的代码。以上是新的