8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261

Возможно ли посылать нажатие кнопки в не активное окно виртуальной машины

29.06.2015, 03:54. Показов 1715. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста возможно ли посылать нажатие кнопки в не активное окно виртуальной машины?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2015, 03:54
Ответы с готовыми решениями:

Нажатие кнопки в активное окно
Как создать эмуляцию нажатия клавиши ,в активное окно? По выбору процесса? Например есть у нас процесс под названием java.exe при нажатии...

Нажатие кнопки на виртуальной клавиатуре
Возникла проблема: необходимо отслеживать нажатие на клавиши на виртуальной клавивтуре, однако onKeyDown на виртуальную клавиатуру не...

Как сделать имитацию нажатия кнопки и передачи её значения в активное окно
Подскажите пожалуйста как сделать имитацию нажатия кнопки в WPF и передачи её значения в активное окно(TextBox например). Пробовал сделать...

10
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.06.2015, 12:48
riotel, SendMessage работает в хэндлом, так что конечно можно.
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
29.06.2015, 16:57  [ТС]
Уважаемый Psilon не могли бы вы мне помочь разобраться с этим моментом. Дело в том что у меня не получается отослать сообщение даже блокноту. Посмотрите пожалуйста. Приложу код.

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
using System;
using System.Threading;
using System.Runtime.InteropServices;
 
namespace PostMessage
{
    class Program
    {
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
 
        static void Main(string[] args)
        {
            while (true)
            {
                IntPtr hwndmain = FindWindow("Notepad", "Безымянный — Блокнот");
                if (hwndmain.ToString() != "0")
                {
                    PostMessage(hwndmain, 0x0100, 0x50, 0x50);
                    Thread.Sleep(1000);
                }
                else
                {
                    Console.WriteLine("не нашли окно");
                }
            }
        }
    }
}
Добавлено через 1 час 57 минут
мне кажется может нужно посылать сообщение какому нибудь дочернему окну?

p.s. С калькулятором всё хорошо

Добавлено через 17 минут
Попробовал посылать дочерним окнам. С калькуляторов всё хорошо. С блокнотом и виртуалкой беда.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace Посылаем_нажатие_клавиши_всем_дочерним_окнам
{
    class Program
    {
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
 
        delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);
 
        [DllImport("user32.dll")]
        static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn,
            IntPtr lParam);
 
        static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int processId)
        {
            var handles = new List<IntPtr>();
 
            foreach (ProcessThread thread in Process.GetProcessById(processId).Threads)
                EnumThreadWindows(thread.Id, (hWnd, lParam) => { handles.Add(hWnd); return true; }, IntPtr.Zero);
 
            return handles;
        }
 
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                foreach (var handle in EnumerateProcessWindowHandles(Process.GetProcessesByName("notepad").First().Id))
                {
                    Console.WriteLine(handle);
                    PostMessage(handle, 0x0100, 0x61, 0);
                    Thread.Sleep(1000);
                }
                Thread.Sleep(1000);
            }
        }
    }
}
Добавлено через 1 час 8 минут
Возможно нужно посылать не кейдавн а какое нибудь другое сообщение?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.06.2015, 23:27
Лучший ответ Сообщение было отмечено riotel как решение

Решение

riotel, да, в окне блокнота нужно найти дочернее приложение и посылать в него.

Можно воспользоваться программой Spy++ (идет в комплекте со студией, можно запустить командой spyxx.exe из командной строки студии Developer Command Prompt, она есть в папке visual studio tools в пуске), она достаточно удобная, можно в списке процессов найти notepad и посмотреть, какие у него дочерние окна. Вам на будущее, в винапи всё - окно. Радиобаттон - окно. Кнопка - окно. Текстбокс - тоже окно. Собственно, таким нехитрым образом объясняется, почему система так называется У каждого естественно свой хендл и прочие атрибуты.

Подобронее по Spy++ тут: https://msdn.microsoft.com/ru-... 70395.aspx
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
30.06.2015, 01:27  [ТС]
так ведь я вроде бы перебираю все дочерние окна разве нет? Второй кусок кода.

