SNoteBook

SNoteBook

Программист-владелец статейного сайта, разбираюсь в технике
Пикабушник
79 рейтинг 1 подписчик 2 подписки 6 постов 0 в горячем
Награды:
5 лет на Пикабу
5

Шифруем файл через Visual Basic 2010

У меня на компьютере не установлен антивирус, а пароли хранятся в файле. Решил защитить шифрованием. Но бесплатных программ не нашёл. Думаю, уж лучше сделать свою. Хотел попробовать на C#, но среду разработки устанавливать - одна морока)) Если кто хочет этим заниматься, переходите по ссылке. А я - потом.


А пока - на Visual Basic:


Public Sub encrypt(ByVal Pass As String, ByVal InputFile As String, ByVal OutputFile As String, ByVal Crypt As Boolean)
Dim ByteIN As Byte() = IO.File.ReadAllBytes(InputFile), ByteOut(ByteIN.Length - 1) As Byte, PL As Integer = Pass.Length, bPass() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(Pass), biPass(bPass.Length - 1) As Integer
bPass.CopyTo(biPass, 0)
If Crypt Then
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (ByteIN(i) + biPass(i Mod PL)) Mod 256
Next
Else
For i As Integer = 0 To ByteIN.Length - 1
ByteOut(i) = (256 + ByteIN(i) - biPass(i Mod PL)) Mod 256
Next
End If
IO.File.WriteAllBytes(OutputFile, ByteOut)
End Sub
Function B(ByVal S As Char, ByVal Inp As Byte, ByVal Crypt As Boolean) As Byte
If Crypt Then
Return IIf(Inp + Asc(S) > 225, Inp + Asc(S) - 256, Inp + Asc(S))
Else
Return IIf(Inp - Asc(S) < 0, 256 + Inp - Asc(S), Inp - Asc(S))
End If
End Function

Шифрует просто замечательно. Побитно. Я один раз файл pic.png зашифровал в pic2.jpg и потом расшифровал в pic3.bmp. Конвертирует довольно хорошо. А ещё может сделать из exzeshnik.exe exzeshnik.txt и наоборот.

Кстати, после шифрования надо убить входной файл командой Kill(<файл>). В приведённом коде это не предусмотрено, это надо сделать после вызова процедуры encrypt() c необходимыми параметрами. Объясняю, что за параметры:


Pass - код шифрования;

InputFile - входной файл (который будет зашифрован);

OutputFile - выходной файл (путь и имя того файла, который получится, чтобы сохранить его);

Crypt - шифровать или расшифровывать. При значении True InputFile будет зашифрован и результат будет сохранён в OutputFile, а при значении False зашифрованный InputFile будет расшифрован и результат будет сохранён в OutputFile.



Итак, вызываем encrypt() с объяснёнными выше параметрами, убиваем входной файл - и всё. У меня получился такой шифратор:

Шифруем файл через Visual Basic 2010 Visual Studio, Visual Basic, Visual Basic 2010, Шифрование, Файл, Криптография, Тайны, Видео, Длиннопост

Кто заинтересовался - посмотрите видос:

Показать полностью 1 1

Как удалить ярлык через Visual Basic 2010

А теперь для той же самой программы (смотрите предыдущий пост) пишу деинсталлятор. Теперь ярлыки надо удалять. Ну тут уж легче:



Dim DesktopPath As String
Dim strFilePath As String
Dim WshShell As Object
WshShell = CreateObject("WScript.Shell")
DesktopPath = TextBox1.Text & TextBox2.Text & ".lnk"
strFilePath = "cmd.exe /C del " & Chr(34) & DesktopPath & Chr(34) & " /q"
Shell(strFilePath, vbHide)

Видос ещё снял.

0

Как создать ярлык через Visual Basic 2010

Я сделал программу для Windows и пишу для неё установщик. И столкнулся с проблемой: надо создать ярлык. Нашёл, что мне поможет: библиотека Interop.IWshRuntimeLibrary. (ссылка на скачивание). С кодом чуть-чуть сложнее:


