Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 10

Отправка текста для неактивного окна блокнота

07.09.2013, 04:26. Показов 7627. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи, уважаемые обитатели форума. Пишу не большую программку, которая при нажатии определенных клавиш должна выполнять некоторые функции:
-Открывать блокнот.
-Выводить в неактивное окно блокнота зацикленную фразу.
-Останавливать цикл.
-Закрывать блокнот и окно программы.
Программа на банальных 4 клавиши. Пока что управился с первой и последней задачей. И более или мене на уровне "не первый раз вижу" разобрался с hendle-ми (намешал горох с капустой но работает). Но вот с отправкой в блокнот фразы - не пойму что делать. Не могли бы Вы мне помочь с этим? Ну и заодно ткнуть носом в места не хорошего кода (хотелось бы учиться кодить правильно).

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
namespace Work_with_notepad
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        const int WM_KEYDOWN = 0x100;
        const int WM_SETTEXT = 0xC;
 
        [DllImport("user32.dll")]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
 
        [DllImport("user32.dll")]
        static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, UIntPtr
        wParam, IntPtr lParam);
 
        [DllImport("User32.Dll", EntryPoint = "PostMessageA")]
        static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
 
        [DllImport("user32.dll")]
        static extern byte VkKeyScan(char ch);
 
        private static void VirtualKeyDown(char key)
        {
            IntPtr handle = FindWindow("Notepad", null);
 
            IntPtr editHandle = FindWindowEx(handle, IntPtr.Zero, "Edit", null);
 
 
            if (editHandle != IntPtr.Zero)
            {
                PostMessage(editHandle, WM_SETTEXT, VkKeyScan(key), 0);
 
            }
 
        }
 
 
        private void button4_Click(object sender, EventArgs e)
        {
            Process note = new Process();
 
            note.StartInfo.FileName="notepad";
            note.Start();
            button4.Enabled = false;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            string target_name = "notepad";
            Process[] local_procs = Process.GetProcesses();
            try
            {
                Process target_proc = local_procs.First(p => p.ProcessName == target_name);
                target_proc.Kill();
            }
            finally
            {
                Application.Exit();
            }
            button3.Enabled = false;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {        
            button1.Enabled = false;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            button2.Enabled = false;
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2013, 04:26
Ответы с готовыми решениями:

Скриншот неактивного окна программы
Здравствуйте! Мучает вопрос который день: как сделать скриншот окна моей программы, если оно неактивно или свернуто? Пожалуйста...

Сделать скриншот неактивного окна игры
Мне нужна функция DllCall (AutoIt) в C#. Заранее благодарю. Добавлено через 2 часа 46 минут Вообщем мне надо сделать скриншот...

Скриншот неактивного окна игры. Пример
Мне нужен пример программы ,которая делает скриншот неактивного окна игры и сохраняет всё это в файл формата .jpg . Заранее спасибо.

21
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 10
11.09.2013, 19:37  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Qwertiy Посмотреть сообщение
С чего бы это?
а как тогда? Может, подскажите пару дельных советов?
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
11.09.2013, 21:02
Цитата Сообщение от Woolfer Посмотреть сообщение
а как тогда?
Это условие либо истинно (на момент вызова GetProcessesByName был запущенный блокнот), либо падает (в случае если массив пустой). Причём даже первый случай не означает факт его запущенности в данный момент (можно проверять другое свойство, но это не имеет особого смысла). В любом случае, в массиве никогда не окажется null.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2013, 21:02

Как найти Handle окна на примере блокнота
Приветствую. Очень тяжело освоить hadle'ы не имея опыта работы с ними, перечитал много примеров и прочего, но... ничего не получается.....

Запуск блокнота и автоматический ввод текста в него через компиляцию в Visual Studio
Ребята, нужна помощь. Надо написать в консольном приложении код, который после компиляции делает следующее: 1. Открывает блокнот с...

Как задать цвет текста неактивного элемента?
Windows Studio 2013, приложение WindowsForms На форме лежит GroupBox, внутри которого кнопки, надписи, комбобоксы. Задача - при...

Как для неактивного окна применить клавиатуру активного
Надо понять, как для неактивного окна применить клавиатуру активного. Сам момент есть только как это сделать.

Получить цвет пикселя из неактивного окна, перекрытого другими окнами окна
Можно ли получить цвет пикселя из неактивного или перекрытого другими окна? Какие есть способы? Погуглил, вроде говорят что можно сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru