Git Product home page Git Product logo

jumplist-extender's People

Contributors

googlecodeexporter avatar

Watchers

 avatar

jumplist-extender's Issues

Remove jumplist upon T7EBackground exit

This can be implemented via the "Form Closing" event. Basically pass an
empty applist to AssignToShortcuts() and AssignToWindows(), so the two
functions delete every appid from said objects.

IS THIS DESIRABLE, THOUGH? Do I REALLY want to strip jumplists upon exit?
Pros: No undesirable behavior occurs, such as some program windows
appearing on a second, separate program button

Cons: Jumplists won't be available when T7EBackground is not running


Original issue reported on code.google.com by [email protected] on 11 May 2010 at 3:51

Time lock

Implement time lock, every two-three weeks? Should be doable in Main().


Original issue reported on code.google.com by [email protected] on 15 May 2010 at 3:11

Code cleanup

REALLY want to get this done by 2.0. Must do this before working on more
major features.

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 12:48

  • Blocking: #29

"AppSettings.xml" access denied?

HTH does this happen? It seems to happen when you loaded one program, but
you select another program through Select Window. I'm GUESSING that, since
this program change affects AppSettings.xml, then that's where the error
occurs?

Env64: True
EnvInstalled: True

AppName: Snipping Tool
AppPath: C:\windows\system32\mspaint.exe

System.IO.IOException: The process cannot access the file 'AppSettings.xml'
because it is being used by another process.
  at System.IO.Directory.DeleteHelper(String fullPath, String userPath,
Boolean recursive)
  at System.IO.Directory.Delete(String fullPath, String userPath, Boolean
recursive)
  at T7EPreferences.Preferences.LoadJumplistPack(String packFilename)
  at T7EPreferences.Primary.ImportPack(String appName, String packPath)
  at T7EPreferences.Primary.ShowStartDialog()
  at T7EPreferences.Program.Main()

Original issue reported on code.google.com by [email protected] on 20 May 2010 at 7:24

Display icons for each jumplist item, and in the icon combobox.

What a DOOZY!

ImageComboBox:
http://www.codeproject.com/KB/combobox/ImageComboBoxControl.aspx

Basically, create a new ImageList object. Set ImageComboBox.ImageList to 
the object. Set ImageComboBoxItem.ImageIndex to the desired index.

Implementation:
For each item added, deleted, and moved on the jumplist listbox, do the 
same to the ImageList. And change the comboboxitem's imageindex to match 
the ImageList. So when an item is added, a new Image will be made. When an 
item is deleted, that Image will be deleted. When an item is moved, so 
will all the Images.

It's harder than it sounds. I'll probably save this for the code cleanup 
X_X. I might even replace the ListBox with a ListTree, too, so it's even 
better that I wait.

ItemIconComboBox also depends on this, since it'll use the same ImageList.

Original issue reported on code.google.com by [email protected] on 25 Apr 2010 at 1:16

Code Snipping Tool jumplist example

This'll be fun!

Using AutoHotKey, automate taking a screencap using Snipping Tool, and 
uploading it to imageshack.

AHK Http Requests: (Includes imageshack example)
http://www.autohotkey.com/forum/topic33506.html

Imageshack API: (Requires API key for use)
http://reg.imageshack.us/content.php?page=developer

Listen for messages: AHK OnMessage()
http://www.autohotkey.com/docs/commands/OnMessage.htm

Check mouse position:
http://www.autohotkey.com/docs/commands/MouseGetPos.htm

Basically, listen for user's mouseup event. Once it's fired, check if the 
event actually resulted in a screenshot, by checking its mousepos and 
making sure it was not on the control window (?)

Then, save the file to a temp file, then upload to imageshack! Get the 
result URL, and open it in the default browser!

Original issue reported on code.google.com by [email protected] on 19 Apr 2010 at 8:06

Add "Wait for new program window" selection option

Some keyboard actions require the following states:

V Open new window
* Wait for a window to open [+Add]
** NOTE: Do this if you want to open a window in the middle of the task
* Ignore if the program is running
* Ignore if the program is not running

