Commit graph

  • de9654707a 1. Force restore in case OS does not generate display changed event 2. Different restore event handling for password protected session and no-password session Kang Yu 2020-03-19 20:03:49 -07:00
  • 497c515c23 tag version 3.9 3.9 Kang Yu 2020-03-18 12:04:37 -07:00
  • d55dd26ca9 fix invalid time issue when selecting restore menu Kang Yu 2020-03-18 12:03:58 -07:00
  • 72a533b507 fix issue 11 caused by rolling window position back to incorrect cutoff time Kang Yu 2020-03-18 11:58:53 -07:00
  • d0e280f2ef tag version 3.8 3.8 Kang Yu 2020-03-15 15:01:48 -07:00
  • 8fc94dc1f8 update Readme Kang Yu 2020-03-15 15:34:11 -07:00
  • 8c56770402 introduce extra delay in manual restore required for moving taskbar using simulated method Kang Yu 2020-03-15 15:33:55 -07:00
  • 2525ab2882 restore window position reliably by applying cutoff time on capture history queue Kang Yu 2020-03-15 15:01:05 -07:00
  • 585dd399b8 record time together with window pos to help restore Kang Yu 2020-03-14 20:44:22 -07:00
  • afcf90b169 rename Shutdown to Exit in menu Kang Yu 2020-03-14 18:31:56 -07:00
  • dbf0e782fc add Capture and Restore menu item to allow manual operation Kang Yu 2020-03-14 18:27:45 -07:00
  • e68e0184aa restore taskbar position Kang Yu 2020-03-14 17:03:45 -07:00
  • 1dc841d783 refactor move taskbar function Kang Yu 2020-03-14 15:22:31 -07:00
  • 7cf8a152fc experiment to move taskbar Kang Yu 2020-03-06 13:20:49 -08:00
  • 523d4ba0e3 disable timer based capture when closing session event is detected Kang Yu 2020-03-02 12:47:22 -08:00
  • a3511200b6 tag version 3.7 3.7 Kang Yu 2020-03-01 18:28:17 -08:00
  • 665954db26 fix issue 10: add -silent command option to suppress splash window Kang Yu 2020-03-01 18:27:49 -08:00
  • bd7baab613 only capture window moves that are missed by event handler Kang Yu 2020-03-01 18:18:37 -08:00
  • 43781dcb5e identify OS move by using counter; Capture user snap window using timer Kang Yu 2020-03-01 15:59:51 -08:00
  • aa8b478eda capture user move window action instantly with precision without using delay timer Kang Yu 2020-02-29 18:18:00 -08:00
  • 29f24db354 reduce number of restore effort to speed up recovery Kang Yu 2020-02-29 15:34:20 -08:00
  • 528d1e783d fix issue 9. capture taskbar window Kang Yu 2020-02-29 15:06:29 -08:00
  • d4bf4a0b3a safe lock against re-entry of restore routine Kang Yu 2020-02-29 13:15:11 -08:00
  • b3acca721f avoid excessive restore cycle Kang Yu 2020-02-29 12:27:49 -08:00
  • d90829735d do fixed delay restore followed by window move event driven restore, to improve the chance of successful restore Kang Yu 2020-02-29 12:08:28 -08:00
  • e3a0ddfacd adjust max latency for capture to fix miscapture due to slow RDP recovery Kang Yu 2020-02-27 20:04:22 -08:00
  • 1c3eee85b0
    Update README.md kangyu-california 2020-02-27 13:39:13 -08:00
  • f1ad0ebc7b
    Update README.md kangyu-california 2020-02-27 13:01:00 -08:00
  • d63f96a993
    Update README.md kangyu-california 2020-02-27 12:43:54 -08:00
  • 8341a50890 tag version 3.6 3.6 Kang Yu 2020-02-27 10:34:35 -08:00
  • dd3bb5c494 force restore window multiple times in case Windows OS fail to send notification message Kang Yu 2020-02-27 10:34:15 -08:00
  • 1717a0923d tag version 3.5 3.5 Kang Yu 2020-02-26 21:36:25 -08:00
  • 054565778a do not recapture window when restore period is finished, because there is a small chance that OS incorrectly placed window. In that case, user still has a chance to restore by doing another round of sleep/awake Kang Yu 2020-02-26 19:41:57 -08:00
  • 0ad030a7aa resolve risk condition due to multi-thread Kang Yu 2020-02-23 22:15:55 -08:00
  • e3a3cc1706 factor ResetState() Kang Yu 2020-02-23 20:09:39 -08:00
  • aecc9f6e29 adjust restore try times for local/remote session with different value Kang Yu 2020-02-23 18:03:16 -08:00
  • c94e54f739 tag version 3.4 3.4 Kang Yu 2020-02-23 11:37:48 -08:00
  • 69a9b4f273 allow early abortion of restore when user actively move/min/max/restore window (excluding trivial activate or create new window) Kang Yu 2020-02-23 15:18:01 -08:00
  • ebadd17d07 reliably restore window position for at most 6 passes upon display change Kang Yu 2020-02-23 11:37:20 -08:00
  • 331c911b09 tag version 3.3 Kang Yu 2020-02-22 14:58:57 -08:00
  • 7eb54d135a extend restoreWindowPos active period by 500ms to detect OS move Kang Yu 2020-02-22 14:47:20 -08:00
  • 060e1f67e1 reduce window flickering by avoid unnecessary SetWindowPlacement() call. Revert complicated SetWindowPos() call to simple MoveWindow() call Kang Yu 2020-02-22 12:43:06 -08:00
  • 11cd6f568d automatically fix small negative y screen coordinate to avoid repeated recovery Kang Yu 2020-02-22 12:01:00 -08:00
  • 3056a1bbec capitalize constant names Kang Yu 2020-02-19 10:55:02 -08:00
  • a046aec3e4 tag version V3.2 3.2 Kang Yu 2020-02-18 15:30:21 -08:00
  • 0dd37cf785 Fix flickering window loop issue in V3.0 and V3.1 Restore window z order Restore maximized window indicator Kang Yu 2020-02-18 13:33:59 -08:00
  • 56102d5296 tag version 3.1 3.1 Kang Yu 2020-02-17 22:29:48 -08:00
  • 8faa833fbe fix miss capture of new window Kang Yu 2020-02-17 22:29:01 -08:00
  • c430ea7d3e avoid excessive capture during restore Kang Yu 2020-02-17 21:21:21 -08:00
  • b1d6ecb04e Measure window move speed to recognize OS initiated move. Replace MoveWindow() with SetWindowPos() to preserve window depth Kang Yu 2020-02-17 14:43:47 -08:00
  • a4f3706585 tag version 3.0 3.0 Kang Yu 2020-02-16 22:29:18 -08:00
  • 02de0b3216 fine tune timer latency for slow remote desktop connection Kang Yu 2020-02-16 23:05:37 -08:00
  • 505d6d9126 Avoid capture when display setting changes before event handler is called Distinguish user initiated move/resize from OS initiated move/resize Introduce load-adaptive capture speed control for slow remote desktop connection Kang Yu 2020-02-15 11:39:01 -08:00
  • f0d32437d4 tag version 2.9 2.9 Kang Yu 2020-02-14 18:24:18 -08:00
  • a134d2f337 adjust timer latency so that capture takes longer than recovery, this is required for second recovery pass Kang Yu 2020-02-14 18:21:25 -08:00
  • 1e04039dd2 implement second restore pass in a more elegant way Kang Yu 2020-02-14 15:43:54 -08:00
  • 4a25903024 Improve capture/restore accuracy using timer and event handler Kang Yu 2020-02-14 15:41:21 -08:00
  • 4f6eb079e1 avoid conversion between User32Events and uint Kang Yu 2020-02-11 23:45:06 -08:00
  • fadf717d24 clean up unused code Kang Yu 2020-02-11 23:18:48 -08:00
  • 9a301996c2 Reimplement capture/restore using event handler Kang Yu 2020-02-11 23:12:22 -08:00
  • f9ccb9e4ed Turn on pure event driven window capture to fix miscatpture issues. Turn on system suspend event handler to avoid miscapture. Kang Yu 2020-02-09 20:26:59 -08:00
  • 636ff55291 merge event driven handler code from WindowMagic to reduce cpu usage due to polling Kang Yu 2020-02-08 15:23:43 -08:00
  • 564d4e52ea tag version 2.8 2.8 Kang Yu 2020-02-06 18:38:46 -08:00
  • 4ce4f53941 disable event-driven window movement detection due to insufficient capability. Re-enable polling method with thread safety enhancement Kang Yu 2020-02-06 18:29:35 -08:00
  • 55851c6847 merge from WindowMagic by Sean Aitken: 1. use event driven detection instead of polling 2. add Dispose() method to free resources Kang Yu 2020-02-06 13:36:25 -08:00
  • 36182585a4 tentative fix to improve reliability, avoid risk condition or potential crash Kang Yu 2020-02-05 22:09:18 -08:00
  • 71c7d6db4b remove x64 build option Kang Yu 2020-02-03 18:17:14 -08:00
  • 556cf28ae7 remove x64 build option and unnecessary extern package declaration Kang Yu 2020-02-03 18:16:13 -08:00
  • 89afcad35a remove x64 build option Kang Yu 2020-02-03 18:14:40 -08:00
  • 43e8641cfd remove x64 build config option, leaving only "Any CPU" Kang Yu 2020-02-03 17:11:13 -08:00
  • 7170ad0698 update comment Kang Yu 2020-02-03 16:58:13 -08:00
  • b02d135b0a tag release 2.7 2.7 Kang Yu 2020-01-30 23:16:21 -08:00
  • a7b15a0f22 fix flickering window issue introduced in V2.6, try recover old WindowPlacement only once Kang Yu 2020-01-30 23:14:17 -08:00
  • 8b749413f9 stay locked during double restore Kang Yu 2020-01-30 19:13:42 -08:00
  • 7230c5385b tag release 2.6 2.6 Kang Yu 2020-01-29 11:14:09 -08:00
  • d724a282f8 1. Call restore window position routine twice to reliably restore window snapped to screen edge, as Windows OS may undo restore for unknown reasons. 2. Automatically undo unexpected WindowPlacement change when screen position stays the same, the unexpected behavior happens right AFTER window pos restoration is done Kang Yu 2020-01-29 18:18:53 -08:00
  • f3fd7b2e60 improve debug message Kang Yu 2020-01-29 13:48:38 -08:00
  • 7f6cf70c95 remove unused "using ..." Kang Yu 2020-01-29 11:13:08 -08:00
  • c015d27fc8 remove unused Dispose() method Kang Yu 2020-01-29 11:09:06 -08:00
  • de4bc1e709 minor coding style and message change Kang Yu 2020-01-29 11:03:10 -08:00
  • a84b5f07bc simplify window recovery procedure Kang Yu 2020-01-29 10:58:30 -08:00
  • c82aaa3c59 remove dos new line Kang Yu 2020-01-29 10:55:32 -08:00
  • 7e4f3820b1 reject false window placement change when real screen position does not Kang Yu 2020-01-29 09:37:38 -08:00
  • 39fdc0cace overwrite label text with dynamic content during form load event, dynamic text is not allowed during form design Kang Yu 2020-01-28 16:26:24 -08:00
  • f2e86f0878 refined string construction Kang Yu 2020-01-28 16:17:56 -08:00
  • dd0a31dfc7 remove obsolete code Kang Yu 2020-01-28 12:39:49 -08:00
  • eda1839e4a rename local var to emphasize current and previous value Kang Yu 2020-01-28 12:24:04 -08:00
  • fddbb85279 only release version has the limit of singleton running instance Kang Yu 2020-01-28 02:21:24 -08:00
  • 4bda3525db avoid taking invalid value in WindowPlacement by focusing only on normal position part Kang Yu 2020-01-28 01:00:39 -08:00
  • 9f0680b8d4 allow only one instance to run in release mode. update version to 2.5.xx 2.5 Kang Yu 2020-01-27 22:05:31 -08:00
  • 107b82c33e use standard method to get release version Kang Yu 2020-01-27 21:02:01 -08:00
  • 52fed8b1c8 use process id to resolve hash key (hwnd) conflict Kang Yu 2020-01-27 20:26:20 -08:00
  • fe4fd6f8d0 safe guard hash collision between destroyed window and new window 2.4 Kang Yu 2020-01-27 01:20:10 -08:00
  • 0d708214a1 refine text format in splash screen Kang Yu 2020-01-27 00:04:12 -08:00
  • a3803a9164 start program with a splash screen kangyu 2020-01-26 14:38:04 -08:00
  • 9406f220d4 rename variable name to indicate screen coordinate instead of workspace coordinate kangyu 2020-01-26 12:59:09 -08:00
  • 357756d384 reduce the amount of MoveWindow() call kangyu 2020-01-26 12:55:57 -08:00
  • b7fcca2df6 reliably restore window position by calling SetWindowPlacement() first, followed by MoveWindow(). Required for release build kangyu 2020-01-26 01:51:16 -08:00
  • f3f414797a smooth window location update using 3 second window to reduce noise across timer boundary kangyu 2020-01-26 01:06:29 -08:00
  • b2216a3a9e refix failure to restore snapped window using GetWindowRect()/MoveWindow() API in addition to GetWindowPlacement()/SetWindowPlacement() kangyu 2020-01-26 00:06:29 -08:00