Hi,
This is my first application so bear with me. It's called Screamer Creator, and is very similar to
Shocker which is listed on the AutoHotkey wiki.
Here's the information posted from my website:
What is it?
Screamer Creator is a program that allows you to create your own local based screamers (see below). It’s pretty much prank software, but customizable. The idea is to set up a screamer on someone elses (or your own) computer and let your friends get a shock when the screamer suddenly activates. You cannot compile your screamer into an executable to send your friends. This is designed to sneak onto a computer, quickly customize it and then leave the trap for the victim.
The customization options are small but effective. You can change the image, the sound, the activation method and more. It comes with a rather scary image (still don’t know it’s origin) and a scream sound in case you don’t have your own. It doesn’t even have to be scary. Got an embarrassing photo of a friend at work? Load that image along with a attention grabbing sound file to them blush! Use your imagination!
What’s a “screamer”?
A screamer is a common term for those
internet pranks (usually made in flash) that get your attention usually by giving you a picture to look at with the text “What’s wrong with this picture?” before emiting a loud scream sound accompanied by a horrible photograph, usually a of a scary face. They’re also known as shock flashes, ambush flashes and sabotage flashes. They’ve been around since forever now, and there’s not really much history on them. The first one I ever saw was simply entitled “What’s wrong with this picture?” and is still around today. Some see it as a cruel joke to play on people, but other people find it hilarious. There’s a bunch of youtube videos of people getting scared out of their pants thanks to screamers. Popular ones include the “Where’s Waldo?” image where he isn’t actually IN the picture but after a few seconds you get screamed at, “Optical illusions” a clever one which gives you a bunch of REAL optical illusions which ends in the classic hypnotic disc illusion but instead of just sitting there spinning it screams at you and “The Maze” which is a game where you have to control an object through a tight maze but you get screamed at in level 2. Today, they’re everywhere. You can get screamers in Youtube videos that have low volume, and entice you to turn it up before shocking you with a very loud screamer. Oddly enough screamers have never been banned from anywhere and there doesn’t seem to be any reports of anyone getting damaged by them physically or mentally.
Usage
Running screamercreator doesn’t suddenly scream at you, don’t worry! It opens up in the window that you can see in the above screenshot. Before executing your custom screamer you have a few options you can mess with.
- Screamer image - The image file of the screamer. This is the image that is displayed when the screamer is activated. It will pop up full screen, always on top with no means of removal. Leaving this blank means no image will be displayed when the screamer activates.
- Screamer sound - The sound file of the screamer. This is the sound that plays when the screamer is activated. The program tries it’s best to synchronize both the image and the sound but there might be a delay depending on the operating system and the victim’s CPU.
- Flash time - The amount of time it takes for the screamer to close once it is activated. Note that two seconds after the screamer activates, the screamer sound will be cut off. Try to use a sound that you are familiar with so you roughly know how long to have the Flash Time.
- Timed activation - Activates the screamer after a certain amount of seconds. You can specify how long it takes for this to happen. Unless you know when your victim is coming back to the machine it is be best to use one of the other activation methods.
- Key activation - Activates the screamer when a certain button combination is pressed. You can specify most of they keyboard’s keys which gives you lots of options. You can combine keys such as CTRL + C or ALT + 1. Setting it to a random letter key can work wonders but for those who can’t touch type it may not be effective.
- Mouse wheel activation- Activates the screamer when the mousewheel is pushed up or down. When the user scrolls up or down with his or her mousewheel, the screamer will wait one second before activating. The great thing about this one is that there’s a high chance the user will be reading something (such as a webiste) on the screen, having their full attention for the screamer!
- Gotcha! Message - A message to be displayed in a popup box after the screamer has activated. His can be used as a simple “got you!” message to give the user after they have the crap scared out of them. Put your name in there somewhere if you want the user to know who to chase after they recover from the screamer. Leave it blank if you don’t want to display a message.
- Execute button - Executes the screamer ready for activation. The program hides away and waits for the activation method to be triggered. Once it has been activated the screamer automatically closes. This is the only way to test out the activation methods.
- Preview button - Activates the screamer right away with the image, sound and Gotcha! message box. Once the screamer has finished it returns to the program.
- Quit button - Exit the program.
Notes
Only tested in Windows XP
Here's the download link: http://cutstuff.net/private/other/screamcreator0.8.zip
Comes with resources and executable.
Here's the source code, it's messy but it works! The Gui is also a bit ugly but it's low priority.
Code:
; Screamer Creator
; By CutmanMike
; http://cutstuff.net
VersionNo = v0.8
; Startup stuff
#NoTrayIcon
#SingleInstance Force
ImagePath = theface.jpg
SoundPath = scream.wav
Radio1 = 1
Radio2 = 0
Radio3 = 0
Key = None
FlashTime = 10
Life = 2
GoSub, Startup
Return
; Draw the GUI
Startup:
Gui, Add, Text, x6 y7 w150 h20 , Screamer Image
Gui, Add, Text, x6 y47 w150 h20 , Screamer Sound
Gui, Add, Text, x176 y7 w50 h20 , Preview:
Gui, Add, Text, x6 y87 w140 h20 , Flash time (in seconds)
Gui, Add, Text, x146 y247 w210 h20 , Created by CutmanMike - http://cutstuff.net
Gui, Add, Edit, x6 y27 w140 h20 vImagePath, %ImagePath%
ImagePath_TT := "The image to be used in the screamer (leave blank for sound only)."
Gui, Add, Button, x146 y27 w20 h20 gChangeImage, ...
Gui, Add, Picture, x176 y27 w90 h70 vImage, %ImagePath%
Gui, Add, Edit, x6 y67 w140 h20 vSoundPath, %SoundPath%
SoundPath_TT := "The sound to be used in the screamer (leave blank for image only)."
Gui, Add, Button, x146 y67 w20 h20 gChangeSound, ...
Gui, Add, Radio, x6 y147 w160 h20 vRadio1, Timed activation (in seconds)
Radio1_TT := "This screamer activates after a certain time has passed."
Gui, Add, Radio, x6 y187 w150 h20 vRadio2, Key activation
Radio2_TT := "This screamer activates when a specific button (or button combo) is pressed."
Gui, Add, Radio, x6 y227 w150 h20 vRadio3, Mouse Wheel activation
Radio3_TT := "This screamer activates when the cursor touches the taskbar."
Gui, Add, Edit, x6 y167 w50 h20 vFlashTime number, %FlashTime%
FlashTime_TT := "This screamer activates after a certain time has passed."
Gui, Add, Edit, x6 y107 w50 h20 vLife number, %Life%
Life_TT := "The amount of time the image remains on the screen."
Gui, Add, Button, x6 y267 w90 h30 , Execute
Execute_TT := "Executes the screamer ready for activation."
Gui, Add, Button, x126 y267 w100 h30 , Preview
Preview_TT := "Previews the screamer with instant activation."
Gui, Add, Button, x256 y267 w100 h30 , Cancel
Gui, Add, Hotkey, x6 y207 w90 h20 vKey, %Key%
Key_TT := "Press the key(s) that you want to activate this screamer."
Gui, Add, Text, x6 y127 w160 h20 , Activation Method:
Gui, Add, Text, x176 y107 w140 h20 , Gotcha! message:
Gui, Add, Text, x176 y127 w150 h20 , (Leave blank for no message)
Gotcha_TT := "Enter an optional message to be displayed in a message box after the screamer has finished."
Gui, Add, Edit, x176 y147 w170 h70 vGotcha, %Gotcha%
; Gui, Show, x457 y323 h302 w364, New GUI Window
Gui, Show,Center, Screamer Creator %VersionNo%
;OnMessage(0x200, "WM_MOUSEMOVE")
if(Radio1 = 1)
{
GuiControl,, Radio1 , 1
}
if(Radio2 = 1)
{
GuiControl,, Radio2 , 1
}
if(Radio3 = 1)
{
GuiControl,, Radio3 , 1
}
return
; Screamer Initiation
Scream:
SoundPlay, %SoundPath%
if(ImagePath)
{
Gui, Show
#IfWinActive
WinHide ahk_class Shell_TrayWnd
}
Sleep, %Sleeptime%
Gui, Destroy
WinShow ahk_class Shell_TrayWnd
if(Gotcha)
{
Msgbox, 48, Gotcha!, %Gotcha%
}
return
; Quit
GuiClose:
GuiEscape:
ButtonCancel:
ExitApp
; Browse for a new image
ChangeImage:
Gui, +Disabled
FileSelectFile, ImagePath,RootDir, ,Select an Image,Images (*.gif; *.jpg; *.bmp; *.png;)
GuiControl,, ImagePath, %ImagePath%
GuiControl,, Image, *w90 *h70 %ImagePath%
Gui, -Disabled
Gui, Show
Return
; Browse for a new sound
ChangeSound:
Gui, +Disabled
FileSelectFile, SoundPath,RootDir, ,Select a sound file,Wav files (*.wav;),
GuiControl,, SoundPath, %SoundPath%
Gui, -Disabled
Gui, Show
Return
; Preview the Screamer
ButtonPreview:
Gui, Submit ; Save each control's contents to its associated variable.
Sleep, 1
Gui, Destroy
Gui, Add, Picture, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% vScreamImage, %ImagePath%
Gui, +Disabled
Gui, +AlwaysOnTop
Gui, -Caption
Sleeptime := Life * 1000
GoSub, Scream
GoSub, Startup
return
; Scream bind used for Key Activation
KeyScream:
GoSub, Scream
Sleep 2000
ExitApp
; Scream bind used for Mouse Wheel Activation (same as above but with a sneaky 1 second delay)
KeyScream2:
Sleep 1000
GoSub, Scream
Sleep 2000
ExitApp
; Execute the screamer. Activates depending on which activation method was chosen.
ButtonExecute:
Gui, Submit
;MsgBox You entered:`n%ImagePath% `n%Soundpath% `n%Radio1% `n%Radio2% `n%Radio3% `n%Key% `n%FlashTime% `n%Life%
Waittime := FlashTime * 1000
Gui, Destroy
Gui, Add, Picture, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% vScreamImage, %ImagePath%
Gui, +Disabled
Gui, +AlwaysOnTop
Gui, -Caption
Sleeptime := Life * 1000
if(Radio1 = 1) ; TIMED ACTIVATION
{
Sleep, %WaitTime%
GoSub, Scream
Sleep 2000
ExitApp
}
if(Radio2 = 1) ; KEY ACTIVATION
{
if(Key = None)
{
MsgBox, Invalid key! Please specify one.
Gui, Destroy
GoSub, Startup
return
}
Hotkey, %Key%, KeyScream
return
}
if(Radio3 = 1) ; MOUSE WHEEL ACTIVATION
{
Hotkey, WheelUp, KeyScream2
Hotkey, WheelDown, KeyScream2
}
; Tooltips (CURRENTLY DISABLED)
WM_MOUSEMOVE()
{
static CurrControl, PrevControl, _TT ; _TT is kept blank for use by the ToolTip command below.
CurrControl := A_GuiControl
If (CurrControl <> PrevControl and not InStr(CurrControl, " "))
{
ToolTip ; Turn off any previous tooltip.
SetTimer, DisplayToolTip, 1000
PrevControl := CurrControl
}
return
DisplayToolTip:
SetTimer, DisplayToolTip, Off
ToolTip % %CurrControl%_TT ; The leading percent sign tell it to use an expression.
SetTimer, RemoveToolTip, 3000
return
RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return
}