Original issue reported on code.google.com by [email protected] on 18 May 2010 at 11:57

[Installer] Start menu user bug; Inno switch; full user support

I'll likely be using WiX/Windows Installer.

Upon install:
1. Put files in %programfiles%
2. Register J7EBackground as a startup app
3. Run J7EBackground

Upon uninstall:
4. Ask if you want to delete appdata, too.
3. Run J7EBackground? to restore shortcuts and remove window appids.
** Accomplish this by loading it with full AppList.xml, then feeding it an 
empty one.
** If keeping appdata, put AppList.xml back in its place.
2. Remove jumplist from each registered appid. Just call Jumplist.Refresh
(); on an empty jumplist.
1. Remove files in %programfiles%

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 4:57

Can't browse DLL icons

Weird icon browsing behavior involving DLLs: IconPicker doesn't start up.

What I gather:
* DLL: Does not work
* EXE: Works
* PNG/JPG/GIF/BMP: Works

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 10:42

Allow separate applications to be under the same taskbar button

Kinda' related to "Allow multiple jumplists per window:" The OneNote
jumplist has folders for School and OneNote Notebooks, but those folders
end up on the Explorer button.

Why not have an option, "Open Shortcut in OneNote Button?" That seems more
organized, as if those folders were filed under the same thought as my
OneNote work.

This beseeches further toying with: What are some neat filing organizations
that programs can be placed under? Allow windows to be "Filed Under
Firefox?" Allow windows to have different jumplists per the same
application, separated by window class name (OR title name?)

Original issue reported on code.google.com by [email protected] on 17 May 2010 at 3:44

Implement keyboard textbox

This is truly one hard bugger.

Basically, replace regular textbox with a "smart" keyboard shortcut-
detecting box that, at the current caret position, puts "{CTRL+ALT+" 
whenever you press those buttons.

Issues
1. How to block alt key from screwing up textbox?
2. Accurately detect ctrl, alt, shift, win
3. Shift behavior?
4. Edit keys behavior? Up/down/left/right/home/end/insert/delete. They do 
their expect behavior, except when a modifer key is pressed; they end up 
becoming a keyboard shortcut

Usability testing would be SO good for this.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 4:53

UAC windows cannot accept jumplist keyboard tasks

Or any AHK meddling at all, for that matter.

While UAC windows can be assigned to jumplists, the underlying AHK scripts
cannot send keystrokes or manipulate the window. I could do a check if
window is elevated, and then elevate the script.

What's the user experience for an elevated prompt, every time you click on
a jumplist task?

Original issue reported on code.google.com by [email protected] on 22 May 2010 at 2:01

Handle users correctly

Users and NSIS are really tricky. The idea I have for now is:

1. Put JLE shortcuts in All Users\Programs\Jumplist Extender
2. Set startup for current user in registry
3. When other user starts JLE, show a checkbox, "Enable jumplists on startup"

4. When JLE is uninstalled,
4A. NSISInstall needs to enumerate through all users' AppData, and remove
each jumplist
4AI. WAIT! How will that work? Can I run NSISInstall through RunAs, and
then set each user's jumplists then?
4B. Restart the computer. Remove each user's startup setting.

This seems to pan out well, except 4B and potentially 4A. Must flesh out.

Original issue reported on code.google.com by [email protected] on 22 May 2010 at 1:06

Code website

If not the full Wiki, then at least a front page write-up, showing off the
four features. Light screenshots and (possibly Youtube videos) would be great

Original issue reported on code.google.com by [email protected] on 17 May 2010 at 12:52

Implement Import/Export packs

It's a social feature. I NEED this for the first release, especially since 
the best way to learn how a program works is by example.

J7EPacks are app-generic, but they store the intended processname. They 
can be imported into any app, but a warning saying "This is not the same 
app! Are you sure?" will pop up. They can only be applied onto existing 
apps. 

They do not change any AppId/ProcessName/Path, but they DO change jumplist 
settings -- they either replace, or add on.

