In MATE desktop in Fedora 28, I have set a shortcut for switching windows using a popup window to Super-j. I've discovered AutoKey that allows you to re-map the keys for certain applications/windows. It has a script that tells you what the window class is. But with the popup window, the widnow disappears too fast and the script can't quite grab it as you need to click on the window. Is there a way to get the window class of this popup window? I want to re-bind left key to Super-h while the popup is active. Or is there another way to achieve this?
I see that you've already found another solution, but I thought I'd add an AutoKey solution, too:
import time
mouse.wait_for_click(1)
time.sleep(0.2)
winClass = window.get_active_class()
dialog.info_dialog("Window class", "Active window class:\n\n'%s'" % winClass)
Related
I have to use USB barcode scanner in application running on remote desktop. This scanner is being recognised by Windows as keyboard. When I try to scan barcode however, every 3th or 4th character is being changed to another one. When I type numbers by hand, they are being correctly written. The question is: is there any way to programmatically produce "lag" on keyboard globally? I would like to create for example a half second gap between keyboard input events and a result on the screen. Some time ago I worked with Windows hooks, and I was able to change keyboard input globally, but I remember I had problems with delaying it. Is there any other way?
you can make an autohotkey script to listen to a keyboard input, wait and then press the same keyboard button.
once you have intalled AHK(autohotkey) , you can do a AHK script whit the intructions that are in the ahk documentation.
Right-Click on your desktop.
Find "New" in the menu.
Click "AutoHotkey Script" inside the "New" menu.
Give the script a new name. Note: It must end with a .ahk extension. Ex. MyScript.ahk
Find the newly created file on your desktop and Right-Click it.
Click "Edit Script".
A window should have popped up, probably Notepad. If so, SUCCESS!
i::
sleep, 500 ;
Send, i
Return
(you can change the "i" for other keyboard keys).
a function would reduce the amount of code that you use, but i don't know how to do it in a AHK script
I have no idea where to start about creating the solution for this, as I am only experienced in JS/HTML/Java/Lua/C++. What I'm trying to do is, from the command prompt, click at any place in an already opened window. For example, the already opened window could be a program called "Gorg" with the title/name "Gorgiant", and it would just need to simulate a click anywhere in that window if that's possible.
Perhaps you can try AutoHotKey . It has commands to check if a window exists .
I need to create a GUI working on windows that can be activated by pressing short cuts.
1. is it possible without setup class?
2. if not possible, just achieve pressing hotkeys and activate my program--how should i code it out--would be enough
thanks (I am using Qt for vs2012 add in to do the GUI)
I put some code up that starts a thread that does this. It is windows specific, but it does the job.
Clipboard Shortcut/Hotkey binding with Qt outside of application
One alternative to all of this, is to go to a shortcut to your program, go to its Properties, and then click on the shortcut area and type your desired shortcut. As long as it doesn't overlap with existing hotkeys that are registered in windows, it should work, without a hidden presence of your app in the system tray or some other background thread.
Hope that helps.
libqxt offers a QxtGlobalShortcut class that does what you want.
I pinned Notepad2-mod to the taskbar. When I click the pinned shortcut, it opens a new instance but doesn't stack in place. It begins a new stack. Additional clicks will utilize the second stack. This can probably best be explained via screenshot:
The oddest part is it used to stack on the taskbar shortcut if I started it by clicking on it or using WIN+num, but if I started Notepad2-mod by right-clicking on a file and using "open with notepad2-mod" it would stack in a new stack. Now, they all stack in a new stack (not on the taskbar-pinned shortcut).
Both the "open with notepad2-mod" registry shortcut and the taskbar-pinned shortcut run the same executable.
Ultimately, I'd like them all to stack in the same place, on top of the taskbar-pinned icon.
1) What did I do to persuade it to behave like this?
2) How can I convince it to all stack on the pinned icon?
Edit:
I just noticed in the Task Manager that when I double click a .txt file I'm running a version of this binary named Notepad2.exe and when I click on the icon on the Taskbar I'm running a copy of this same binary named notepad.exe. I must have done that to fool Windows 7 into thinking it was using vanilla Notepad. I thought changing this might fix it, but it did not. They still stack on a different portion of the Taskbar. They even respond to keyboard shortcuts like Start Button+Number for the slot where they do actually stack.
Thanks to the this link, this issue is fixed. Go read his site for a better answer than mine, but, in case his site ever goes away, here are the relevant snippets:
Notepad2 windows are now assigned to a custom AppUserModelID, that's why multiple icons may appear if Notepad2.exe is directly pinned to the taskbar. To fix this, open a Notepad2 window first, and then pin it to the taskbar from the Notepad2 taskbar button context menu.
Note that if you have followed the rest of his instructions on the page and set it up to redirect notepad.exe to notepad2.exe, you actually have to start up Notepad2.exe directly, then right click on the taskbar instance and click "Pin to Taskbar".
Now that I did that, all my Notepad2 instances stack in the same place on the taskbar!
Note that the author of Notepad2 says that you have to add code in your application to handle this.
Some reference documentation.
Assuming that your OS is Windows 7
1. Check the settings of your task bar IE. right click the task bar and click properties # the properties menu there is a drop down list it should say "Stack & hide-labels" if not set it to that setting.
If that does not work then you can try dragging the file that will not stack to the regular notepad and pin-it to the list in the stack-able tab.
aside from all of that, when you pin a application to the task bar even if it was edited and saved before it was pinned, it will always open a new instance of the application.
also you can make a simple batch file to start the application
#echo off
rem you will want to set the directory using the DIR command
start "your program's name here"
rem you can use the pause>nul command to check if it worked.
Hope this helps.
I had this problem with Internet Explorer because I had created a short cut and pinned that to the Task Bar. Then all new instances would stack on a separate icon. I unpinned the shortcut, then navigated to the IE executable, right clicked and selected "Pin to Task Bar". After I did that, all new instances stacked on top of the original pinned IE icon.
When I create SHBrowseForFolderW dialog the default control is OK, what I need to do is make SysTreeView32 active so a user can right on use arrow keys to adjust the desired folder. I tried to use this code : http://comp.newsgroups.archived.at/os.ms-windows.programmer.win32/200505/05053122835.html which wokrs ok in finding the HWND of the dialog but using WM_NEXTDLGCTL has no effect on the window.
Maybe I should send TAB keystrokes to the window, or I don't know any other opions ? Are there swiches in creating the browse dialog what control will be highlighted when the window create ?
Ok, the thing is difference between PostMessage and SendMessage. I mistakenly used the later here. They are not the same!