forum

[DEAD] osu!Sync | Share your beatmaps

posted
Total Posts
149
Topic Starter
naseweis520
osu!Sync is no longer maintained!
Thanks to you all for your support and aid. Last release

The idea behind
osu!Sync is a tool which helps you to export, share and backup your beatmaps in a small and handy file, a beatmap list file. These beatmap lists can be shared simply via any file hoster. When importing beatmaps osu!Sync automatically downloads the beatmaps and installs them to osu!. You can also export your beatmap lists to other formats like JSON, SVG, HTML.

Screenshots
Screenshots

Overview of installed beatmaps. (Version 1.0.0.14)


Beatmap detail panel with enabled API access. (Version 1.0.0.14)


Downloader and importer. (Version 0.0.0.14)


Export selector (will be optimized later). (Version 1.0.0.14)


Generated HTML-page. (Version 1.0.0.1)


Links
Download
  1. Download latest version from GitHub (under "Downloads", click on "osu.Sync.[VERSION].zip").
  2. List of older releases on GitHub.


Source Code
  1. View source code on GitHub.
  2. Download source code from GitHub.


Other
  1. Help translate osu!Sync.
  2. Sample Beatmap lists.


Installation
  1. Download latest version of osu!Sync.
  2. Unzip downloaded .ZIP-File into a separate folder.
  3. Run osu!Sync.exe. (No installation required.)
  4. That's it.


Anything else
Compatibility: Windows 10, Windows 8.1, Windows 8, Windows 7 | 64/32bit (Requires .NET Framework 4 or later) | May work on older OS, but not tested
Languages: Open for translations / Available languages listed at top.
osu!weekly: Apparently this project has once been featured in osu!weekly #5, which I kinda didn't notice until August 2017. The article was no longer available at that time but fortunately it got crawled. Read here.
Esupanitix
If this really works as well as I hope it will, this will make the ordeal of redownloading the maps I deleted much lesser. This will probably become a necessity if it keeps improving :V
Oinari-sama
Oh I gotta try this later :)

EDIT: The user should be able to specify the location of osu directory, not everyone uses the default installation path. At the moment the Open Data Folder button points to the Roaming directory under windows.

Also wish there's more Update options (ie Daily/Weekly).
Topic Starter
naseweis520

Oinari-sama wrote:

Oh I gotta try this later :)

EDIT: The user should be able to specify the location of osu directory, not everyone uses the default installation path. At the moment the Open Data Folder button points to the Roaming directory under windows.

Also wish there's more Update options (ie Daily/Weekly).
Thanks for your feedback.

The path to the osu! directory can be specified in the settings window (Program > Settings) in the tab "osu!" (unfortunately the dialog directly pops up, gonna fix that later). There you need to select the osu!.exe which is used to specify the path to it.
If you try to synchronize and the tool can't find the "normal" directory of osu! you'll get a warning and will directly be taken to the settings.
The "Open Data Folder"-button points to the directory of the files osu!Sync leaves in your system (currently only configuration) which you may want to remove.
Well, I should label the button more clear, I guess. :D

But more update options will definitely come. :)


Esupanitix wrote:

If this really works as well as I hope it will, this will make the ordeal of redownloading the maps I deleted much lesser. This will probably become a necessity if it keeps improving :V
Well, for that I need to improve the "Export selected Beatmaps" function, which is already planned :D
Howl
this. is. awesome.
Oinari-sama
Oh lol I totally didn't realise there're 2 tabs (General & osu)! The editor pic above was a trap, I tried clicking on the design/timing/song setup in the pic and nothing happened so I assumed the rest are decorations too xD

After fixing the path, it produced a generic error as soon as I hit sync:
Topic Starter
naseweis520

Howl wrote:

this. is. awesome.
Hehe, thanks. (〃 ̄ω ̄〃ゞ
Oh, and also thank you for your error report.


Oinari-sama wrote:

Oh lol I totally didn't realise there're 2 tabs (General & osu)! The editor pic above was a trap, I tried clicking on the design/timing/song setup in the pic and nothing happened so I assumed the rest are decorations too xD

After fixing the path, it produced a generic error as soon as I hit sync:
1) Lol :)
2) Mhh, I gonna take a look...
Secretpipe
It'd be amazing if we can see mapper's name below map's name :D
Topic Starter
naseweis520