Dialog pops up saying "Which features do you want to import?" And then
"V Jumplist -- * Add-on   * Replace"

------------

Path replacement, in order:

1. Use [Square Tags] to replace internal J7E paths.
* [appIdPath]
* No believed need for [appId], [appPath], [appPathExe]. We're not shoving 
these into the appdata as is; we READ from them. No point in storing them 
except for comparisons.

2. Use %envpaths% to replace supported paths.

----

Upon import

2. Replace %envpaths% with their expanded coutnerparts

1. Replace [Square Tags] with their expanded counterparts

------------

* Copy icons to the J7EPack. Replace XML icon entries with local 
[appIdPath] paths.

* Copy AHK scripts to the J7EPack. No need for path replacement, since we 
just specify filename.

* Keyboard shortcuts can stay in the XML. We regenerate them upon saving.

* Command lines stay in the XML, too. They're self contained; we already 
replaced their paths.
** Same with file/folder links. Huzzah! /|O_O|\

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 4:44

Main tab control does not redraw when maximized

I can just call Invalidate(); on this, right?

Jumplist tab control is not redrawn when maximized, leaving a sloppy part-
white-part-gray background. 

When restored, it IS redrawn. When tab changes, it IS redrawn.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 11:38

Crash logging and reporting

Because it WILL happen.

The idea: Open up a dialog. Without further intervention, user can send a
Trace report to [email protected]. If user chooses, he can add a
description, and also consent to his desktop being screencapped.

http://stackoverflow.com/questions/147557/error-logging-in-c
http://csharp-source.net/open-source/logging
http://nlog-project.org/

Second link shows GPL-compatible loggers. NLog looks really good.

Original issue reported on code.google.com by [email protected] on 13 May 2010 at 3:18

Add Start Menu Search shortcuts

Cool idea I had that takes advantage of the Start Menu Search: IF
installed, place shortcuts in Programs\Jumplist Extender\Jumplists\Program
Name\Do action with Name.lnk. Indexing should pick it up.

TASKS
[Item Name] with [App Name].lnk
* Works best with verbs -- and tasks SHOULD be verbs, anyways.

FILES/FOLDERS
Open [Item Name], for/with [App Name]
* , For for default-opened shortcuts; With for app-opened shortcuts
* Open School, for Microsoft OneNote
* Open Personal Journal with Microsoft OneNote

Should be pretty easy. Probably required for a good first rep. Probably
needs an option to disable it.

Watch for app name and path renaming.

Original issue reported on code.google.com by [email protected] on 13 May 2010 at 3:30

Add donate links

'cause this is REALLY important :)

Must think of a way to be unobtrusive and non-annoying, and at the same
time persuasive about it.

* After 5 days, pop up a "Donate to me!" dialog?
** BUT NOT MODAL! Pop it up alongside startform
* After those 5 days, always show a "Donate" link on the startform
** And the exportform?

* Is "bucks-havers!" a good strategy? Is it appropriate in certain places,
but not others?
** In persuasive places, yes. In side places, no.

Original issue reported on code.google.com by [email protected] on 12 May 2010 at 8:59

YouTube videos

Shoot at least one YouTube video, showing features of JLE and how to use them.

Optional: Shoot mini-videos for keyboard shortcuts, command lines, AHK, and
packs, for the front write-up. You might as well put all these together,
plus an intro, for the full video.

Original issue reported on code.google.com by [email protected] on 17 May 2010 at 12:51

Combine "Open" and "Manage" form; delete third startup button

Combine "Open" and "Manage" form modes. Basically:

1. Remove the side buttons; have exclusive "Open" button on bottom
2. "Import", "Export", and "Disable/Delete" buttons will remain below list

Also, remove the "Manage Programs" button from the startup form.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 10:30

Some system32 apps are not recognized by AHK; but Sysnative is

C:\Windows\system32\Snippingtool.exe is recognized by most system-native 
functions, but NOT AHK.

It's a 64-bit thing -- you use Sysnative\Snippingtool.exe for apps that 
don't have a 32-bit exe. If I replace the working appPath with Sysnative, it 
breaks some system-native functions.

