How to open Notepad from a Windows Forms application and place some text in it?

前端 未结 3 1934
抹茶落季
抹茶落季 2021-01-06 03:07

I\'m using VB.NET and Visual Studio 2008.

My question is: How do I open Notepad from a Windows Forms application, and then place some text string in the Notepad wind

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-06 03:39

    1. Use Process.Start with the property ShellExecute set to true;
    2. Use the clipboard: http://www.dreamincode.net/forums/topic/40011-how-do-i-put-text-in-another-program/

    Update

    Process.Start returns a Process object which has a MainWindowHandle property. Use that handle when sending text instead of the FindWindow in the above mentioned link.

    Update 2

    Some code

    Const WM_SETTEXT As Integer = &HC
     _
    Private Shared Function SendMessage(hWnd As IntPtr, Msg As Integer, wParam As IntPtr,  lParam As String) As IntPtr
    End Function
    
    Private Shared Sub Main()
        'ProcessStartInfo is used to instruct the Process class
        ' on how to start a new process. The UseShellExecute tells
        ' the process class that it (amongst other) should search for the application
        ' using the PATH environment variable.
        Dim pis As ProcessStartInfo = New ProcessStartInfo("notepad.exe")
        pis.UseShellExecute = True
    
        ' The process class is used to start the process
        ' it returns an object which can be used to control the started process
        Dim notepad As Process = Process.Start(pis)
    
        ' SendMessage is used to send the clipboard message to notepad's
        ' main window.
        Dim textToAdd As String = "Text to add"
        SendMessage(notepad.MainWindowHandle, WM_SETTEXT, IntPtr.Zero, textToAdd)
    End Sub
    

提交回复
热议问题