C# 如何在C中使用进程将字符串传递给exe并从exe中检索#
我需要这个要求的解决方案 我想将字符串(或textbox1.text)值传递给当前正在运行的应用程序exe。然后,在另一个项目中,通过运行一个进程,我希望从该exe中检索字符串内容。我将使用该字符串content/msg进行进一步验证 请向我提供代码,说明如何在C#.NET术语中轻松实现此要求。使用 一个简单的方法是通过文件系统交换数据 应用程序A可以写入文件A.TXT,应用程序B可以写入文件B.TXT 然后,应用程序A可以监视文件B.TXT的更改,应用程序B可以监视A.TXT中的更改 发生更改时将文件加载到应用程序中,并处理读取的内容。使用 一个简单的方法是通过文件系统交换数据 应用程序A可以写入文件A.TXT,应用程序B可以写入文件B.TXT 然后,应用程序A可以监视文件B.TXT的更改,应用程序B可以监视A.TXT中的更改C# 如何在C中使用进程将字符串传递给exe并从exe中检索#,c#,C#,我需要这个要求的解决方案 我想将字符串(或textbox1.text)值传递给当前正在运行的应用程序exe。然后,在另一个项目中,通过运行一个进程,我希望从该exe中检索字符串内容。我将使用该字符串content/msg进行进一步验证 请向我提供代码,说明如何在C#.NET术语中轻松实现此要求。使用 一个简单的方法是通过文件系统交换数据 应用程序A可以写入文件A.TXT,应用程序B可以写入文件B.TXT 然后,应用程序A可以监视文件B.TXT的更改,应用程序B可以监视A.TXT中的更改 发生更改
当发生更改时,将文件加载到应用程序中并处理读取的内容。更好的方法是将这些值存储在共享对象中 另一种方法是使用interop FindWindow,并获取textbox的句柄并读取内容
Private Declare Auto Function FindWindow Lib "user32.dll" ( _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpClassName As
String, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpWindowName As
String _
) As IntPtr
Private Declare Auto Function FindWindowEx Lib "user32.dll" ( _
ByVal hWndParent As IntPtr, _
ByVal hWndChildAfter As IntPtr, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpszClass As
String, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpszWindow As
String _
) As IntPtr
Dim hWnd As IntPtr = FindWindow(vbNullString, "FSM")
If hWnd.Equals(IntPtr.Zero) Then
Return
End If
Dim hWndButton As IntPtr = _
FindWindowEx(hWnd, IntPtr.Zero, "BUTTON", "Button 1")
If hWndButton.Equals(IntPtr.Zero) Then
Return
End If
....
///
Private声明自动函数findwindowlib“user32.dll”(_
ByVal lpClassName As
弦_
ByVal lpWindowName As
串_
)As IntPtr
私有声明自动函数FindWindowEx Lib“user32.dll”(_
ByVal hWndParent作为IntPtr_
ByVal hWndChildAfter As IntPtr_
ByVal LPSZ类As
弦_
ByVal LPSZAS窗口
串_
)As IntPtr
Dim hWnd As IntPtr=FINDWNDOW(vbNullString,“FSM”)
如果hWnd.等于(IntPtr.零),则
返回
如果结束
尺寸hWndButton为IntPtr=_
FindWindowEx(hWnd、IntPtr.Zero、“按钮”、“按钮1”)
如果hWndButton.Equals(IntPtr.Zero),则
返回
如果结束
....
///
将“按钮”修改为win32文本框类名。试试这段VB代码,更好的方法是将这些值存储在共享对象中 另一种方法是使用interop FindWindow,并获取textbox的句柄并读取内容
Private Declare Auto Function FindWindow Lib "user32.dll" ( _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpClassName As
String, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpWindowName As
String _
) As IntPtr
Private Declare Auto Function FindWindowEx Lib "user32.dll" ( _
ByVal hWndParent As IntPtr, _
ByVal hWndChildAfter As IntPtr, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpszClass As
String, _
<MarshalAs(UnmanagedType.LPTStr), [In]()> ByVal lpszWindow As
String _
) As IntPtr
Dim hWnd As IntPtr = FindWindow(vbNullString, "FSM")
If hWnd.Equals(IntPtr.Zero) Then
Return
End If
Dim hWndButton As IntPtr = _
FindWindowEx(hWnd, IntPtr.Zero, "BUTTON", "Button 1")
If hWndButton.Equals(IntPtr.Zero) Then
Return
End If
....
///
Private声明自动函数findwindowlib“user32.dll”(_
ByVal lpClassName As
弦_
ByVal lpWindowName As
串_
)As IntPtr
私有声明自动函数FindWindowEx Lib“user32.dll”(_
ByVal hWndParent作为IntPtr_
ByVal hWndChildAfter As IntPtr_
ByVal LPSZ类As
弦_
ByVal LPSZAS窗口
串_
)As IntPtr
Dim hWnd As IntPtr=FINDWNDOW(vbNullString,“FSM”)
如果hWnd.等于(IntPtr.零),则
返回
如果结束
尺寸hWndButton为IntPtr=_
FindWindowEx(hWnd、IntPtr.Zero、“按钮”、“按钮1”)
如果hWndButton.Equals(IntPtr.Zero),则
返回
如果结束
....
///
将“按钮”修改为win32文本框类名。试试这段VB代码据我所知,您不想将字符串从一个可执行文件传递到另一个可执行文件。 您可以使用流程的参数来实现这一点:
System.Diagnostics.Process.Start("executable", "arg1 arg2 \"string with space as arg3\"");
参数部分必须符合命令行格式,每个参数用空格分隔,可以用双引号(“)分隔一个带空格的参数
在新流程中,可以在Main方法中检索这些参数
static void Main(string[] args)
在那里,
args[0]
将等于arg1
,args[0]
到arg2
和args[2]
到字符串,空格为arg3
据我所知,您不希望将字符串从一个可执行文件传递到另一个可执行文件。
您可以使用流程的参数来实现这一点:
System.Diagnostics.Process.Start("executable", "arg1 arg2 \"string with space as arg3\"");
参数部分必须符合命令行格式,每个参数用空格分隔,可以用双引号(“)分隔一个带空格的参数
在新流程中,可以在Main方法中检索这些参数
static void Main(string[] args)
其中,
args[0]
将等于arg1
,args[0]
到arg2
和args[2]
到字符串,空格为arg3
,只是为了澄清一下:应用程序A将字符串值传递给已经运行的应用程序B,随后,应用程序C从应用程序B检索该字符串值?只是为了澄清:应用程序a将字符串值传递给已经运行的应用程序B,然后,在以后的某个时间,应用程序C从应用程序B检索该字符串值?请提供如何将参数/字符串内容传递给exe的代码,以及如何在C#中检索相同的进程。给我提供完整的代码。使用上述一行代码,我无法从exe获取数据。请向我提供如何将参数/字符串内容传递给exe的代码,以及如何在C#中使用相同的进程检索相同的代码。给我提供完整的代码。使用上面的一行代码,我无法从exe获取数据。