The best solution for now is to replace it for AHK only. If that doesn't 
work, this bug is for future reference.

Original issue reported on code.google.com by [email protected] on 19 Apr 2010 at 7:19

Fix UI for regular DPI

Some parts of JLE are too small for 100% DPI users, since JLE is developed
on 120% DPI. Some forms are OK, but the main form needs to be rearranged.

Notably, ALL BUTTONS need to be resized for normal on 100% DPI.

Original issue reported on code.google.com by [email protected] on 12 May 2010 at 2:56

Select window bug: "Access denied?"

Sometimes, when selecting the window, the process can't be accessed. I'm
PRETTY SURE that this is due to .NET's System.Diagnostics.Process and NOT
P/Invoke. I wonder if this has to do with UAC???

Then again, it might not, 'cause this happened with Firefox too.

Env64: False
EnvInstalled: True

AppName: TuneUp Utilities 2009
AppPath: C:\Program Files\TuneUp Utilities 2009\Integrator.exe

System.ComponentModel.Win32Exception: Access is denied
  at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32
access, Boolean throwIfExited)
  at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId,
Boolean firstModuleOnly)
  at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId)
  at System.Diagnostics.Process.get_MainModule()
  at T7EPreferences.SelectWindow.HookCallback(Int32 nCode, IntPtr wParam,
IntPtr lParam)
  at System.Windows.Forms.UnsafeNativeMethods.PeekMessage(MSG& msg,
HandleRef hwnd, Int32 msgMin, Int32 msgMax, Int32 remove)
  at
System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNat
iveMethods.IMsoComponentManager.FPushMessageLoop(Int32
dwComponentID, Int32 reason, Int32 pvLoopData)
  at
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32
reason, ApplicationContext context)
  at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32
reason, ApplicationContext context)
  at System.Windows.Forms.Application.Run(Form mainForm)
  at T7EPreferences.Program.Main()

Original issue reported on code.google.com by [email protected] on 20 May 2010 at 7:27

Fix save jumplist ==> self-assigned appid issue

WinAPI Code Pack assigns the saved jumplist appid to the calling program --
ergo, JLE's window shares the same appid.

For now, fixed by setting JLE's window to an empty appid -- BUT, newly
created windows INHERIT THE SAVED APPID! Fix that.

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 4:01

Fix T7EBackground

T7EBackground is having these weird "object is null" errors. Can't run
until these are fixed.

Processname matching has to be changed so all instances use
Text.Equals(othertext, OrdinalCaseInsensitive)

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 12:46

Broken zip file handling? "Cannot find central directory"

Apparently when you extract a broken zip file, SharpZipLib cannot find the
zip's "central directory." Wonder how that happened.

If this is solely due to corrupt zips, maybe just add a check.

Env64: True
EnvInstalled: True

ICSharpCode.SharpZipLib.Zip.ZipException: Cannot find central directory
  en ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
  en ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(String name)
  en ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(String zipFileName,
String targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate
confirmDelegate, String fileFilter, String directoryFilter, Boolean
restoreDateTime)
  en ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(String zipFileName,
String targetDirectory, String fileFilter)
  en T7EPreferences.Preferences.LoadJumplistPackInfo(String packFilename)
  en T7EPreferences.Primary.ImportPack(String appName, String packPath)
  en T7EPreferences.Primary.ShowStartDialog()
  en T7EPreferences.Program.Main()

Original issue reported on code.google.com by [email protected] on 20 May 2010 at 7:21

Support multiple types of windows per program

Perfect example: VirtualBox has a "Config" window and a "GUI" window, the
latter showing the environment itself. I can have options like "Run Server
2008" for the config window, and "Connect Network" for the GUI window.

It'd be cool to assign different appids to the different classes, and show
different jumplists for each. Don't know where I could put it in the GUI,
though. Maybe expose them as "two separate programs?"

Probably dependent on Code Cleanup.

