remote_control | 一个简单的windows的远程控制程序

 by   0x00b C++ Version: Current License: No License

kandi X-RAY | remote_control Summary

kandi X-RAY | remote_control Summary

remote_control is a C++ library. remote_control has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.

一个简单的windows的远程控制程序
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              remote_control has a low active ecosystem.
              It has 12 star(s) with 4 fork(s). There are 3 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              remote_control has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of remote_control is current.

            kandi-Quality Quality

              remote_control has no bugs reported.

            kandi-Security Security

              remote_control has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              remote_control does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              remote_control releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of remote_control
            Get all kandi verified functions for this library.

            remote_control Key Features

            No Key Features are available at this moment for remote_control.

            remote_control Examples and Code Snippets

            No Code Snippets are available at this moment for remote_control.

            Community Discussions

            QUESTION

            How to start a new Windows logon session (RDP or console) programmatically
            Asked 2020-Feb-16 at 02:34

            I've been banging my head against this for several hours, so I figured it's time to ask. I'll start with a high-level description of the situation. You can find the entire source code at https://github.com/Jay-Rad/InstaTech_Client. This question only pertains to the project in "/InstaTech_Service/".

            Overview

            The InstaTech client is a remote control app that uses websockets and makes an outbound connection to an ASP.NET server for relay with the viewer. I have different versions, but they all function roughly the same (the Electron version tries WebRTC first before using raw websockets). The viewer portion of the app is web-based, and a demo can be found here: https://instatech.org/Demo/Remote_Control

            The WPF (C#) and Electron versions present a GUI with a random ID that they must provide to the person remoting into their computer (similar to TeamViewer). Once a session is started, they capture the screen in different ways. For C#, I'm using a pinvoke to BitBlt to copy the image to an in-memory graphic, which is then sent through the websocket. Subsequent screen captures are compared to the previous one to create a box that encompasses the changed pixels, then that cropped section is sent. Mouse and keyboard inputs are received by the client and executed via pinvoke to keybd_event and mouse_event. These are working great.

            The service I created works in similar fashion, but here are the differences. The service itself runs in session 0 under System account. It connects to the server and listens on the websocket. When a connection is made and screen viewing is requested, it launches a separate interactive process in the user's session in WinSta0\Default. Once the new process's websocket is connected, the server begins relaying messages between it and the viewer instead of the service and the viewer.

            Although the new process is launched interactively in the user's session, it's running under the System account. This is achieved by a pinvoke to CreateProcessAsUser and duplicating the winlogon.exe access token.

            The Problem

            This solution works fine if someone is already logged in, even if via RDP. However, if nobody is logged in or the computer gets locked, I can't interact with the logon screen. When doing the screen capture, I'm detecting if the capture fails, which would mean the WinSta0\Default desktop is no longer active. Since I'm using CreateProcessAsUser, I can switch desktops to the WinSta0\Winlogon just fine. I can still see it (even if no one is logged in), but it won't take any inputs. I understand that this is by design for security reasons. Well, strangely, some mouse movements "slip through" if I'm moving it around and cause the cursor to reposition, but the rest get sent to the Default desktop and execute once logged back in.

            So the problem is that I can't get an account logged into the computer with this setup. If it matters, I don't care to interact with the Winlogon desktop if someone else is already logged in and locked the computer. I only want to be able to log in if no one else is using it, or it's my account that's logged in and at the lock screen.

            Attempted Solutions

            I'm assuming that there's no way to circumvent the inability to send simulated inputs to the Winlogon desktop. (Correction: That is, using mouse_event and keybd_event functions. I've seen other applications do it, like TeamViewer and Microsoft SCCM Remote Control. I'm not sure how they do it, though.) If it is somehow possible, I think that'd be the most direct route. But here are some things I've looked into that focus on getting a new logon session started.

            Pinvoke to LsaLogonUser. I'm not sure if this would accomplish what I'm after, but I tried anyway. However, even though the call to LsaLogonUser reports success, the handle I'm getting from LsaRegisterLogonProcess (out to lsaHan) is 0. I'm not sure what I'm doing wrong. I'm not too familiar with Win32 calls and trying to pick it up as I go. Maybe the calling process doesn't have the necessary rights. I've tried calling this from the service in session 0 and from the process running in the interactive session. An example of what I'm doing is below.

            Microsoft Terminal Services Active Client COM library. I haven't dug too deeply into this, but I wonder if it might be possible to use this to initiate an RDP logon session. Once an RDP logon session is made, spawn a new InstaTech process in that session and connect to it. I doubt this would work if the RDP connection is being attempted from the same computer, though.

            Credential Provider. I came across credential providers while researching. I'm not sure if creating one would solve the problem, but it sounds like it'd be a terribly complicated undertaking.

            Does anyone have any suggestions? Or am I missing something entirely?

            If you'd like to recompile the service and test things, I created a temporary admin account on the server. Any computer with the service installed will show up there, and you can log in using this account. Please keep in mind that anyone reading this post will be able to access any computers running the service, so make sure it's in an isolated environment.

            Username: admin
            Password: plzh@lpm3purdyplz

            The service is self-installing. Pass the -install switch to install, -uninstall to uninstall. The EXE is copied to %programdata%\InstaTech, and the service starts it from there.

            Thank you!

            Reference Code

            ...

            ANSWER

            Answered 2020-Feb-16 at 02:34

            I got SendInput to work on the logon desktop (and, as it turns out, the UAC secure desktop). SetThreadDesktop must not give you the same privileges as if you'd initially started the process in the target desktop.

            So when I detected a desktop change, instead of calling SetThreadDesktop, I launched yet another process in the new desktop with CreateProcessAsUser. Then I signaled for the viewer to switch and closed the current process.

            Edit (years later): I ended up being wrong about this. You just need ensure your current thread doesn't have any open windows or hooks in the current desktop. And since this only sets the desktop for the calling thread (not the process), subsequent threads will need to call this as well.

            Source https://stackoverflow.com/questions/41900487

            QUESTION

            Problem with properly coding XSLT stylesheet
            Asked 2019-Sep-18 at 10:38

            I'm fairly new to XSLT but I think I have the basics down. However I've been going over the issue below for some time now and I cannot seem to find a working solution. Any help would be greatly appreciated.

            This is my (simplified) source XML document:

            ...

            ANSWER

            Answered 2019-Sep-18 at 10:38

            Your main problem is the template matching "*"

            Source https://stackoverflow.com/questions/57990075

            QUESTION

            "Failed to connect to the SC2 websocket. Is it up?"
            Asked 2018-Nov-30 at 03:02

            I am trying to run the Deepmind Environment for Starcraft II, following this tutorial

            After running:

            ...

            ANSWER

            Answered 2018-Nov-30 at 03:02

            This might be obvious for some, but it took me 25 minutes, so I'll put it here.

            The SC2 websocket is up once you completely installed and started the game.

            Not only the battlenet interface.

            Source https://stackoverflow.com/questions/51224752

            QUESTION

            predefined python function failing to run with if name = main
            Asked 2017-Jul-16 at 23:19

            I'm a beginner programmer and my goal is to design a utility that can accept an sms command and run a corresponding function on my main pc remotely. I'm using a variety of tools to do this (IFTTT, Dropbox, Twilio, Task Scheduler), but I've run into a little trouble along the way.

            Most recently I've tried running the main code through a function which I've named 'main()'. However, when I attempt to call the function, command line throws an error:

            ...

            ANSWER

            Answered 2017-Jul-16 at 23:19

            remove main() from inside logmein() so its in the global scope. The error you are getting is because when you call main from the global scope it isn't defined.

            Source https://stackoverflow.com/questions/45134126

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install remote_control

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/0x00b/remote_control.git

          • CLI

            gh repo clone 0x00b/remote_control

          • sshUrl

            git@github.com:0x00b/remote_control.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link