Как свести с ума коллегу и не только. Автоматическая смена обоев
Что для этого нужно? Надо что бы человек думал, что он видит то, чего нет, и видит только он. Как мы это сделаем? У нас будет 100 копий одной любой картинки для рабочего стола, например этой:
Выберите свое или скачайте это.
И одна модифицированная версия этой картинки, например:
"Выпустите меня!"
С помощью небольшого кода мы будем совершенно незаметно менять каждые 10 секунд фон. И рано или поздно наша жертва увидит модифицированную версию. Жертва удивится и позовет кого-то (вас) посмотреть, что происходит? Но пока вы подойдете, фон снова станет нормальным как минимум на ближайшие 1000 секунд (или больше, как вы хотите), а маятник крыши жертвы чуть-чуть покачнется. Как сделать это с помощью персонализации и слайд-шоу, знает практически любой пользователь ПК на любительском уровне (кроме вашего бухгалтера), да и не подходит этот способ, потому что фон меняется с анимацией, которая заметна. Мы будем использовать для этого PowerShell и VBScript. Не спешите мотать, все будет максимально просто и разжевано.
Создайте папку в диске D под названием oboi. Внутри нее создайте простой текстовый документ. Скопируйте и вставьте туда этот текст:
$folderPath = "D:\oboi"
if (-Not (Test-Path -Path $folderPath)) {
Write-Host "The specified folder does not exist."
exit
}
Write-Host "Contents of the folder:"
Get-ChildItem -Path $folderPath | ForEach-Object { Write-Host $_.Name }
$images = Get-ChildItem -Path $folderPath | Where-Object { $_.Extension -match '^\.(png|jpg|jpeg|bmp)$' -and $_.PSIsContainer -eq $false } | Sort-Object Name
if ($images.Count -eq 0) {
Write-Host "No images found in the specified folder."
exit
}
Write-Host "Found $($images.Count) images in the folder."
$indexFilePath = "D:\oboi\index.txt"
if (-Not (Test-Path -Path $indexFilePath)) {
Set-Content -Path $indexFilePath -Value 0
}
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class Wallpaper {
public const int SetDesktopWallpaper = 20;
public const int UpdateIniFile = 0x01;
public const int SendWinIniChange = 0x02;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
public static void SetWallpaper(string path) {
SystemParametersInfo(SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange);
}
}
"@
$changeCount = 0
while ($true) {
$currentIndex = [int](Get-Content -Path $indexFilePath)
$image = $images[$currentIndex]
$imagePath = $image.FullName
Write-Host "Selected image: $imagePath"
[Wallpaper]::SetWallpaper($imagePath)
Write-Host "Wallpaper changed to: $imagePath"
$currentIndex = ($currentIndex + 1) % $images.Count
Set-Content -Path $indexFilePath -Value $currentIndex
$changeCount++
if ($changeCount -eq 6) {
exit
}
Start-Sleep -Seconds 10
}
Теперь сохраните, и поменяйте название и расширение текстового файла на oboi.ps1. На что обратить внимание в коде? $folderPath = "D:\oboi" - папку в диске D с названием oboi закиньте свои копии обоев и одного "особенного". Start-Sleep -Seconds 10 - менять картинку каждые 10 секунд. if ($changeCount -eq 6) - что бы скрипт не ушел в бесконечность, через 1 минуту (6 раз по 10 секунд) скрипт остановится. Если вы вообще нулевые в коде(как и я) лучше тут ничего не трогать, а если хочется что бы реже показывалась "особенная" картинка, просто увеличивайте количество копий фотографии в папке.
2. Теперь, создайте еще один текстовый файл и вставьте туда этот код -
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("D:\oboi\oboi.ps1") Then
objShell.Run "powershell.exe -NoProfile -WindowStyle Hidden -File ""D:\oboi\oboi.ps1""", 0, True
Else
WScript.Echo "Script file not found."
End If
Поменяйте его название и расширение на Run_powershell.vbs Для чего это нужно? Дело в том, что если просто запускать предыдущий скрипт - на долю секунды открывается окошко Powershell, что можно заметить и понять что что то не так. А с помощью второго кода все запустится совершенно незаметно. Если название и расширения файлов вы ввели правильно - они будут выглядеть примерно так -
Оба файла с кодом
3. Шаг третий, и последний - создать задачу которая автоматически будет запускать наши скрипты. Нажмите на "Пуск" и введите в поиске - "планировщик заданий". Откройте его и нажмите на обе кнопки -
Создать задачу
Во вкладке "Общие" сделайте два этих действия
Название и приоритет
Триггеры, когда начнет работать программа.
Что должна сделать программа.
И последнее, можно указать вот это -
На всякий случай.
Ссылка на яндекс Диск с исходными файлами, как у меня работает - Вот она. Вирусов нет, в файлах код который тут и указан. Максимум где вы можете ошибиться - это в указании пути к файлам. Будьте крайне внимательны)
С помощью этого же кода можно просто крутить видео разбитое по кадрам, например, со сменой кадра один раз в сутки - тоже поможет крыше потечь) Шутите только с теми, кто понимает шутки!
Это мой первый пост такого формата, буду рад советам. Сам все сделал менеджерам, жду пока клюнет.
Да, я видел эту шутку у кого то на Пикабу, но оно было в картинке и я не смог ее найти. Если найдете, дайте ссылку пожалуйста.
Лига Сисадминов
1.9K пост18.1K подписчиков
Правила сообщества
Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.