Original issue reported on code.google.com by [email protected] on 13 May 2010 at 3:23

  • Blocked on: #20

Update checker

http://jumplist.gsdn-media.com/update.txt

010
020
050
100
150

Original issue reported on code.google.com by [email protected] on 15 May 2010 at 3:12

No Undo/Redo

I'd like to have this, and it's necessary, but I'm at a loss on how to 
implement it. 

In lieu of votes, I'll put this off until I have less todo items.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 4:18

ShellLink sometimes fails to resolve a shortcut

Don't know how ShellLink ends up failing here. Maybe related to to the
"change AppList.xml, switch every shortcut over!" bug? Anyways, add a
try{}catch{} block here. Fail gracefully.

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT
E_FAIL has been returned from a call to a COM component.
  at T7ECommon.ShellLink.IShellLinkW.Resolve(IntPtr hWnd, UInt32 fFlags)
  at T7ECommon.ShellLink.Open(String linkFile, IntPtr hWnd,
EShellLinkResolveFlags resolveFlags, UInt16 timeOut)
  at T7ECommon.Common.ResolveLnkPath(String lnkPath)
  at T7EBackground.Primary.AssignAppIdsToShortcuts(String shortcutPath,
Dictionary`2[] changesList)

Original issue reported on code.google.com by [email protected] on 19 May 2010 at 9:14

Implement Disable/Delete AppSettings and Erase Jumplist

lolol

Jumplist erasing can be done simply by calling jumplist.Refresh(); on an 
empty jumplist.

Disabled apps -- Keep a separate list, DisabledAppList.xml, that stores 
disabled apps. Then list them on a separate line from the other programs.

Deleted apps -- Delete the app folder, delete the app from AppList.xml and 
DisabledAppList.xml.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 10:50

Update help text

Things that come to mind:

1. Add "Import/Export" keyboard shortcuts to shortcut help
2. Update AHK help functions
3. I think that's it... Also, make help window wider, for Calibri font.

Original issue reported on code.google.com by [email protected] on 15 May 2010 at 6:44

Keyboard textbox is finicky with [ ] { }

This requires a change of JLIO's parser functions to watch out for double
{{} and {}}s

Whole behavior is weird in general. You won't see {{}s because they're
represented by +[. But is there any weird parsing with []s?

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 12:40

Implement "Select Window"

Not only is this required for "splash screen" apps, but I can do cool
things with it, too:

1. Check the window path to see if it actually matches AppPath
* Also, store the old AppPath so it can match T7EBackground's shortcut
pinning. Probably store a "clone" appId entry in AppList.xml -- "clone" is
ignored by T7EPreferences, but T7EBackground can just match the old
processname with the appid.
* I'M LOOKING AT YOU, OFFICE 2010

2. Check the window name to see if it actually matches
* Probably auto-slice the "Untitled" part of the app. Or, just return
everything to the right of " - "

3. How to tell user that "If keystrokes don't work, change the program name!"?
* If you have the window class name, this shouldn't matter.

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 3:47

AppList.xml file lock race condition -- Resets shortcut positions

T7EBackground has a problem when T7EPreferences saves AppList.xml: T7EB
reads AppList.xml too soon, and doesn't receive useful changes.

For now, I just put it in a silent try {} catch(){} block, but the fix is
probably more involved. Sometimes, T7EB will reset the pinned shortcut
positions, presumably out of receiving an empty(?) AddedList. 

Don't know what that's about, but this needs to be fixed.

Original issue reported on code.google.com by [email protected] on 17 May 2010 at 12:56

File not found for GetAppIdForProgramFile()?

Env64: True
EnvInstalled: True


System.IO.FileNotFoundException: C:\Users\xx\Downloads
  at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
  at T7ECommon.Common.GetAppIdForProgramFile(String programFilePath)
  at T7EPreferences.Primary.OpenProgramFile()
  at T7EPreferences.Primary.ShowStartDialog()
  at T7EPreferences.Program.Main()

Original issue reported on code.google.com by [email protected] on 20 May 2010 at 7:17

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.