Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

*TUT* C/C++ Screen Melting Effect / Prank

This program creates a full screen transparent overlapping window, in which a "melting" effect is created to make the computer look like it's screen is melting.


Code
#include <Windows.h>

int ScreenWidth, ScreenHeight;
int Interval = 100;

// callback for the melting effect
LRESULT CALLBACK Melter(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    switch (Msg)
    {
    case WM_CREATE:
    {
        HDC Desktop = GetDC(HWND_DESKTOP);
        HDC Window = GetDC(hWnd);

        BitBlt(Window, 0, 0, ScreenWidth, ScreenHeight, Desktop, 0, 0, SRCCOPY);
        ReleaseDC(hWnd, Window);
        ReleaseDC(HWND_DESKTOP, Desktop);

        SetTimer(hWnd, 0, Interval, 0);
        ShowWindow(hWnd, SW_SHOW);
        break;
    }
    case WM_PAINT:
    {
        ValidateRect(hWnd, 0);
        break;
    }
    case WM_TIMER:
    {
        HDC Window = GetDC(hWnd);
        int X = (rand() % ScreenWidth) - (150 / 2),
            Y = (rand() % 15),
            Width = (rand() % 150);
        BitBlt(Window, X, Y, Width, ScreenHeight, Window, X, 0, SRCCOPY);
        ReleaseDC(hWnd, Window);
        break;
    }
    case WM_DESTROY:
    {
        KillTimer(hWnd, 0);
        PostQuitMessage(0);
        break;
    }
    return 0;
    }
    return DefWindowProc(hWnd, Msg, wParam, lParam);
}

int APIENTRY WinMain(HINSTANCE Inst, HINSTANCE Prev, LPSTR Cmd, int showcmd)
{
    // Get the width & height of current display
    ScreenWidth = GetSystemMetrics(SM_CXSCREEN);
    ScreenHeight = GetSystemMetrics(SM_CYSCREEN);
// class for initializing the window
    WNDCLASS wndClass = { 0, Melter, 0,0, Inst, 0, LoadCursorW(0,IDC_ARROW), 0, 0, L"ScreenMelter" };
    
// register the class
    if (RegisterClass(&wndClass))
    {
        // Create the "melter", an overlapping window.
        HWND hWnd = CreateWindowExA(WS_EX_TOPMOST, "ScreenMelter", 0, WS_POPUP,
            0, 0, ScreenWidth, ScreenHeight, HWND_DESKTOP, 0, Inst, 0);

        if (hWnd) //if the window is created successfully
        {
            // seed for randomization
            srand(GetTickCount());
            MSG Msg = { 0 };
            // Run the melter loop as long as the program isn't given the shutdown signal
            while (Msg.message != WM_QUIT)
            {
                if (PeekMessage(&Msg, 0, 0, 0, PM_REMOVE))
                {
                    TranslateMessage(&Msg);
                    DispatchMessage(&Msg);
                }
            }
        }
    }
    return 0;
}
Did you copy/pasta it from web or you made it ?
(Oct 31, 2016 12:58 PM)Pink-Tshirt Wrote:  Did you copy/pasta it from web or you made it ?

He made it.
(Oct 31, 2016 12:58 PM)Pink-Tshirt Wrote:  Did you copy/pasta it from web or you made it ?

I was inspired by someone's idea, and a code snippet. But this code is written by me.
(Oct 31, 2016 12:37 PM)Zer0Memo0ry Wrote:  This program creates a full screen transparent overlapping window, in which a "melting" effect is created to make the computer look like it's screen is melting.


Code
#include <Windows.h>

int ScreenWidth, ScreenHeight;
int Interval = 100;