Secretpipe wrote:

It'd be amazing if we can see mapper's name below map's name :D
Well, I had that in mind too buuut...
currently osu!Sync reads all folders inside of your osu!\Songs directory. Their names follow the same scheme "[ID] [Artist] - [Title]", mostly.
However, I plan to read the *.osu files in later version, so if that is implemented I'll display the beatmapper too. :)


Update: 0.0.0.2
A new version of osu!Sync is available
Changelog
* Attempt to fix bug: - Negative Length: Parser Exception
* Typo @ Window_Welcome
* Reduced required .NET-Framework from 4.5 to 4.0
* Update of libraries: - Newtonsoft.Json
+ More Update Check Intervals
XinCrin
I really liked the design. Great job!
Topic Starter
naseweis520

XinCrin wrote:

I really liked the design. Great job!
Hehe, thanks. :)


Secretpipe wrote:

It'd be amazing if we can see mapper's name below map's name :D
Now added.


Update: 0.0.0.3
A new version of osu!Sync is available
Changelog
# Thanks to Oinari-sama for some testing
Added:
__Exporter:
____Detection of not existing/empty beatmaps after download
____Don't export beatmaps with ID -1 (unsubmitted)
____Export won't crash anymore if Beatmap ID exists more than once (it will be skipped)
__Sync:
____Beatmap Counter
____Creator now parsed and displayed
____Detect unsubmitted maps
____More accurate parser (but slower)
____Warning if more than 1000 beatmap sets on sync
__Moar Romaji!!
__More Settings
Improved:
__Better Changelog Format
__Exception Handler Order (first set Clipboard, then show Message Box)
__Updater Connection Error Messages (now more helpful)
__Updater Design
Oinari-sama
Some feedbacks and wish lists:

Rename the 1st Sync to "Get Map Lists"
The 1st sync after loading up the app is really just a "get map list" command isn't it... Imo it'd be better to rename that to distinguish from the "Sync Now" after the list is displayed/imported.


Preload Sync Result from Last Session
The app won't display any maps untill the user syncs, which is a very time consuming process. Is it possible to preload sync results from last session? For people who relies on beatmap packs, this can save a lot of time. Of course, this could introduce problems if some maps were updated between sessions, but this can be avoided if the user is prompted to refresh list before exporting beatmap list.


Remember Path to osu Directory
This is a minor one: it'll be nice to have the last specified path expanded in the popup instead of the default C:\Program Files (x86) everytime.


Improve "Select More Maps to Export"
1) This function takes a LONG time to load (approx. 10 times longer than the sync), is it possible to look at optimisation?
2) I wish there's more selection/sort options, eg select a particular Collection to export (you might wanna check out the Collection Editor project), or custom filter (eg certain artists).


Update All Maps
This is a huge wish list and I dunno how feasible: an Update All Maps function will be nice :D
Are you just grabbing map names (ID) from the Songs folder, or can you actually compare the local version to the server? Update All Maps is only possible with the comparison I think, but I'm just throwing my ideas out lol
Secretpipe
nice bro :p
Topic Starter
naseweis520

Oinari-sama wrote:

Rename the 1st Sync to "Get Map Lists"
Good idea. :)

Oinari-sama wrote:

Preload Sync Result from Last Session
Well, I'm already working on something like this but currently it is too inefficient. Expect to have this soon.

Oinari-sama wrote:

Remember Path to osu Directory
I'm not quite sure which dialog you mean but this seems to be a good suggestion.

Oinari-sama wrote:

Improve "Select More Maps to Export"
1) Uhm, I'm surprised that it takes even longer than the actual "Get Beatmap"-Progress. I'll look what I can optimize.
2) Yeah, I know that it's currently too time-consuming if you want to be really specific with your selection. At first I planned to use DataGrids (they're like tables but you can even sort every column after its values (like sort by Artist)). But I'm not very familliar with them. However, I'll replace the current export selector as soon as I know how to use those tables.
3) I already planned to implement a "Preselect by Collection"-function (ut I couldn't find an open-source project for osu! here on the forums (well, the link at osu!db doesn't work) so I need to write it on my own. However, I'll try to implement this one day but it's currently low priority 'cause it will take much more work than other things on my list.
4) "Select all maps from Artist x" (for example) sounds good, hope to add this soon.

