C# determine the last few optimum applications in order - c#

Is it possible to get a list of applications, in order that they were last active.
Several years ago I developed my own mouse application, to be used in conjunction with voice recognition software. I gave up using it, primarily because my application removed the focus from the application I am working with.
I am considering resurrecting this and extending it so it works with multiple monitors but I would like to be able to switch back to the application I was working with before I launched this mouse application. Also, I will have to check whether by issuing a voice command to launch this application, whether the voice recognition software temporarily gets the focus, hence why it might not be as simple as the last active application.

Related

How can I make my UWP app Fast as Microsoft UWP apps(Mail, Groove Music)?

I want to make my uwp app as fast as possible like Microsoft apps. Whenever I open the Groove Music it is always ready to show me the list of songs even the page I visited last time. It doesn't load for a moment. What's the mechanism behind that? How can I make my app fast like that? actually, I want my app to be always ready to show a list of items in listview whenever I open my app.
The feature you are looking for is called Prelaunch. Most Microsoft apps opt into prelaunch which will make them eligible to get background-launched (and then suspended) opportunistically by the OS, based on some heuristics. Then when the user launches the app, the OS will just need to resume them from suspended state which is much faster than launching them cold. The OS will prioritize apps that the user frequently launches, so you may not see an immediate effect, but over time the user will get better launch times.
https://learn.microsoft.com/en-us/windows/uwp/launch-resume/handle-app-prelaunch
Check this document. It will make your app really fast like pure Microsoft apps. I am an enthusiastic .net developer. I figured out this.
https://learn.microsoft.com/en-us/windows/uwp/debug-test-perf/best-practices-for-your-app-s-startup-performance
Open properties of the project solution. Go to the build section. Then enable Compile with .NET Native tool chain
Select release instead of debug and then select run or the green button (Local Machine). It will take time and you will see the result after that.

Record user entry on Android App developed under Unity and deployed on Google Play

I wrote an Android app using Unity and will deploy it using Google Play (only alpha or beta release). The purpose of this application is for research therefore there is no unethical situation in this scenario.
I would like to record every single user actions on my app, including which buttons were pressed, how long the user spent on a screen and various interactive elements of my app.
I can probably easily write a log file under Unity with all those information but I doubt I will be allowed to send myself some data using online feature (legal ?)
How was wondering if instead, Google Development platform had some type of Data Analytic section that will allow to record those data?

Automating cursor movements, mouse clicks and keyboard inputs in not helping to show that user is present on system

I have a software installed on my system which basically peeks my activity during working hours. It send a report saying how much time i was away from my system etc.
Since i m .net c# developer hence trying to break this system through my programming skills.
I have basically written up a windows form application which opens up an notepad for me and start typing some random characters into it. simultaneously it also performs some random clicks and moves the mouse cursor to give a feel that some one is on system and working even when i am not :)
I also use "SetThreadExecutionState" Pinvoke calls to keep system awake.I have also observed the User idle time and last interactivity time through "GetLastInputInfo" PInvoke system call while my mouse/keyboard are in automation process and it is also fine.
But this is not working for me. It works perfectly till 5 mins and then somehow it detects that user is not present on system.
any suggestions for the same.
Get a decompiler, crack-open the spying application and see how it is working inside. Only knowing the internal workings, you can create a "workable" any-spying program. But I would not bother with emulation of the activity, but rather spoof the way it reports to the server.
However, depending on where you live, it might be illegal to do these things and I would not recommend cheating your employer. And if spying gets on your nerves I'd also suggest to brush up your CV and start searching for a new job.

Touchscreen keyboard for kiosk

I wrote a simple c# windows forms application (.net, in visual studios 2012) for a mouse-controlled keyboard for use in a desktop application. Ultimately, I want to have a keyboard form that can be used on a touchscreen in a kiosk-like setting.
My question: can I expect the desktop app to work "as is" on a touchscreen? My specific concern is whether I can reasonably expect the mouse-click events to intercept touch events on the touchscreen, or whether I should a priori consider importing certain libraries and/or bind events other than "Click". I would simply test it myself but I don't have access rights now to a touchscreen device on which I can run the app.
Can I expect the desktop app to work "as is" on a touchscreen?
Yes, it's down to the hardware to translate a "touch" to a click. You can write more advanced apps which target touch screen devices specifically e.g. swiping/pinching etc. However, if yours is just a basic app with buttons it should all work the same on a touch screen.

Making a Background Service Somewhat Like Apple's Spotlight in VIsual Studio C#

I am about to start working on an application that runs in the background waiting for a certain user input somewhat like apple's spotlight.
Basically the user will give the service a certain key combination that will bring it up (i.e. CTRL + Space or CTRL + p) and the application main GUI will be brought up.
Now my questions:
First, I want this application to have a very small footprint and not draw on many system resources, and not interfere with the operation of other applications.
I also would like to write this application in C#. So far the best idea I have had would be to write a service that listened for key strokes and threw away stroke that were not either the control or following a control key.
This does not seem optimal is there a better way, anyone know how spotlight works?
Second, I am concerned that this kind of service might be identified as mall ware.
What steps might I take to ensure that my software is not targeted by applications such as Avast and Spysweeper?
Would I need to contact all of the manufacturers of these software packages and explain the purpose of my application?
Finally, if anyone could link to resources about how to set up such a service I would greatly appreciate it.
Services are not supposed to interact with the desktop user, as such they aren't supposed to be able to hook and watch for keystrokes. This may work on XP but you will likely have many problems on Vista/7 and later OS's.
You really need a userspace program that runs at user startup to do this that runs as the same user as the logged in user.
Also, if you are concerned about minimal footprint and resource usage, you don't want to be using .NET because it needs to load a fairly large runtime library and creates a fairly big working set. Usually this isn't a problem, but for something like a watcher program, it's best to write it in low footprint C using a low footbring minimal CRT startup.
My suggestion would be to create a winforms application, add the system tray icon using NotificationIcon to the main form of the application. Then hide the main form. The application can receive key strokes, particularly if you set the FormsPreview property to true. You might also need to hook into the windows api keypress events.
You should be safe from Malware scanners.
You may want to take a look at this link for setting up a system tray/win forms app.
How can I make a .NET Windows Forms application that only runs in the System Tray?

Categories