// callback for the melting effect
LRESULT CALLBACK Melter(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    switch (Msg)
    {
    case WM_CREATE:
    {
        HDC Desktop = GetDC(HWND_DESKTOP);
        HDC Window = GetDC(hWnd);

        BitBlt(Window, 0, 0, ScreenWidth, ScreenHeight, Desktop, 0, 0, SRCCOPY);
        ReleaseDC(hWnd, Window);
        ReleaseDC(HWND_DESKTOP, Desktop);

        SetTimer(hWnd, 0, Interval, 0);
        ShowWindow(hWnd, SW_SHOW);
        break;
    }
    case WM_PAINT:
    {
        ValidateRect(hWnd, 0);
        break;
    }
    case WM_TIMER:
    {
        HDC Window = GetDC(hWnd);
        int X = (rand() % ScreenWidth) - (150 / 2),
            Y = (rand() % 15),
            Width = (rand() % 150);
        BitBlt(Window, X, Y, Width, ScreenHeight, Window, X, 0, SRCCOPY);
        ReleaseDC(hWnd, Window);
        break;
    }
    case WM_DESTROY:
    {
        KillTimer(hWnd, 0);
        PostQuitMessage(0);
        break;
    }
    return 0;
    }
    return DefWindowProc(hWnd, Msg, wParam, lParam);
}

int APIENTRY WinMain(HINSTANCE Inst, HINSTANCE Prev, LPSTR Cmd, int showcmd)
{
    // Get the width & height of current display
    ScreenWidth = GetSystemMetrics(SM_CXSCREEN);
    ScreenHeight = GetSystemMetrics(SM_CYSCREEN);
// class for initializing the window
    WNDCLASS wndClass = { 0, Melter, 0,0, Inst, 0, LoadCursorW(0,IDC_ARROW), 0, 0, L"ScreenMelter" };
    
// register the class
    if (RegisterClass(&wndClass))
    {
        // Create the "melter", an overlapping window.
        HWND hWnd = CreateWindowExA(WS_EX_TOPMOST, "ScreenMelter", 0, WS_POPUP,
            0, 0, ScreenWidth, ScreenHeight, HWND_DESKTOP, 0, Inst, 0);

        if (hWnd) //if the window is created successfully
        {
            // seed for randomization
            srand(GetTickCount());
            MSG Msg = { 0 };
            // Run the melter loop as long as the program isn't given the shutdown signal
            while (Msg.message != WM_QUIT)
            {
                if (PeekMessage(&Msg, 0, 0, 0, PM_REMOVE))
                {
                    TranslateMessage(&Msg);
                    DispatchMessage(&Msg);
                }
            }
        }
    }
    return 0;
}

Non funziona il codice😖
Seems pretty cool, might install windows to test it.
[Image: 36gGo5H.gif]
(Nov 1, 2016 01:09 PM)Nathan2000 Wrote:  
Non funziona il codice😖

In English?
thanks, going to try this right now haha!
errors in the code.

Severity Code Description Project File Line Suppression State
Error C2664 'HCURSOR LoadCursorW(HINSTANCE,LPCWSTR)': cannot convert argument 2 from 'LPSTR' to 'LPCWSTR'

Line 56
(Dec 1, 2016 03:53 PM)mongbean Wrote:  errors in the code.

Severity Code Description Project File Line Suppression State
Error C2664 'HCURSOR LoadCursorW(HINSTANCE,LPCWSTR)': cannot convert argument 2 from 'LPSTR' to 'LPCWSTR'

Line 56
That's not an error in the code. That's a difference in your locale.
This is not a tutorial tho :/
(Dec 1, 2016 04:09 PM)CichyCichoCiemny Wrote:  This is not a tutorial tho :/

There is no a source code section on HF
(Dec 2, 2016 02:10 PM)Zer0Memo0ry Wrote:  There is no a source code section on HF

There's the C++ section. You just have to add a [Source] tag before the title.
(Dec 2, 2016 02:42 PM)CichyCichoCiemny Wrote:  There's the C++ section. You just have to add a [Source] tag before the title.

Man just gives free thing soo you need be thankful. You cunt !
🤝
(Dec 2, 2016 02:45 PM)vfragtasticv Wrote:  Man just gives free thing soo you need be thankful. You cunt !
🤝

I never said i am not thankful, the title is simply missleading.


Possibly Related Threads...
Thread / Author Replies Views Last Post
by Elite_xApr 13, 2025 04:44 PM 4 571 Apr 13, 2025 04:44 PM
Last Post: SS2580G
by silentb0bJan 3, 2016 09:01 PM 438 32,941 Jan 3, 2016 09:01 PM
Last Post: reacts
by ZXxHackerxXZDec 20, 2013 01:25 AM 7 283 Dec 20, 2013 01:25 AM
Last Post: John_Gacy