Try
Dim k As String = TextBox1.Text
Dim WshShell As New WshShell
Dim shortcut As WshShortcut
shortcut = WshShell.CreateShortcut(TextBox1.Text & TextBox2.Text & ".lnk")
With shortcut
.TargetPath = TextBox3.Text
.WindowStyle = 1
.IconLocation = TextBox3.Text & ", 0"
.Arguments = ""
.Save()
End With
WshShell = Nothing
shortcut = Nothing
Catch
MsgBox("Не получилось!", vbCritical)
End Try
В TextBox1 должно быть указано, где лежит ярлык, в TextBox2 - его имя (ну как имя файла), в TextBox3 - файл, на который этот ярлык будет ссылаться. При ошибке программа выдаст сообщение с иконкой ошибки.

Это работает!


А вот видео:

Показать полностью 1

Изменяем яркость монитора через Visual Basic 2010

Пишу программу, которая должна предупреждать пользователя, когда понижается заряд аккумулятора. И кроме предупреждения, она должна понижать яркость монитора, чтобы этот заряд экономить. Еле нашёл библиотеку для изменения яркости. Это System.Management.dll (не нажимайте на ссылку, это какой-то сайт с доменом system.management). Ну а с кодом всё уже проще, он должен быть такой:


Imports System.Management
Namespace SBrightness
Class Brightness
Shared windowsbegunok As String = "00"
Dim b As Byte = 100
Shared Sub LockWindowsBrightnessFunction()
windowsbegunok = "00"
Dim currentBrightness As Integer = GetBrightness()
start:
If windowsbegunok = "0" Then Exit Sub
While currentBrightness = GetBrightness()
System.Threading.Thread.Sleep(500)
End While
If Not windowsbegunok.EndsWith("1") Then
SetBrightness(currentBrightness)
End If
If windowsbegunok = "0" Then Exit Sub
GoTo start
End Sub
Shared Sub UnlockWindowsBrightnessFunction()
windowsbegunok = "0"
End Sub
Shared Function GetBrightness() As Integer
Dim s As New System.Management.ManagementScope("root\WMI")
Dim q As New System.Management.SelectQuery("WmiMonitorBrightness")
Dim mos As New System.Management.ManagementObjectSearcher(s, q)
Dim moc As System.Management.ManagementObjectCollection = mos.[Get]()
Dim curBrightness As Byte = 0
For Each o As System.Management.ManagementObject In moc
curBrightness = CType(o.GetPropertyValue("CurrentBrightness"), Byte)
Exit For
Next
moc.Dispose()
mos.Dispose()
Return CType(curBrightness, Integer)
End Function
Shared Sub SetBrightness(ByVal targetBrightness As Byte)
Dim s As New System.Management.ManagementScope("root\WMI")
Dim q As New System.Management.SelectQuery("WmiMonitorBrightnessMethods")
Dim mos As New System.Management.ManagementObjectSearcher(s, q)
Dim moc As System.Management.ManagementObjectCollection = mos.[Get]()
For Each o As System.Management.ManagementObject In moc
o.InvokeMethod("WmiSetBrightness", New [Object]() {UInt32.MaxValue, targetBrightness})
Exit For
Next
moc.Dispose()
mos.Dispose()
windowsbegunok &= "1"
System.Threading.Thread.Sleep(500)
windowsbegunok &= "2"
End Sub
End Class
Class BrightnessRandom
Shared Property MaxRandomBrightness As Byte = 100
Shared Property MinRandomBrightness As Byte = 1
Shared Sub SetRandomBrightness()
Dim randomGenerator As New Random
Dim i As Integer
i = randomGenerator.Next(MinRandomBrightness, MaxRandomBrightness)
Brightness.SetBrightness(i)
End Sub
End Class
End Namespace

Длинный, но что поделаешь. Это процедуры. А вот их вызов:


SBrightness.Brightness.SetBrightness(15)

И это работает, я проверил!


Кстати, вот видео:

Показать полностью 1

Как выключить компьютер, перезагрузить его или выйти из системы с помощью Visual Basic 2010

