Jump to content

Creating a slideshow exec from an Autoit prgram


Recommended Posts

OK this is kind of a tough one. I really am not sure where to start. If someone could point me a direction and get me off and running I would be grateful.

I want to make a program that you can input a list of images and it will compile them into a separate exe that will play as a slideshow. Similar to JPG2EXE.

On top of that, I need to disable all right click functions and screen print functions while the slideshow is running.

What I would like to accomplish here is something similar to www.copysafe.com so that I can distribute a group of copyrighted photos without letting people save them or print them.

Anyone have any ideas?

Link to comment
Share on other sites

Not sure of a method to embed the .JPG images completely inside the executable (ie, no local copy/temp copy extracted), but regarding "Copy blocking," maybe something along the lines of a fullscreen GUI, using GUICtrlCreateContextMenu with only an "Exit" option to prevent right-clicks, and using HotKeySet to capture the PrintScreen button and setting that hotkey function to use:

ClipPut ( "Copying of content not authorized." )

to prevent standard screen captures. The caveat for the PrintScreen hotkey would be that there would be potential for 3rd-party screen-capture tools. This could be worked with by possibly setting it up like a standard screensaver - any pressed keys yielding in an "Exit" command being sent.

edit: typos

Edited by Monamo

- MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]

Link to comment
Share on other sites

FileInstall()

FileInstall would require a destination, thus giving a local copy of the images used. I got the impression that vrocco is trying to create something like a content protection wrapper around a set of images (kind of like a graphics designer's mockups with PDF slideshows) where, say, a customer can view the content, but not copy it for their own usage.

- MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]

Link to comment
Share on other sites

Would this do what you are wanting?

convert it to binary, and make it an encrypted string.

Now use your program to decrypt (with a private key) the string and display the image.

To do this I think that your prog must be the only one able to display the image.

As far as preventing screen capture from there... a lot of good ideas above

also, if any click is detected or a button is pressed, just set the transparency so that the user only captures everything but what they wanted :whistle:

Link to comment
Share on other sites

That's a good idea. How would you convert an image file to binary? Will the Binary() function do it? Or do I need something else?

Thanks!

Hmm i know the Irfanview image freeware app lets you make an .exe file from a list of images. Not sure how secure these are. Maybe you could use it in conjunction with an AutoIT script to stop print screen being pressed or something along those lines.

Link to comment
Share on other sites

Here's a problem I see. If I compile the photos into and exe, then I have to use fileInstall() with the exe or at least have it reside on the cd with my Autoit script. Even if the Autoit script keeps them from doing a screen capture or printing, what is to stop the user from just running the slideshow.exe alone instead of running it with my autoit script? Then they could easily screen capture or print.

This is why I like the idea of converting photos to binary and encrypting then decrypting on the fly with the autoit script.

Can anyone help me with how to do this?

Link to comment
Share on other sites

This is why I like the idea of converting photos to binary and encrypting then decrypting on the fly with the autoit script.

Can anyone help me with how to do this?

Not possible, as far as I can see.

However, there are a few ways we can help with screen capture blocks. Using _IsPressed() you can determine whether or not the Print Screen button has been pressed. Obviously, you then know that an image has been saved into the clipboard. Now we need to look at the ClipPut() function, and remove what is now in the clipboard.

I came up with:

#include <Misc.au3>

$Dll = DllOpen("user32.dll")

While 1
    If _IsPressed("2C", $Dll) Then ;~ 2C is the PrintScreen button. Lets check if it has been pressed
        MsgBox(4096, "Error", "You cannot capture this screen.") ;~ Remove if you want.
        ClipPut("") ;~ Lets set the clipboard to empty
    EndIf
Wend

Also, take a look at JdeB's Obfuscator.

-James

Edit: Oops, spelling.

Edited by JBr00ks
Link to comment
Share on other sites

What about third party screen capture programs?

Now your just being picky! J/K :whistle:

I am not sure. You would have to look at the process of some of these programs, and close them, giving an error message saying maybe something along the lines of, "*Process Name* This program cannot run along with *my program name*".

You could however look at what each program does to take the screenshot, and then block this from happening.

-James

Link to comment
Share on other sites

Yeah that is an idea. Then I have to get the process name of every third party screen capture app.

I know I am being picky. Thanks for putting up with me.

I am still afraid that if the pcitures are in an exe slideshow that runs from an Autoit script, what stops them from just running the exe slideshow without running the Autoit script. I guess I could use autorun, but alot of people disable that these days.

Just fishing for ideas.

Link to comment
Share on other sites

Can't you watermark the images?

If you used fileinstall you don't have to extract them all before running them you only need to extract the image as required then delete it / Write over it.

For screen capture could you hotkeyset the printscreen key and alt + printscreen to trap those and set the window transparency to 254 to stop other screen capture utilities.

Link to comment
Share on other sites

Yeah that is an idea. Then I have to get the process name of every third party screen capture app.

I know I am being picky. Thanks for putting up with me.

I am still afraid that if the pcitures are in an exe slideshow that runs from an Autoit script, what stops them from just running the exe slideshow without running the Autoit script. I guess I could use autorun, but alot of people disable that these days.

Just fishing for ideas.

You won't be able to stop all the screencapture program, even i change the exe name the process name is different, only way is to do a md5 hash check to see if it's the same.
Link to comment
Share on other sites

Found this on another forum. I think it's VBS. Can I do this in Autoit?

<QUOTE>

You can turn an image into a binary stream with code like this:

Dim ms As New System.IO.MemoryStream()

MyImage.Save(ms, Drawing.Imaging.ImageFormat.Jpeg)

</QUOTE>

Link to comment
Share on other sites

I think this is going to be way too slow, but maybe not if it's a slide show and you have a delay anyway. My laptop is pretty powerful and it is still quite slow.

Extract it all to a folder, the first time you run it just use the draw button which will create the image you see on the left into a panel on the right, it is getting all of its data from the MyJpg.Txt file.

If you use the get button it copies the picture on the left into the myJpg.Txt file.

Dunno if you can adapt it for your needs? Maybe there is a better way!

Edit: Changed the txt file a bit for a smaller file

Edit again the zip file still had the wrong txt fiel in I've uploaded it again

Edited by ChrisL
Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...