vrocco Posted July 16, 2007 Share Posted July 16, 2007 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 More sharing options...
Monamo Posted July 16, 2007 Share Posted July 16, 2007 (edited) 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 July 16, 2007 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 More sharing options...
James Posted July 16, 2007 Share Posted July 16, 2007 FileInstall() Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
Monamo Posted July 16, 2007 Share Posted July 16, 2007 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 More sharing options...
vrocco Posted July 16, 2007 Author Share Posted July 16, 2007 Yeah Monamo is right. Don't want local copies existing anywhere. You had some good ideas on catching keystrokes and such, I just need to know if I can wrap a photo somehow into an exe. Link to comment Share on other sites More sharing options...
DW1 Posted July 16, 2007 Share Posted July 16, 2007 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 AutoIt3 Online Help Link to comment Share on other sites More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 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! Link to comment Share on other sites More sharing options...
fu2m8 Posted July 17, 2007 Share Posted July 17, 2007 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 More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 Can the Irfanview be scripted? Also, anyone help me with converting the files to binary per dan's suggestion. I kind of like that idea. Link to comment Share on other sites More sharing options...
James Posted July 17, 2007 Share Posted July 17, 2007 If IrfanView has a command line parameter, then yes, you can use that Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 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 More sharing options...
James Posted July 17, 2007 Share Posted July 17, 2007 (edited) 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 July 17, 2007 by JBr00ks Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 What about third party screen capture programs? Link to comment Share on other sites More sharing options...
James Posted July 17, 2007 Share Posted July 17, 2007 What about third party screen capture programs?Now your just being picky! J/K 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 Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 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 More sharing options...
ChrisL Posted July 17, 2007 Share Posted July 17, 2007 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. [u]Scripts[/u]Minimize gui to systray _ Fail safe source recoveryMsgbox UDF _ _procwatch() Stop your app from being closedLicensed/Trial software system _ Buffering Hotkeys_SQL.au3 ADODB.Connection _ Search 2d Arrays_SplashTextWithGraphicOn() _ Adjust Screen GammaTransparent Controls _ Eventlogs without the crap_GuiCtrlCreateFlash() _ Simple Interscript communication[u]Websites[/u]Curious Campers VW Hightops Lambert Plant Hire Link to comment Share on other sites More sharing options...
Generator Posted July 17, 2007 Share Posted July 17, 2007 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 More sharing options...
vrocco Posted July 17, 2007 Author Share Posted July 17, 2007 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 More sharing options...
James Posted July 17, 2007 Share Posted July 17, 2007 You could FileWrite a .vbs script and then execute it. Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ Link to comment Share on other sites More sharing options...
ChrisL Posted July 17, 2007 Share Posted July 17, 2007 (edited) 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 July 17, 2007 by ChrisL [u]Scripts[/u]Minimize gui to systray _ Fail safe source recoveryMsgbox UDF _ _procwatch() Stop your app from being closedLicensed/Trial software system _ Buffering Hotkeys_SQL.au3 ADODB.Connection _ Search 2d Arrays_SplashTextWithGraphicOn() _ Adjust Screen GammaTransparent Controls _ Eventlogs without the crap_GuiCtrlCreateFlash() _ Simple Interscript communication[u]Websites[/u]Curious Campers VW Hightops Lambert Plant Hire Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now