6 posts in this topic
I'm not sure if I'm doing it right or there's a better way to restore windows from hidden in system tray, but if I remove the if statement then it's able to restore the program from system tray, but if I add the if statement then it doesn't restore it. Here's what I gotten so far and the reason why I use the if statement is because #32770 opens many other apps also.
WinSetState("[CLASS:#32770]", "", @SW_SHOW) If WinExists($title_Pass_Entrance) Then WinWaitActive(WinActivate($title_Pass_Entrance)) ControlSend($title_Pass_Entrance, "", "[CLASS:Edit; INSTANCE:1]", "TempPassword") ControlClick($title_Pass_Entrance, "", "[CLASS:Button; INSTANCE:2]", "left", 1) EndIf >>>> Window <<<< Title: Enter Safe Combination Class: #32770 Position: 728, 411 Size: 465, 218 Style: 0x94C800C4 ExStyle: 0x00010101 Handle: 0x0000000000050A7A >>>> Control <<<< Class: Instance: ClassnameNN: Name: Advanced (Class): ID: Text: Position: Size: ControlClick Coords: Style: ExStyle: Handle:
I've got a third-party video recording app idling away in the system tray (as it should be), just waiting for a command sequence (e.g., "CTRL+ALT+R") to begin recording. When I'm recording manually, I simply press the command sequence on the keyboard to get it going, without having to manually activate/raise the idling process/window.
I'm writing a script to send that sequence programmatically, but I can't figure out where and how to send it! I know I should use ControlSend(), and I can specify the third-party app's title as the first parameter, but I'm utterly baffled about what ControlID I need to use. For a normal app, I would use Au3Info.exe to identify the control, but since the app is idling in the system tray, I can't figure out any way to use Au3Info on it.
So, how do I determine what ControlID to use in the ControlSend() call?
[ETA: Or perhaps I should do it some other way, one that doesn't need a controlID?]
(By the way, I found some code generously provided by poster war59312 (here), that will return the index number of the sys tray app I'm interested in, but I can't see how that would help me. I suppose that since pressing the sequence is all I need to do when doing this manually, maybe I could send it to Explorer, but I still don't know what ControlID to use.)
Hi, could anyone help me with a C# code to get info of icons in System Tray? I can accomplish this in AutoIt, but would very much prefer to be able to have this in c#. I use it daily, to fix some problems/bugs in another software to make it usable, which is in beta now, and until developers fix it, I need to resort to this thing. Crazy enough, there is no other way inbuilt to get the status of a program and what it's doing, except tray icon. No logging, anything at all. They say they are working on it, but until that time... Here's the AutoIt snippet: #include <GuiToolBar.au3> $hTray = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]') $iconCount = _GUICtrlToolbar_ButtonCount($hTray) For $i = 0 To $iconCount - 1 $text = _GUICtrlToolbar_GetButtonText($hTray, $i) ConsoleWrite($text & @LF) Next The most important thing, is to get tray icon tool-tip. I would like to get more, if possible as well, but tool-tip is crucial.
I'm a hobbyist and only learning programming (C#). I don't know c++, nor I know how to properly PInvoke in c#, and I'm not confident enough to mess with unmanaged code. I even tried to accomplish this in C# using AutoItX3_x64.dll, but could not figure it out. Any help would be much appreciated. Maybe at least someone could tell me, where else I could ask for help on this, if not here? Autoit is awesome, I use it daily, sadly this project is just too big and complicated to do it all in Autoit only. Main reason - I want to use WPF.