Jump to content
Tuts 4 You

How to create Keygen screen


ganvin

Recommended Posts

Hello friends,

I'm new to this forum. I just want to know how can I make nice looking Keygen window (like with small image which can be moved anywhere on the screen). I don't want that to be a typical Window-like dialog box. It need to be with the a transparent image and 2 or 3 buttons in it. Are all those guys using some special programs to design Keygen screens? (Please note: I'm NOT looking for any back-end algorithms). Just wondering how I can create a good looking small Keygen screen for a already have keygen algorithm.

Any help would be greatly appreciated.

Thank you all in advance,

-Ganvin.

Link to comment

Thank you for your reply Blue Indian. My preferred languages is in order:

1. VB

2. C++

3. Delphi

2. ASM

Please I need your help in this regards.Is there any tut available? Can you please explain how to achieve this?

Thanks again,

-Ganvin.

Link to comment

You will want to look into the GDI API for creating more interesting GUIs.

For C++ you can take a look at my patchLib project which makes use of a bit of them here:
/>http://67.210.99.128/patchLib/

For ASM check out the Downloads section on the forums, there are a bunch of keygen sources released there:
/>http://forum.tuts4you.com/index.php?app=downloads&showcat=1

  • Like 1
Link to comment

Thank you atom0s. I posted my question here last night and WOW, within a day I received 2 positive responses. BTW, That was a cool suggestion by you and I have downloaded your PatchLIb and need to compile them and see how that works. Your keygen forum suggestion was also good, I need to dig them into and find out VB or C++ alike programs used for KeyGen screen developments. Any suggestion for good GDI GUI programming references or tut or samples?

Thank you again, much appreciated.

Kind regards,

-Ganvin.

Link to comment

Microsoft did very little to get into detail about Layered windows which is most of what GDI does. There are a few typical ways to make a window look transparent, one being AlphaBlend, another being SetLayeredWindowAttributes, and lastly UpdateLayeredWindow. Each have their ups and downs as well as limitations and such. UpdateLayeredWindow will give you the best results however it is also the least documented so it is a bit rough to find information for it.

You can find a list of the GDI API here:
/>http://msdn.microsoft.com/en-us/library/dd145203

Link to comment

anyone know where i can get a c++ header for anigif lib from KeygenTemplate by Blackshadow.zip that is posted on the REDCREW site

Link to comment

This should be a similar conversion for C++ for the header:


// prototypes
void InitAniGif( DWORD, DWORD, DWORD, DWORD );// AniGIF control styles
#define WAGS_AUTOSIZE 1H
#define WAGS_CENTER 2H
#define WAGS_HYPERLINK 4H// AniGIF control messages
#define WAGM_BASE WM_USER+1000
#define WAGM_LOADGIFFROMFILE WAGM_BASE+0 // wParam:N/A, lParam:lpFileName
#define WAGM_LOADGIFFROMRESOURCE WAGM_BASE+1 // wParam:hInstance, lParam:ResourceID
#define WAGM_UNLOADGIF WAGM_BASE+2 // wParam:N/A, lParam:N/A
#define WAGM_SETHYPERLINK WAGM_BASE+3 // wParam:N/A, lParam:lpszHyprelink
#define WAGM_ZOOM WAGM_BASE+4 // wParam:N/A, lParam:TRUE(Zoom In by 10%)/FALSE(Zoom Out by 10%)
#define WAGM_SPEED WAGM_BASE+5 // wParam:N/A IParam:Delay of frames in milliseconds
#define WAGM_OWNERHANDLE WAGM_BASE+6
#define DefaultGifSpeed 0

I did this manually just looking at the inc file so the prototype might not be correct. I can't tell what it returns as I don't use this lib so I am not sure. You may need to tweak the return in order for the call to work properly.

As for the params, the invoke in the source says:

invoke InitAniGif,hInstance,DLL_PROCESS_ATTACH,7, addr DlgProc

So the prototype may convert better as:


void InitAniGif( HINSTANCE, DWORD, DWORD, DLGPROC );
Link to comment

Thanks again Blue Indian. Yes, I MUST say 'THANKS' to RED CREW as well. The "[VB6] PatchTemplate - Simple VB patch" on that site was marvelous (except 'transparent' window). But, that should give me an in-depth idea on how the KeyGen screen development taking in place. There are other VB/DELPHI codes also readily available on that site (I'm novice in ASM :-(, so it is my responsibility to learn from those code ;-).

Dear atom0s, your input also very valuable to me. Thanks for those reference links and ideas. I have tried downloading lots of KeyGen templates, but almost all of them are just a plain PSD/BMP/EXE files. I couldn't find any informative codes in regards to this and which led me to open a new thread. But, it seems I gained some good information from both you bros.

Thanks AGAIN to you both for your valuable input and time. If you guys have more ideas to share, PLEASE do so when you all have a moment.

Thanks to Tut4you site too :-)

Have a nice weekend all.

Kind regards,

-Ganvin.

Edited by ganvin
Link to comment

@atom0s

That the same thing i did and i keep getting

[Linker error] undefined reference to `InitAniGif(HINSTANCE__*, unsigned long, unsigned long, int (*)(HWND__*, unsigned int, unsigned int, long))@16'

this is the only difference that i could see between your header and mine


void __stdcall InitAniGif( HINSTANCE, DWORD, DWORD, DLGPROC );// AniGIF control styles
#define WAGS_AUTOSIZE 0x01
#define WAGS_CENTER 0x02
#define WAGS_HYPERLINK 0x04

I've already tried void, VOID, LPVOID DWORD, DWORD*, BOOL for return and get the same error.

anyone got any ideas

i also linked to gid32, ole32, and oleaut32

Thanks, I got it. I forgot the extern "C"

Edited by T-rad
Link to comment

AniGif lib Header file in c++


// ------------------------------------------------------------------------------------------------------------
// AniGIF is a copyright of Antonis Kyprianou.
//
// You can use AniGIF for NON commercial purposes provided you
// have the following information on your application's about box:
// AniGIF control is copyright of Antonis Kyprianou (http://www.winasm.net)
//
// You need my WRITTEN permission to use AniGIF in commercial applications
//
// Modified version for use with Graphic Viewer by William DeLaney
// ------------------------------------------------------------------------------------------------------------#include <windows.h>
#pragma comment(lib, "AniGif.lib );
#pragma comment(lib, "gdi32.lib );
#pragma comment(lib, "ole32.lib );
#pragma comment(lib, "oleaut32.lib );#ifdef __cplusplus
extern "C" {
#endif//Prototypes
BOOL __stdcall InitAniGif( HINSTANCE, DWORD, DWORD, DLGPROC );//AniGIF control Styles
#define WAGS_AUTOSIZE 0x01
#define WAGS_CENTER 0x02
#define WAGS_HYPERLINK 0x04//AniGIF control messages
#define WAGM_BASE WM_USER+1000
#define WAGM_LOADGIFFROMFILE WAGM_BASE+0 // wParam:N/A, lParam:lpFileName
#define WAGM_LOADGIFFROMRESOURCE WAGM_BASE+1 // wParam:hInstance, lParam:ResourceID
#define WAGM_UNLOADGIF WAGM_BASE+2 // wParam:N/A, lParam:N/A
#define WAGM_SETHYPERLINK WAGM_BASE+3 // wParam:N/A, lParam:lpszHyprelink
#define WAGM_ZOOM WAGM_BASE+4 // wParam:N/A, lParam:TRUE(Zoom In by 10%)/FALSE(Zoom Out by 10%)
#define WAGM_SPEED WAGM_BASE+5 // wParam:N/A IParam:Delay of frames in milliseconds
#define WAGM_OWNERHANDLE WAGM_BASE+6
#define DefaultGifSpeed 0#ifdef __cplusplus
}
#endif

enjoy

T-rad

Link to comment

Thank you brother :thumbsup:

For someone how wants a demo on how to implement AniGif in C, here is an example source code posted by Shiva.
/>http://teamirec.forumotion.in/t259-anigif-lib-for-vc-translation-done

Link to comment

@Blue Indian

how's about u post the link here instead of having it so people have to register to your page

"[You must be registered and logged in to see this link.]"

T-rad

Edited by T-rad
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...