Добавлено через 1 минуту
C#
1
var handle in EnumerateProcessWindowHandles(Process.GetProcessesByName("notepad").First().Id)
Добавлено через 3 минуты
Ведь если я пошлю сообщение в каждое дочернее окно то и в нужное должно дойти?

Добавлено через 10 минут
про spy++ намножко слышал, даже пытался понять что не так с сообщениями которые я посылаю

Добавлено через 34 минуты
о чудо

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Runtime.InteropServices;
 
namespace ConsoleApplication3
{
    class Program
    {
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
 
 
        static void Main(string[] args)
        {
            while (true)
            {
                IntPtr hWindow = FindWindow(null, "Безымянный — Блокнот");
 
                if (hWindow.ToString() != "0")
                {
                    Console.WriteLine("Найден блокнот");
                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "Edit", null);
 
                    if (hWindow.ToString() != "0")
                    {
                        Console.WriteLine("Нашли окно с класом Edit");
 
                        PostMessage(hWindow, 0x0100, 0x61, 0);
                    }
                    else
                    {
                        Console.WriteLine("Не найдено окна с класом Edit");
                    }
                }
                else
                {
                    Console.WriteLine("Не найдено блокнота");
                }
 
                Console.ReadKey();
            }
        }
    }
}
Добавлено через 3 минуты
блокнот победил. Теперь нужно найти в какое дочернее окно виртуальной машины посылать сообщения. Меня беспокоит что когда я посылал команды (keyb_event) в активное окно виртуальной машины она не воспринимала VK_ клавиши а только scancod.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2015, 02:52
riotel,
C#
1
if (hWindow != IntPtr.Zero)
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
30.06.2015, 03:05  [ТС]
окна virtual pc не принимают никаких сообщений от клавиатуры хоть убей. Клавиши нажимаются но отследить не могу. Устал. не знаю куда слать и что слать.