Oinari-sama wrote:

Update All Maps
Mhhh, sounds quite interesting but will be hard to do. Well, I'll look how this would work (I think that osu! uses md5-Hashes) but it will take quite long so I can't promise to add this but I will try. (Maybe I can wirk with other osu! players which already wrote such a tool).

Something I'd like to mention:
I'm planning to make osu!Sync open-source so that other interested people can 1) Optimize osu!Sync (I'm not that familiar with Visual Basic so there are lots of places which can be optimized)
2) Use some parts of the code to develop their own apps faster (but please don't just copy everything, modify a few lines and publish it as a new programm).
Holo-
I must try this! :)

EDIT:
A little feedback after testing it :P

1) Maybe show only one time this dialog or sum all beatmaps in one dialog


2) Just skip the "Failed" folder, because, you know, there is only corrupted beatmaps here :D


That's all for the moment! :)
Oinari-sama

naseweis520 wrote:

Oinari-sama wrote:

Remember Path to osu Directory
I'm not quite sure which dialog you mean but this seems to be a good suggestion.
It's the pop-up prompt for choosing osu directory in Settings > Osu.
Topic Starter
naseweis520

Entrivax wrote:

I must try this! :)

EDIT:
A little feedback after testing it :P

1) Maybe show only one time this dialog or sum all beatmaps in one dialog


2) Just skip the "Failed" folder, because, you know, there is only corrupted beatmaps here :D


That's all for the moment! :)
Thanks for your feedback. ;)
1) Yeah, I didn't expect that there would be so many. However, will be reduced to only one dialog.
2) Ok, will be ignored.


Oinari-sama wrote:

It's the pop-up prompt for choosing osu directory in Settings > Osu.
Ok, thanks. :)
Topic Starter
naseweis520
Update: 0.0.0.4
A new version of osu!Sync is available
Changelog
Added:
__Export:
____Creator will be exported to HTML file too. (Added sort filter "Creator")
____Creator will be exported to OSBL/OSBLX too. (However, this is currently unused but will be displayed in later versions)
__Interface:
____Splash Screen
__Sync:
____"Get Beatmap Sets"-progress will be cached to avoid uneccessary folder scans (which take quite long).
Fixed:
__Export:
____Automatically replace problematic characters in HTML file
Improved:
__Interface:
____Renamed button from "Sync now" to "Get Beatmap Sets"
____"Select file"-Dialogs saves last path
__Sync:
____Ignore "Tutorial" and "Failed" Folder
____Show "Unable to get ID" only once at the end and in an extra window
____Show "Ignored Folders" in an extra window

The following suggestions are still in work or planned:

Oinari-sama wrote:

Preload Sync Result from Last Session

Oinari-sama wrote:

Improve "Select More Maps to Export"

Oinari-sama wrote:

Update All Maps
Piine
Said this for your osu!Skype application, and it would be awesome if it was added onto this. Just to keep it running in the background, could you add that we can minimize it as an icon on the task bar (similar to osu! Boss Key feature).

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
Error Log
Problem signature:
Problem Event Name: AppHangB1
Application Name: osu!Sync.exe
Application Version: 0.0.0.4
Application Timestamp: 54a71b3e
Hang Signature: 72e8
Hang Type: 0
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Hang Signature 1: 72e8b4651a20b5d565b4c3711f4af329
Additional Hang Signature 2: 18d7
Additional Hang Signature 3: 18d7577db50cc06275293de3f35dbaf9
Additional Hang Signature 4: 72e8
Additional Hang Signature 5: 72e8b4651a20b5d565b4c3711f4af329
Additional Hang Signature 6: 18d7
Additional Hang Signature 7: 18d7577db50cc06275293de3f35dbaf9
Holo-

Sulker wrote:

Said this for your osu!Skype application, and it would be awesome if it was added onto this. Just to keep it running in the background, could you add that we can minimize it as an icon on the task bar (similar to osu! Boss Key feature).

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
I think it's just because you have a lot of beatmaps, just keep the app running until it finishes its process :)

