Jump to content

Lan PC's screenshot?


Recommended Posts

Hello community,

I searched around for a bit and couldnt really find anything to help me. So my question: Is there a way I can get a screenshot of the computers running on the same LAN that im on? If not, at least, is there a way to get the computer names that are running on my LAN? THANKS FOR ANY HELP :huh2: !

Link to comment
Share on other sites

I wrote a tool named where you can ping the systems by ip or host name and resolve ip <-> host names if a DNS, WINS or your local hosts files contains some data.

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

You could make a server and a client.

The client sends a command to the server :"_Take_Screenshot"

Then server takes screenshot and sends it back where the command came from.

I do not belive its possible to just ask a lan computer for a screenshot and then get it.

[font="helvetica, arial, sans-serif"]Hobby graphics artist, using gimp.Automating pc stuff, using AutoIt.Listening to music, using Grooveshark.[/font]Scripts:[spoiler]Simple ScreenshotSaves you alot of trouble when taking a screenshot!Don't remember what happened with this, but aperantly the exe is all i got.If you don't want to run it, simply don't._IsRun UDFIt figures out if the script has ben ran before based on the info in a ini file.If you don't want to use exactly what i wrote, you can use it as inspiration.[/spoiler]

Link to comment
Share on other sites

I wrote a tool named where you can ping the systems by ip or host name and resolve ip <-> host names if a DNS, WINS or your local hosts files contains some data.

Br,

UEZ

Can you give any more instructions? I downloaded it, and it shows an empty screen. What kind of csv or txt do I have to load? Thanks!

Link to comment
Share on other sites

You could make a server and a client.

The client sends a command to the server :"_Take_Screenshot"

Then server takes screenshot and sends it back where the command came from.

I do not belive its possible to just ask a lan computer for a screenshot and then get it.

Thanks for your input. Any way you can get me started on something like that?

Link to comment
Share on other sites

Can you give any more instructions? I downloaded it, and it shows an empty screen. What kind of csv or txt do I have to load? Thanks!

You can press the rmb and add some ips (only class c at the moment) or create a file with ip or host name in each line.

Example of the file

www.ibm.com
87.106.181.57
188.40.127.116

Some servers do not respond to a ping request!

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

As Maffe811 said you cannot ask for a screenshot on remote system and it will send you a screenshot. I know there are some tools which can take a screenshot of remote systems but they are going to run on remote a service or tool which takes the screenshot and send it back like psexec it execute programs on remote systems.

Further it is a little bit critical to use such tools in a company where you can take a screenshot of current logged in user of any remote pc if you have access to it without any approval from the user!

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Thanks for your input. Any way you can get me started on something like that?

Honestly: No.

I have only read other topics about TCP and i would suggest looking at _ScreenCapture_Capture in the helpfile and the TCP commands.

[font="helvetica, arial, sans-serif"]Hobby graphics artist, using gimp.Automating pc stuff, using AutoIt.Listening to music, using Grooveshark.[/font]Scripts:[spoiler]Simple ScreenshotSaves you alot of trouble when taking a screenshot!Don't remember what happened with this, but aperantly the exe is all i got.If you don't want to run it, simply don't._IsRun UDFIt figures out if the script has ben ran before based on the info in a ini file.If you don't want to use exactly what i wrote, you can use it as inspiration.[/spoiler]

Link to comment
Share on other sites

I have done this before. Its kinda tricky to setup, but you can do it. This is how I did it.

First I created the program to take the screenshot. I found a function on these forums to take a screenshot. All you need is the DLL in the same directory as the exe (After you compile this script).

Here is the screenshot script that I have modified a bit. instead of pointing it to the C drive, you can even point it to a share on a server.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=camera2.ico
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$h_DllCaptDLL = DllOpen("captdll.dll");Open it only once at the beginning and close it once at the end.  Not every time the while loops.

FileCopy(@ScriptDir & "\captdll.dll","C:\windows\system32\captdll.dll",1)

;~ #NoTrayIcon