Даже не ожидал, что у Visual Basic 2010 есть такие возможности. Там есть метод, который запускает команду Windows для выключения компьютера. Метод такой:

Для выключения: Shell("Shutdown -s -f -t 00")

Для перезагрузки: Shell("Shutdown -r -f -t 00")

А вот для выхода из системы код немного другой. После Public Class Form1 код должен быть такой:

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Без него нельзя. Но для собственно выхода нужен другой код (этот тоже оставьте). Его писать в том месте, где надо выйти. Вот такой:

ExitWindowsEx(0, 0)

Выглядеть будет так:

Как выключить компьютер, перезагрузить его или выйти из системы с помощью Visual Basic 2010 Visual basic, 2010, Программа, Выключение, Перезагрузка, Выход, Система, Видео

Это работает!!!!!! А вот видео:

Показать полностью 1 1

Как изменить пароль любого пользователя с помощью командной строки

Здравствуйте. Сегодня покажу вам как изменить пароль любого пользователя с помощью командной строки. Для этого её надо сначала открыть. Для этого нажимаем на кнопку Пуск в левом нижнем углу экрана:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

И вводим cmd:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

В разделе "Лучшее совпадение" появится Командная строка. Вообще-то нам надо запускать её от имени администратора, но сначала запустим просто так. Для этого нажимаем Enter. Появится командная строка:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

Теперь пишем команду. Пока что наша команда только покажет нам полный список пользователей на компьютере. Зачем? Вот зачем: может быть много имён, указывающих на одного и того же пользователя, но существует только одно из них (например, Андрей можно записать ещё и как Andrey, АНДРЕЙ, ANDREY). А при выполнении этой команды мы получим только существующие имена. Команда вот какая: net user. Вводим её в командную строку и получаем результат:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

"DefaultAccount" - это аккаунт, которым вы пользуетесь сейчас. Командная строка может пометить вас как Администратор, даже если вы администратором не являетесь. Но может пометить и как Гость. Гости - это все пользователи на компьютере, кроме администратора.

В каждой строке таблицы, которую вы получили, сначала идут определения (такие, как, например, "DefaultAccount"), а затем имена. Например:

DefaultAccount (определение) Администратор(определение) Вова(имя пользователя с определениями: DefaultAccount и Администратор).

Если есть имя (или имена) пользователя с другими определениями, оно отображается в следующей строке. Если есть имя пользователя с таким же определением, то оно отображается в этой же строке:

Гость (определение) Наташа (1 пользователь-гость) Юра (2 пользователь-гость).

Оба представленных имени пользователей имеют одно и то же определение: Гость. Поэтому они расположены в одной и той же строчке.

Ну а если вы не хотите разбираться в определениях, просто делайте так: читайте только имена пользователей, а определения пропускайте. Определение сложно принять за имя пользователя.

Но нам же надо изменить пароль. Поэтому закрываем эту командную строку. Теперь опять открываем меню Пуск, вводим cmd, но на пункт "Командная строка" в разделе "Лучшее соответствие" нажимаем правой кнопкой мыши и выбираем "Запустить от имени администратора":

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

Командная строка запустится от имени администратора (если выскочит окошко "Контроль учётных записей", введите его пароль). Теперь вводим команду: net user <имя пользователя> *. Вместо <имя пользователя> подставляем имя пользователя, которому надо сменить пароль. И нажимаем Enter:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

Нас просят ввести пароль. Пароль не отображается при вводе (то есть не отображается вообще ничего), поэтому вводим аккуратно и медленно. Нажимаем Enter:

Как изменить пароль любого пользователя с помощью командной строки Командная строка, Cmd, Пароль, Изменения, Видео, Длиннопост

Нас просят подтвердить пароль. Опять же при вводе ничего не отображается, поэтому аккуратно вводим то же самое. Нажимаем Enter. Появится сообщение о том, что команда выполнена успешно. Если появилась "Системная ошибка 5" - значит командная строка запущена не от имени администратора.

Проблема решена!

Вот видеоинструкция:

Показать полностью 6 1
Отличная работа, все прочитано!