Добавлено через 51 секунду
передвижения и нажатия мыши ловят на ура, но не клавиши
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2015, 03:07
riotel, ну тут уже я не знаю, такими извращениями не занимался Виртуалки зачастую и безо всяких шаманств глючат (чего стоит только возобновление копи-паста в VMWare или установка её же тулзов на ubuntu с коррупцией всего образа ОС...), что уж говорить про более сложные вещи
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
30.06.2015, 03:44  [ТС]
ну должен же быть способ отследить (( Наверное придётся сдаться
попробую покопаться в потоках(процессов), какие им приходят сообщения

Добавлено через 27 минут
Я нашёл пациента. По неопытности забыл что окна бывают невидимыми.

но не получается получить его дескриптор. через спай пробил имя и класс.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
 
using System.Runtime.InteropServices;
 
namespace ConsoleApplication3
{
    class Program
    {
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
 
 
        static void Main(string[] args)
        {
            while (true)
            {
                IntPtr hWindow = FindWindow(null, "VP - Windows Virtual PC");
                //IntPtr hWindow = (IntPtr)0x000B03E0;
                if (hWindow.ToString() != "0")
                {
                    Console.WriteLine("Найден блокнот");
                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "IHWindowClass", "Input Capture Window");
 
                    if (hWindow != IntPtr.Zero)
                    {
                        Console.WriteLine("Нашли окно с класом Edit");
                    
                        PostMessage(hWindow, 0x0100, 0x61, 0);
                    }
                    else
                    {
                        Console.WriteLine("Не найдено окна с класом Edit");
                    }
                }
                else
                {
                    Console.WriteLine("Не найдено блокнота");
                }
 
                Thread.Sleep(1000);
            }
        }
    }
}
0
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
30.06.2015, 04:02  [ТС]
0
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
01.07.2015, 04:05  [ТС]
до хэндла добрался

Добавлено через 17 секунд
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
 
using System.Runtime.InteropServices;
 
namespace ConsoleApplication3
{
    class Program
    {
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
 
 
        static void Main(string[] args)
        {
            while (true)
            {
                IntPtr hWindow = FindWindow(null, "VP - Windows Virtual PC");
                //IntPtr hWindow = (IntPtr)0x000B03E0;
                if (hWindow != IntPtr.Zero)
                {
                    Console.WriteLine("Нашли окно 1");
 
                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "#32770", null);
 
                    if (hWindow != IntPtr.Zero)
                    {
 
                        Console.WriteLine("Нашли окно 2");
 
                        hWindow = FindWindowEx(hWindow, IntPtr.Zero, "ATL:000007FEF1E7AEA0", null);
 
                        if (hWindow != IntPtr.Zero)
                        {
 
                            Console.WriteLine("Нашли окно 3");
 
                            hWindow = FindWindowEx(hWindow, IntPtr.Zero, "UIMainClass", null);
 
                            if (hWindow != IntPtr.Zero)
                            {
                                Console.WriteLine("Нашли окно 4");
 
                                hWindow = FindWindowEx(hWindow, IntPtr.Zero, "UIContainerClass", null);
 
                                if (hWindow != IntPtr.Zero)
                                {
                                    Console.WriteLine("Нашли окно 5");
 
                                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "IHWindowClass", "Input Capture Window");
 
                                    if (hWindow != IntPtr.Zero)
                                    {
                                        Console.WriteLine("Нашли окно 6");
                                        Console.WriteLine(hWindow);
                                        //PostMessage(hWindow, 0x0100, 0x2A0001, 1);
                                        //PostMessage(hWindow, 0x0102, 0x61, 0);
                                        //PostMessage(hWindow, 0x0101, 0x2A0001, 1);
 
                                        PostMessage(hWindow, 0x100, 13, (int)IntPtr.Zero);
                                        PostMessage(hWindow, 0x101, 13, (int)IntPtr.Zero);
                                        
                                    }
                                    else
                                    {
                                        Console.WriteLine("Не нашли окно 6");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Не нашли окно 5");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Не нашли окно 4");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Не нашли окно 3");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Не нашли окно 2");
                    }
                }
                else
                {
                    Console.WriteLine("Не нашли окно 1");
                }
 
                Console.ReadKey();
            }
        }
    }
}
Добавлено через 1 минуту
название одного класса меняется, но решим эту проблему чуть позже.

Не знаю как отправить сканкод по postmessage. Как я выше опасался виртуалка не кушает vk_

Добавлено через 11 часов 18 минут
получилось отправить скан код, но этого оказалось недостаточно. Не получается отправить нажатия (

Добавлено через 9 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern uint MapVirtualKey(uint uCode, uint uMapType);
 
        public static void sendKey(IntPtr hwnd, IntPtr keyCode, bool extended)
        {
            uint scanCode = MapVirtualKey((uint)keyCode, 0);
            uint lParam;
 
            lParam = (0x00000001 | (scanCode << 16));
            if (extended)
            {
                lParam = lParam | 0x01000000;
            }
 
            PostMessage(hwnd, (UInt32)0x0100, (IntPtr)keyCode, (IntPtr)lParam);
            PostMessage(hwnd, (UInt32)0x0101, (IntPtr)keyCode, (IntPtr)lParam);
        }
Добавлено через 6 часов 57 минут
Понял что lParam можно посмотреть в spy++, и самому указать такой же. но нечего

Добавлено через 3 часа 44 минуты
Я повторил полностью Iparam, не нажимается. Но выяснил что нажимается когда окно в фокусе.

тоесть нужно заставить окно думать что оно в фокусе?

Добавлено через 9 минут
Офигеть

Я сделал это

Добавлено через 12 секунд
C#
1
2
3
4
5
PostMessage(hWindow, 0x0007, 0, 0);
                                        //SetForegroundWindow(hWindow);
                                        PostMessage(hWindow, 0x100, 0x51, 0x00100001);
                                        Thread.Sleep(100);
                                        PostMessage(hWindow, 0x101, 0x51, 0xC0100001);
Добавлено через 1 минуту
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
 
using System.Runtime.InteropServices;
 
namespace ConsoleApplication3
{
    class Program
    {
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
 
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
 
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, uint lParam);
 
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hwnd, UInt32 wMsg, IntPtr wParam, Char lParam);
 
        [DllImport("User32.dll")]
        static extern int SetForegroundWindow(IntPtr hWnd);
 
        [DllImport("user32.dll")]
        static extern byte VkKeyScan(char ch);
 
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern uint MapVirtualKey(uint uCode, uint uMapType);
 
        public static void sendKey(IntPtr hwnd, IntPtr keyCode, bool extended)
        {
            uint scanCode = MapVirtualKey((uint)keyCode, 0);
            uint lParam;
 
            lParam = (0x00000001 | (scanCode << 16));
            if (extended)
            {
                lParam = lParam | 0x01000000;
            }
 
            //PostMessage(hwnd, 0x0100, keyCode, lParam);
            //PostMessage(hwnd, 0x0101, keyCode, (IntPtr)lParam);
        }
 
        static void Main(string[] args)
        {
            while (true)
            {
                IntPtr hWindow = FindWindow(null, "VP - Windows Virtual PC");
                //IntPtr hWindow = (IntPtr)0x000B03E0;
                if (hWindow != IntPtr.Zero)
                {
                    //SetForegroundWindow(hWindow);
                    Console.WriteLine("Нашли окно 1");
 
                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "#32770", null);
 
                    if (hWindow != IntPtr.Zero)
                    {
 
                        Console.WriteLine("Нашли окно 2");
 
                        hWindow = FindWindowEx(hWindow, IntPtr.Zero, "ATL:000007FEF099AEA0", null);
 
                        if (hWindow != IntPtr.Zero)
                        {
 
                            Console.WriteLine("Нашли окно 3");
 
                            hWindow = FindWindowEx(hWindow, IntPtr.Zero, "UIMainClass", null);
 
                            if (hWindow != IntPtr.Zero)
                            {
                                Console.WriteLine("Нашли окно 4");
 
                                hWindow = FindWindowEx(hWindow, IntPtr.Zero, "UIContainerClass", null);
 
                                if (hWindow != IntPtr.Zero)
                                {
                                    Console.WriteLine("Нашли окно 5");
 
                                    hWindow = FindWindowEx(hWindow, IntPtr.Zero, "IHWindowClass", "Input Capture Window");
 
                                    if (hWindow != IntPtr.Zero)
                                    {
                                        Console.WriteLine("Нашли окно 6");
                                        Console.WriteLine(hWindow);
 
                                        //sendKey(hWindow, (IntPtr)0x51, false);
 
                                        PostMessage(hWindow, 0x0007, 0, 0);
                                        PostMessage(hWindow, 0x100, 0x51, 0x00100001);
                                        PostMessage(hWindow, 0x101, 0x51, 0xC0100001);
                                    }
                                    else
                                    {
                                        Console.WriteLine("Не нашли окно 6");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Не нашли окно 5");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Не нашли окно 4");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Не нашли окно 3");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Не нашли окно 2");
                    }
                }
                else
                {
                    Console.WriteLine("Не нашли окно 1");
                }
 
                Console.ReadKey();
            }
        }
    }
}
Добавлено через 59 секунд
Двое суток ковыряний. Может кому нибудь пригодится. Тема закрыта.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2015, 04:05
Помогаю со студенческими работами здесь

Настройка выхода с виртуальной машины в интернет от имени хост-машины
Добрый день. Столкнулся с проблемой выхода в интернет после того как поднял виртуалку на VirtualBox c Ubuntu - на выходе из сети стоит...

Послать нажатие кнопки в конкретное окно
Скажите пожалуйста, как послать нажатие кнопки в конкретное окно? Использую keybd_event

Как посылать сообщения от машины к машине?
Мне необходимо посылать сообщения от компьютера к компьютеру, а я не знаю, как лучше это сделать и с помощью каких средств. Не подскажете?...

Компьютер не реагирует на нажатие кнопки питания. Возможно, проблема совместимости БП и УПС.
ВСЕМ ДОБРОГО ВРЕМЕНИ СУТОК! У меня была проблема в невзаимодействии УПС И БЛОКА ПИТАНИЯ...я ходил на фирму отдал этот блок питания с...

Как посылать пакеты из программки на все машины сети в определенный порт?
Как посылать пакеты из программки на все машины сети в определленый порт? Просто надо сделать небольшой чат под ЛВС, но хотелось бы без...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru