Я хочу захватить, когда кто-то использует CtrlC даже когда выключено фокус. im с использованием Visual Basic 2010.Vb.net Capture Ctrl + C
ответ
Ладно, так что у меня есть для вас решение, что я проверил работы. Вам понадобится библиотека C#, хотя требуется небольшая дополнительная работа, но не много. Создайте библиотеку классов C# и добавьте класс под названием «MyHooks» и добавьте ссылку как на System.Windows.Forms.dll, так и на библиотеку, к которой вы привязали вас. Ваша основная программа, которая будет использовать это, будет ссылаться на эту библиотеку C# и System.Windows.Forms.
namespace HookManager.Interface {
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Gma.UserActivityMonitor;
using System.Windows.Forms;
public static class MyHooks {
public static void HookControlC(KeyEventHandler keyDown, KeyEventHandler keyUp) {
HookManager.KeyDown += keyDown;
HookManager.KeyUp += keyUp;
}
}
}
Теперь в программе можно сделать что-то вроде:
Imports hookmanager.interface
Imports System.Windows.Forms
Module Module1
Sub Main()
MyHooks.HookControlC(AddressOf ControlC_KeyDown, AddressOf ControlC_KeyUp)
While True
Application.DoEvents()
End While
End Sub
Private m_ControlKeyPressed As Boolean = False
Private Sub ControlC_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyValue = 162 OrElse e.KeyValue = 163 Then
m_ControlKeyPressed = True
End If
If m_ControlKeyPressed Then
If e.KeyCode = Keys.C Then
Console.WriteLine("You captured, control c!")
Console.WriteLine(Clipboard.GetText())
End If
End If
End Sub
Private Sub ControlC_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs)
If m_ControlKeyPressed Then
If e.KeyValue = 162 OrElse e.KeyValue = 163 Then
m_ControlKeyPressed = False
End If
End If
End Sub
End Module
Вам нужно создать крючок низкого уровня. This CodeProject example работает идеально, и я сам использовал его для учебных целей. Я немного изменил код, но вот простой пример того, что вы могли бы сделать с этой библиотекой. Опять же, это просто пример и может не отражать окончательный код, но его можно легко модифицировать, чтобы захватить Control + C, и библиотека хорошо документирована.
private static bool m_ControlKeyPressed = false;
private static void ControlC_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyValue == 162 || e.KeyValue == 163) {
m_ControlKeyPressed = true;
}
if (m_ControlKeyPressed) {
if (e.KeyCode == Keys.C) {
e.SuppressKeyPress = true; // Suppress, or do something with it
}
}
}
private static void ControlC_KeyUp(object sender, KeyEventArgs e) {
if (m_ControlKeyPressed) {
if (e.KeyValue == 162 || e.KeyValue == 163) {
m_ControlKeyPressed = false;
}
}
}
Преобразование в VB.NET
Private Shared m_ControlKeyPressed As Boolean = False
Private Shared Sub ControlC_KeyDown(sender As Object, e As KeyEventArgs)
If e.KeyValue = 162 OrElse e.KeyValue = 163 Then
m_ControlKeyPressed = True
End If
If m_ControlKeyPressed Then
If e.KeyCode = Keys.C Then
e.SuppressKeyPress = True
End If
End If
End Sub
Private Shared Sub ControlC_KeyUp(sender As Object, e As KeyEventArgs)
If m_ControlKeyPressed Then
If e.KeyValue = 162 OrElse e.KeyValue = 163 Then
m_ControlKeyPressed = False
End If
End If
End Sub
- 1. cmd module: capture Ctrl + C
- 2. wxPython ObjectListView Capture Ctrl-C shortcut
- 3. VB.NET Screen Capture
- 4. Программа Screen Capture в VB.NET
- 5. Capture CTRL + V или вставить текстовое поле в .NET
- 6. Захват ctrl + V в VB.NET combobox
- 7. FabricJs Ctrl C + Ctrl V
- 8. VB.NET Window Screen Capture (ALT + PRINTSCREEN)
- 9. Visual C Webcam Capture
- 10. Image Capture in C#
- 11. Capture Audio в C++
- 12. JavaScript или jquery capture ctrl + только щелчок левой кнопкой мыши
- 13. jQuery capture CTRL + S и Command + S (Mac)
- 14. Capture console exit C# в окнах 7
- 15. C# WPF Capture Keyboard and Mouse
- 16. Windows Constants для Ctrl + X, Ctrl + C и Ctrl + V
- 17. Win32 API - Ctrl A + Ctrl C
- 18. PHP capture capture text
- 19. C++ lambda capture this vs capture по ссылке
- 20. C++ SIGINT и SIGSTP над ctrl + c и ctrl + z
- 21. Scala: Как предотвратить подпроцессы получать CTRL + C/Ctrl + C/SIGINT
- 22. Linux C/C++ клавиатура ctrl + [somekey] и ctrl + alt + [somekey}
- 23. D3D11 Screen Capture in C++
- 24. C# Screen Capture Игнорирование приложения
- 25. Capture неактивное окно с C#
- 26. Capture unix output with C#
- 27. Capture DragDrop Событие RichTextBox C#
- 28. C++ console «Screen capture» issue
- 29. C# Regex: Capture все до
- 30. C# Console Application Keypress capture
спасибо плохо проверить это прямо сейчас. – Joseph
да это не будет работать для меня, этот код isnt vb.net, вы можете сказать от; в конце, плюс «private static» – Joseph
Вам просто нужно ссылаться на библиотеку в вашем проекте, код, который вы напишете, будет Vb.Net, который очень легко конвертировать, поскольку они являются необычно похожими. Кроме того, в Интернете есть конвертеры, которые преобразуют C# в Vb.Net и наоборот. Вам просто нужно приложить немного усилий. –