$Count = 0

        ;=========================================================================================C Drive
    DirCreate("C:\Screenshots\")
    Global $FileName = ("C:\Screenshots\"& @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName)
    For $count1 = 0 to 30
        If FileExists($FileName & "-" & $Count1  & ".jpeg") Then
            $count = $Count+1
        EndIf
    Next
        $msg = ""
        $msg2 = "Local C Drive "


 $Window = "Program Manager"

;Executes the fuctions created below.
Print_Window()
Terminate()

;Function that prints the screen
Func Print_Window ()
 $Size = WinGetPos($Window)
 DllCall($h_DllCaptDLL, "int:cdecl", "CaptureRegion", "str", $FileName & "-" & $Count  & ".jpeg", "int", $Size[0], "int", $Size[1], "int", $Size[2], "int", $Size[3], "int", 1000)
EndFunc

;Fucntion that exists
Func Terminate ()
 Exit
EndFunc

;Fuction that closes the dll file after the above function closes the sctipt
Func OnAutoItExit()
    DllClose($h_DllCaptDLL);closing the dll now that the script is exiting.
    TrayTip ( $msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg", 1 )
    sleep(3500)
;~  MsgBox(1,$msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg",15)
EndFunc

Then you need to download psexec. You can launch the exe that you have compiled (Above) remotely on the remote computer. This will create a screenshot on that computer, and save it to a network drive.

RunWait("cmd /c " & "psexec \\" & "**StationName**" & " -u **DomainName**\" & "**Username**" & ' -p ' & "**Password**" & " -i -c \\**ServerName**\C$\Screenshot.exe", "")

Hope that can get you started.

Link to comment
Share on other sites

I have done this before. Its kinda tricky to setup, but you can do it. This is how I did it.

First I created the program to take the screenshot. I found a function on these forums to take a screenshot. All you need is the DLL in the same directory as the exe (After you compile this script).

Here is the screenshot script that I have modified a bit. instead of pointing it to the C drive, you can even point it to a share on a server.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=camera2.ico
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$h_DllCaptDLL = DllOpen("captdll.dll");Open it only once at the beginning and close it once at the end.  Not every time the while loops.

FileCopy(@ScriptDir & "\captdll.dll","C:\windows\system32\captdll.dll",1)

;~ #NoTrayIcon

$Count = 0

        ;=========================================================================================C Drive
    DirCreate("C:\Screenshots\")
    Global $FileName = ("C:\Screenshots\"& @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName)
    For $count1 = 0 to 30
        If FileExists($FileName & "-" & $Count1  & ".jpeg") Then
            $count = $Count+1
        EndIf
    Next
        $msg = ""
        $msg2 = "Local C Drive "


 $Window = "Program Manager"

;Executes the fuctions created below.
Print_Window()
Terminate()

;Function that prints the screen
Func Print_Window ()
 $Size = WinGetPos($Window)
 DllCall($h_DllCaptDLL, "int:cdecl", "CaptureRegion", "str", $FileName & "-" & $Count  & ".jpeg", "int", $Size[0], "int", $Size[1], "int", $Size[2], "int", $Size[3], "int", 1000)
EndFunc

;Fucntion that exists
Func Terminate ()
 Exit
EndFunc

;Fuction that closes the dll file after the above function closes the sctipt
Func OnAutoItExit()
    DllClose($h_DllCaptDLL);closing the dll now that the script is exiting.
    TrayTip ( $msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg", 1 )
    sleep(3500)
;~  MsgBox(1,$msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg",15)
EndFunc

Then you need to download psexec. You can launch the exe that you have compiled (Above) remotely on the remote computer. This will create a screenshot on that computer, and save it to a network drive.

RunWait("cmd /c " & "psexec \\" & "**StationName**" & " -u **DomainName**\" & "**Username**" & ' -p ' & "**Password**" & " -i -c \\**ServerName**\C$\Screenshot.exe", "")

Hope that can get you started.

Thanks for this. I am working on it now and will ask if any more help is needed. Thanks again. Edited by richietheprogrammer
Link to comment
Share on other sites

Thanks for this. I am working on it now and will ask if any more help is needed. Thanks again.

Hmm with the code below, It is telling me that it is saving, but I cant find the file. Where exactly is the function/command to save the file?

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=camera2.ico
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$h_DllCaptDLL = DllOpen("captdll.dll");Open it only once at the beginning and close it once at the end.  Not every time the while loops.

FileCopy(@ScriptDir & "\captdll.dll","C:\windows\system32\captdll.dll",1)

;~ #NoTrayIcon

$Count = 0

        ;=========================================================================================C Drive
    DirCreate("C:\Screenshots\")
    Global $FileName = ("C:\Screenshots\"& @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName)
    For $count1 = 0 to 30
        If FileExists($FileName & "-" & $Count1  & ".jpeg") Then
            $count = $Count+1
        EndIf
    Next
        $msg = ""
        $msg2 = "Local C Drive "


 $Window = "IZArc"

;Executes the fuctions created below.Print_Window()
Print_Window ()

OnAutoItExit()
Terminate ()
;Function that prints the screen
Func Print_Window ()
 $Size = WinGetPos($Window)
 DllCall($h_DllCaptDLL, "int:cdecl", "CaptureRegion", "str", $FileName & "-" & $Count  & ".jpeg", "int", $Size[0], "int", $Size[1], "int", $Size[2], "int", $Size[3], "int", 1000)
EndFunc

;Fucntion that exists
Func Terminate ()
 Exit
EndFunc

;Fuction that closes the dll file after the above function closes the sctipt
Func OnAutoItExit()
    DllClose($h_DllCaptDLL);closing the dll now that the script is exiting.
    TrayTip ( $msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg", 1 )
    sleep(3500)
;~  MsgBox(1,$msg & " Screenshot Taken","Screenshot saved to " &  $msg2 & @CRLF& @CRLF & @MON & "-" & @MDAY & "-" & @YEAR & "--" & @HOUR & @MIN & "-" &@ComputerName & "-" & @UserName & "-" & $Count  & ".jpeg",15)
EndFunc
Link to comment
Share on other sites

If you want some cool stuff look at DeskStream 2. It is something like TeamViewer...

On German forum only but it should be self-explanatory...

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Hint: if you can see the remote screen in the window you can make a screenshot of it easily...

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Hint: if you can see the remote screen in the window you can make a screenshot of it easily...

Br,

UEZ

Got you hehe. Can I get some help with this: I am able to print screen, but I want to be able to make a GUI that displays all of the images inside a folder. So Far I have whats below, which I saw in the Help file, but how can I loop to show all the pictures in a folder in one GUI window using this? Also, is it possible to display them all in small dimensions (so they can all fit in the GUI) and when the user clicks on one image, it will zoom in? Please give me a hand if you can, Thanks :huh2:

Code:

#include <ScreenCapture.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

   GUICreate("My GUI picture", 1025, 769, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)  ; will create a dialog box that when displayed is centered

    GUISetBkColor(0xE0FFFF)
    $n = GUICtrlCreatePic("\\fileinfolder.jpeg", 0, 0, 1025, 769)

    GUISetState()

    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        WEnd
Link to comment
Share on other sites

Got you hehe. Can I get some help with this: I am able to print screen, but I want to be able to make a GUI that displays all of the images inside a folder. So Far I have whats below, which I saw in the Help file, but how can I loop to show all the pictures in a folder in one GUI window using this? Also, is it possible to display them all in small dimensions (so they can all fit in the GUI) and when the user clicks on one image, it will zoom in? Please give me a hand if you can, Thanks :huh2:

Code:

#include <ScreenCapture.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

   GUICreate("My GUI picture", 1025, 769, -1, -1, $WS_SIZEBOX + $WS_SYSMENU)  ; will create a dialog box that when displayed is centered

    GUISetBkColor(0xE0FFFF)
    $n = GUICtrlCreatePic("\\fileinfolder.jpeg", 0, 0, 1025, 769)

    GUISetState()

    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        WEnd

Now I am able to display all images in a folder, using guictrlcreatepic, but that creates as many GUIs as the number of images in the folder. I want all the images to be displayed in one GUI. Anyone?
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...