@naseweis520 Can you run the sync method in an another thread and just block window's controls until it's finished? (and maybe show a waiting loop during the process ;) ) It will prevent the freezing of the window and the user to force-closing it during this looooong (but necessary :cry:) process.
Little something for the loop
<Controls:MetroProgressBar x:Name="loadingBar" Visibility="Hidden" IsIndeterminate="True" VerticalAlignment="Stretch"/>
Or a big ProgressRing :D

(I like the splash screen :P)
Oinari-sama
I love how smooth that Exception screen looks, Ctrl+A works too! Nice improvements :D

Dialogue texts can use some improvements but I guess it's low priority at the moment. What's the easiest way to "reset" the app? (so messages like association/extension warning will pop up again)

Btw the app still opens the pop-up location dialogue in C:\Program Files (x86), so it doesn't remember last used folder.

1 more suggestion: can you add options to specify a download path for updates? Frankly I never download stuff directly to my desktop and it sometimes mess up Fences/Rainmeter layouts (though it's not your fault) ;w;
Topic Starter
naseweis520

Sulker wrote:

Said this for your osu!Skype application, and it would be awesome if it was added onto this. Just to keep it running in the background, could you add that we can minimize it as an icon on the task bar (similar to osu! Boss Key feature).
This indeed sounds useful for downloading and other long taking processes.


Sulker wrote:

Also when try to to select the "Get Beatmap Feature", the application doesn't respond.
Hehe, well this isn't a bug (nor a feature) but like Entrivax said, the programm is still running but not responding untill all beatmap sets are progressed.


Entrivax wrote:

@naseweis520 Can you run the sync method in an another thread and just block window's controls until it's finished? (and maybe show a waiting loop during the process ;) ) It will prevent the freezing of the window and the user to force-closing it during this looooong (but necessary :cry:) process.
// Added in next version
Shush, don't spoil my next update. Actually I've already started working at that.
The spinner is implemented since the first version but never really had the chance to be displayed. :oops:


Entrivax wrote:

(I like the splash screen :P)
Yaaay.


Oinari-sama wrote:

Dialogue texts can use some improvements but I guess it's low priority at the moment.
Yeah, as soon as I upload osu!Sync to GitHub everyone's free to edit them.


Oinari-sama wrote:

