It depends on the installer technology. If the app installer is a Windows Installer package, you can use WMI to not only list the apps installed, but to watch when new ones are installed (add an event and hookup code to it). See the System.Mananagement namespace for information. There are also a few articles that talk about the WMI integration with VS.NET on this site, too, though nothing specific to your problem.
Also with Windows installer, each component SHOULD (and often does) have a key path that represents the executable. If you know the component ID (a GUID) you can get its key path.
For other installer technologies, it's specific to the implementation and often times will not be possible. You could also use a FileSystemWatcher but this could be expensive as you'd have to watch a lot of files, or take a snapshot of the system before and after (a system diff), but that's even more expensive.
I want to make a Modeless Dialog box that will pop up and allow processing to continue in the main window. The dialog box is only displaying some information and just needs an OK button that will destroy it. If I use .Show() instead of .ShowDialog() to make it modeless, processing continues, however, the dialog does not redraw and it goes permamently not responding with an hourglass.
What is the proper way to do a modeless dialog box?
I apologize if this has been answered here before but I found nothing browsing through this forum. Through a bit of web search I found an article from a MS Support guy that the control NumericUpDown does not support the XP/System theme by default and you actually have to code your own which ticks me off a bit since I do not have the knowledge to do so. Does anyone want to share either some code example or an url where this is featured, I've searched for days but I have found nada.
Read the Theme API documentation - it's really not too hard to use. Since the topic isn't actually called "Theme API", search for this function and sync your TOC to see the entire topic: OpenThemeData.
I think I saw some here on CP about using this, but never forget google.
See the NotifyIcon component documentation. There are also a few articles on the subject here on the CP site. Your application needs only one static Main method (an application should have only one entry point to execute the application) and use the NotifyIcon to add an icon to the system tray.
Do you know if there is a way to get a message from Windows Explorer when my application is about to drop data into it?
At this point I am calling
when drag is triggered?
The problem is that I have to create a bunch of files and it takes a while, so I'd like to do all that OnDrop instead of OnItemDrag in case the user decides to cancel.
Another problem is that the dataVar needs to be in different formats depending on whether the user is dragging internally or externally (to windows explorer). I have no idea how to do that.
Unfortunately, this is not as easy as is hoped. I was looking for something similar, if not identical, and it's not just a case of droping an object into the windows enviroment.
I've been trying to figure this out for weeks now, and i've had to go an look at COM and IDL to study the interfaces used by objects in unmanaged code to handle streams, before I can even begin to grasp how it would work in managed code.
It's all fun and games if you enjoy going balled through hair tearing though
I'm sure Heath will be able to fill you in far better than I can, but this is just a warning from someone who's stuck on the same thing!
As Cata mentioned, this has all been covered in the past. Search this forum for previous posts. You could also look at Catalysts's profile and see the messages posted. Most of them are related to this problem.
VB.NET and C# (and all other languages that target the CLR for that matter) use the same class libraries and all compile to IL. It's important to understand the Framework technology, not the language! VB.NET isn't that hard (hell, code monkeys have been using it - and coincidentally creating bad apps - in straight VB for years). Just remember that most of the calls are probably just to classes, methods, properties, structs, etc. that are just as accessible in C# as they are in VB.NET.
I have cloned the mainMenu to the context Menu. If I set the .Enabled or .Disabled in the form load event. These feature works properly. But If I minimize the form to use the contextMenu, the mnHide menuItem is not Hidden. If I click on Hide when the form is hidded, this causes the form to be squeezed to just the min, max and close buttons, when I do finaly hit the Show button.
Right now my issue is getting the mnHide button to hide, but this isn't working? Is there another way to hide the cloned context menu items ?
Wherever you cloned your menus, those mnShowClone and mnHideClone menus have to be accessible, i.e. if you declare them inside a method they will not be available inside another method. Instead, add them as class fields (just like mnShow and mnHide) and assign them if they haven't been assigned already (as part of initialization code or something).
Unbelievably, as easy as this may be, for myself it is still not working.
private void InitializeComponent()
... excess code removed
MenuItem mnShowClone = this.mnShow.CloneMenu();
MenuItem mnHideClone = this.mnHide.CloneMenu();
// MenuItem mnShowClone = this.mnShow.CloneMenu();
// MenuItem mnHideClone = this.mnHide.CloneMenu();
this.contextMenu1.Popup += new System.EventHandler(this.contextMenu1_Popup);
This will be possible in either .NET 2.0 or Longhorn (no sure exactly which since release details are still sketchy) with Console.Clear, but for now you have to rely on other ways. One article here on CP presents such a way: http://www.codeproject.com/csharp/winconsole.asp[^].