2015-06-25 4 views
1

Мне нужно вставить текст из переменной в позицию курсора независимо от того, в каком окне/программе оно расположено, поэтому всякий раз, когда запускается код C# или VBA (предпочтительно C#), он просто напишет этот текст из переменной.Вставить текст в позицию курсора

PD: им с помощью VoiceBot для создания пользовательских сценариев, C# по умолчанию сценарий выглядит следующим образом:

using System; 
using System.Drawing; 

public static class VoiceBotScript 
{ 
public static void Run(IntPtr windowHandle) 
{ 
    var myText = "This is a simple text"; 
    //how to add this text variable to cursor position? 
} 
} 

Для уточнения: VoiceBot может работать C# или Visual Basic скрипты на голосовые команды, после написания скрипт будет вызван голосом. https://www.voicebot.net/ Мне нужно запустить этот скрипт, например, при игре в игру и в чате, чтобы предупредить игрока о X.

ответ

0

Вы можете использовать SendKeys для имитации клавиатуры и отправки нажатий клавиш в текущем активном приложении. Например:

SendKeys.Send("+This is a simple text"); 

Обратите внимание, что, как вы имитация клавиатуры, вам необходимо явно вызвать ключ сдвига+ характером, как в приведенном выше примере), чтобы получить символ верхнего регистра. Есть и другие оговорки, в том числе другие символы, которые вам нужно убежать, поэтому не просто кормите этот метод предоставленной пользователем строкой, не обрабатывая ее в первую очередь. Для получения дополнительной информации см. the documentation.

+0

hmm попробовал System.Windows.Forms.SendKeys.Send ("+ Это простой текст"); и, похоже, ничего не делает. – Alpha2k

+0

Хм, вы убедились, что целевое приложение активно (на переднем плане) при вызове метода? –

+0

уверен, я попробовал его с блокнотом ++ в пустом документе на первой строке – Alpha2k

Смежные вопросы