What's the easiest way to "reset" the app? (so messages like association/extension warning will pop up again)
Automatically. | From the MainWindow Program > Settings > General > Delete/Unregister File Association and Delete Configuration (I recommend this order 'cause Delete Configuration will force osu!Sync to shutdown itself)
Manually. | {WINDOWS-KEY}+{R}, insert %appdata%\naseweis520, {ENTER}, delete the folder osu!Sync.
Then again {WINDOWS-KEY}+{R}, insert %temp%\naseweis520, delete the folder osu!Sync (May not exist).
And again {WINDOWS-KEY}+{R}, insert regedit.exe, now navigate to Computer\HKEY_CLASSES_ROOT. Then delete the keys (= folders): .nw520-osbl, .nw520-osblx, naseweis520.osuSync.compressedOsuBeatmapList, naseweis520.osuSync.osuBeatmapList.


Oinari-sama wrote:

Btw the app still opens the pop-up location dialogue in C:\Program Files (x86), so it doesn't remember last used folder.
// Fixed in next update


Oinari-sama wrote:

1 more suggestion: can you add options to specify a download path for updates? Frankly I never download stuff directly to my desktop and it sometimes mess up Fences/Rainmeter layouts (though it's not your fault) ;w;
Yus, will be added. :D
Topic Starter
naseweis520
Update: 0.0.0.5
A new version of osu!Sync is available
Changelog
Special Mention:
__Added sample OSBLX-files to Forum Thread
__
Added:
__General:
____No need to delete and restart osu!Sync because of update and new setting values
____Select path where to save updates (specified in settings)
__Sync:
____Asynchronous sync (Program won't hang)
____Write Cache-File after sync (will be loaded in next version)
Fixed:
__General:
____Bug in Autoupdater
____Minor Optimizations
____Settings Dialog preselects paths
____Updated About Window
__Importer:
____Importer (via double click) doesn't wait for Sync
__Sync:
____Sync ProgressBar
Improved:
__General:
____File Association (if you've got problems reregister all file extensions in the settings)
[N]ephy
thanks you !
Topic Starter
naseweis520
@[N]ephy Merci d'utiliser mon outil. :D (Ne me réponds pas en français, s'il te plaît. Mon français est terrible.)

Update: 0.0.0.6
A new version of osu!Sync is available
Changelog
Special Mention: Published on GitHub!

Added:
__Sync:
____"Generating interface" progress status
____Load Sync from cache file
Fixed:
__Genereal:
____Optimized code
__Interface:
____Minor fixes and improvements
__Sync:
____Sync ProgressBar maximum value changes each file
Updated:
__Forum:
____Screenhots


GitHub
I finally have uploaded osu!Sync to GitHub. Feel free to edit and optimize my awful and dirty code.
(I don't use native programming languages that often so it's pretty... confusing for others to see my code. I'm sorry :D )
Pawsu
This is a great project, keep up the good work! :)
MN Deus Ex
This is just wow, man. I knew that wandering through development forums will pay off someday, and it looks like it's this day. The coolest concept, I've seen so far here. Keep up the good work!
Strategas
Great work. Reminds me of osu! portable.
Topic Starter
naseweis520

CanadianPaws wrote:

This is a great project, keep up the good work! :)
Thanks. :)


MN Deus Ex wrote:

This is just wow, man. I knew that wandering through development forums will pay off someday, and it looks like it's this day. The coolest concept, I've seen so far here. Keep up the good work!
Yeah, happy that it's useful to you and thank you for the kind words.


Strategas wrote:

Great work. Reminds me of osu! portable.
Mhhh, need to look what this is but thank you ;)
Topic Starter
naseweis520
Update: 0.0.0.7
A new version of osu!Sync is available
Changelog
Added:
__General:
____Converter for file types (removed old OSBL-to-OSBLX-function)
____NotifyIcon
__Settings:
____AutoLoad Cache on start up
____Setting to reset osu!Sync
____Support for Download Mirror Loli.al
____More message settings
__Sync:
____Support of Creator information for OSBL-File-Reader (currently only used for cache file)
Changed:
__SplashScreen
Fixed:
__General:
____Minor Improvements
____Update check on first run
__Importer:
____"Total" counter now shows total beatmap sets in OSBL-file (this always was intended so but, well, I failed :3 )
Optimized:
__Settings:
____Reordered General tab
Removed:
__General:
____Cleanup data of older version
____OSBL-to-OSBLX-function (replaced, see "Added")
Updated:
__Libraries
Alex311360
Are your servers currently down? Having trouble downloading the files.
Topic Starter
naseweis520

Alex311360 wrote:

Are your servers currently down? Having trouble downloading the files.
Well, actually no, I can download it like usual.
However, here is a direct mirror to the latest version from my Dropbox or from GitHub.
:)
Alex311360

naseweis520 wrote:

Thanks. Could I get one for Skype too?

This is the message I get upon trying to download:


EDIT: It's also saying it can't connect on the app either.
Kurokami
Actually I got a different error. o.o
SPOILER
System.Windows.Markup.XamlParseException: 'Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '6' and line position '23'. ---> System.IO.FileFormatException: The image format is unrecognized. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x88982F07
--- End of inner exception stack trace ---
at System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
at System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
at System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
at System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
at System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
at System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
at System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32 frameNumber, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, BitmapFrameDecode frameDecode)
at System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(BitmapDecoder decoder, ReadOnlyCollection`1 frames)
at System.Windows.Media.Imaging.BitmapDecoder.Initialize(BitmapDecoder decoder)
at System.Windows.Media.Imaging.BitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean isOriginalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
at System.Windows.Media.Imaging.IconBitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
at System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy)
at System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
at System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- End of inner exception stack trace ---
at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at osu_Sync.Window_Welcome.InitializeComponent()
at osu_Sync.Window_Welcome..ctor()
at osu_Sync.MainWindow.MainWindow_Loaded(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
at System.Windows.Interop.HwndTarget.OnResize()
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
And
SPOILER
System.DllNotFoundException: Unable to load DLL 'dwmapi': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at MahApps.Metro.Native.UnsafeNativeMethods.DwmSetWindowAttribute(IntPtr hwnd, Int32 attr, Int32& attrValue, Int32 attrSize)
at MahApps.Metro.Behaviours.BorderlessWindowBehavior.WindowProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.PublicHooksFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
I tried the latest version of this.
show more
Please sign in to reply.

New reply