如何使用Windows服务将焦点设置为“无标题 - 记事本”

本文关键字:标题 无标题 记事本 Windows 何使用 服务 设置 焦点 | 更新日期: 2023-09-27 18:32:50

我想将焦点设置在记事本(无题 - 记事本)上并在其中写入一些文本。我必须为此创建一个Windows服务。

我可以创建窗口服务,但不知道如何在记事本上设置焦点。

请向我提供 Windows 服务中的代码示例

我已经尝试了以下代码。但是没有运气。

namespace SampleService
{
    public partial class Service1 : ServiceBase
    {
        string application = string.Empty;
        public Service1()
        {
            InitializeComponent();
        }
    protected override void OnStart(string[] args)
    {
        GetTaskWindows();
        int iHandle = NativeWin32.FindWindow(null, application);
        NativeWin32.SetForegroundWindow(iHandle);
    }
    protected override void OnStop()
    {
        GetTaskWindows();
        int iHandle = NativeWin32.FindWindow(null, application);
        NativeWin32.SetForegroundWindow(iHandle);
    }

    private void GetTaskWindows()
    {
        // Get the desktopwindow handle
        int nDeshWndHandle = NativeWin32.GetDesktopWindow();
        // Get the first child window
        int nChildHandle = NativeWin32.GetWindow(nDeshWndHandle, NativeWin32.GW_CHILD);
        while (nChildHandle != 0)
        {
            // Get only visible windows
            if (NativeWin32.IsWindowVisible(nChildHandle) != 0)
            {
                StringBuilder sbTitle = new StringBuilder(1024);
                // Read the Title bar text on the windows to put in combobox
                NativeWin32.GetWindowText(nChildHandle, sbTitle, sbTitle.Capacity);
                String sWinTitle = sbTitle.ToString();
                {
                    if (sWinTitle.Length > 0)
                    {
                        if (sWinTitle.Contains("Notepad"))
                        {
                            application = sWinTitle;
                        }
                    }
                }
            }
            // Look for the next child.
            nChildHandle = NativeWin32.GetWindow(nChildHandle, NativeWin32.GW_HWNDNEXT);
        }
    }
  }
}

如何使用Windows服务将焦点设置为“无标题 - 记事本”

修复了自己。创建了一个专注于记事本的小应用程序,并使用 sendKeys 函数将文本写入记事本。