将文本从记事本发送到未聚焦的 Form1
Send text from NotePad to unfocused Form1
这次我打开了一个 reciveText.txt
并且焦点在这个 txt
文件中,我想在上面写一些文字;并同时在 Form
的 textBox
中写入相同的文本,这将位于第二平面,我的意思是,没有焦点。如何在第二个平面中将文本从 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 复制并粘贴错误代码。以上是新的
这次我打开了一个 reciveText.txt
并且焦点在这个 txt
文件中,我想在上面写一些文字;并同时在 Form
的 textBox
中写入相同的文本,这将位于第二平面,我的意思是,没有焦点。如何在第二个平面中将文本从 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 复制并粘贴错误代码。以上是新的