CMD set focus to application - cmd

Is there a way to set the focus to an already opened window using cmd/batch?
It should act just like clicking the task bar icon.
Or like double-clicking the window in Task-Manager.
I know there are many similar questions, but i couldn't find an answer to this "simple" task, I just can't imagine this is to be so difficult to do...
example:
I have Outlook opened somewhere in the background.
When executing the command, the open window should come to the front.
If no window is open, it should open a new one.
What i tried:
start outlook
-> this will always open a new window
start outlook /[non-existing command]
-> this is the only way i found to get the focus on an open window, followed by an error since it doesn't know the command, but Outlook does not open unless it's already running. An option might be, to tell Outlook not to do anything?

Related

Hide console when running shortcut pinned to taskbar

I'm trying to create a shortcut (.lnk) file that will launch scrcpy without showing the console window, but I need to be able to pin it to the taskbar and have the window and shortcut merge. Scrcpy is bundled with a vbs script that launches scrcpy through wscript, hiding the console, but when I made a shortcut opening that through wscript that made a duplicate window (icon?). I also found a somewhat promising question here about Pinning advertised shortcuts on the taskbar, which led me to an MS Docs page about AppUserModelIds, the only problem being I don't really understand how they work, or how to make a shortcut with them.

How can I specify on which monitor the console window is opened?

I've currently connected two monitors via a dock to my notebook.
When I'm running my console application, the console window always pops up on the first monitor. How can I change that it's automatically opened on another monitor, e.g. on monitor 3? Maybe there is a property I need to modify?
It's very annoying to always drag the console window onto the monitor on which my IDE is opened.
Console applications (unlike GUI applications) don't create their own window; that's done by Windows, and in the case when you're running in an already created console, then you kinda inherit, e.g., cmd's window.
What you can do, though, is to find your window and move it to a different monitor.
Another option is to change the window manager settings for that application in the properties of the console window under Layout. Especially the check box »Let system position window«. To do so, first move the window where you'd like it to appear, then open the properties, go to the Layout tab, and just click »OK«.

How to determine title and additional infos from an open window for use with Autohotkey?

To access and control a window, dialog or popup with Autohotkey the title of that specific window is needed. For some windows the title can be read directly if its visible, but some windows hide it. The window class and the exe (ahk_class and ahk_exe) aren't visible at all. How to gather this information reliable?
Use the Window Spy tool, which is installed together with AHK, it can be started various ways:
Right click the tray icon of a running AHK script and select Window Spy
Start the AU3_Spy.exe in the AHK installation folder
Use the Windows search to search for Window Spy
You will get a window called Active Window Info with various infos about your current active (topmost) window. The first box is the one you need.
Example
The box gives title, class and .exe to detect the target window of which every line can be used to identify the window. Now you should activate the window you want to address and copy the information.
Hint: You can (un-)freeze the display with Win + A

windows taskbar and open programs

Is there any way to place the taksbar icons of all the open apps in Windows 8.1 next to each other automatically?
Say I open an app whose icon is on the far left, next to the start button, and I want said icon to appear to move to the far right of my string of icons, next to all my other open programs, automatically.
Is there any way to do that?
Do you mean, for applications that you have already pinned to the taskbar, you want them to move over to the end of the line of open programs? I don't think it is possible to set this option automatically. However, you can manually move them to where-ever and they will remain pinned. For other taskbar settings, just search Taskbar and the settings box will come up.

Create a background process in windows

How do I make a process go the background programatically?
What I want is for the user to double-click the process executable, and it just goes into the background ... and does not open a window while executing.
Any code snippet in visual c++ would be very helpful
Have you considered creating a Windows Service instead? They're specifically designed to run in the background without showing a UI.
Otherwise, just create an application without a window.
I know this is old, but I thought I would post something for when people find this through search.
While I like Cody Gray's answer for design correctness, sometimes you don't have a choice.
If you want to launch a program without jumping to the new window (it appears in the background or minimized) or not create a window at all try looking at the ShellExecute and ShellExecuteEx functions. The argument nShowCmd (or nShow) gives you (among others) the options:
SW_HIDE
Hides the window and activates another window.
SW_SHOWMINNOACTIVE
Displays the window as a minimized window. The active window remains active.
As the documentation says, SW_HIDE creates a process running the executable you give it, but if this program would normally create a window, none appears.
This might help: http://ss64.com/nt/start.html
I tried this way and it worked fine:
Create a console application and write your codes in the sub main as any other console application.
Now change the application type in the project properties to windows Forms application from Console application
thats it

Resources