Closing A Windows Forms Applications And Excel.exe Processes Interact (potentially Through The Garbage Collector)?
Mar 2, 2012
I may be the only person still automating excel this way and I am looking at doing it in ways that better handle COM objects and such, but for now I just importMicrosoft.Office.Interop.Excel and go for it. Something that gave me a lot of grief at first was hanging excel.exe processes, but there are tons of resources online for fixing that. At this point I am pretty confident in my abilities to handle it.One thing I did notice and was wondering about is how does closing a windows forms application interact with excel.exe running in the background and likely more specifically the garbage collector. I have written quite a few excel automation projects and noticed that after I run my program .exe and it has completed there is an excel.exe process that hangs on until I close the pop up window from the windows forms application. Why is that happening?
I've heard that the c# garbage collector can be 'more aggressive' than it's vb.net counterpart. Is this true? Are there any other differences in how garbage collection is run in vb.net vs. c#?
with VB.NET + MySQL i am having a connection object which is public public MYcnn as MySql.Data.MySqlClient.MySqlConnection when my main form opens MYcnn will open & will be available for all the procedures & functions. i never close this connection until the last form of the application closes (yes of course i compromise of some security + performance issues)
my problems is(1)when & how the garbage collector works to collect my connection object if my connection object remains open for > then certain time(2) how to offer or fix the time of my connection object availableness to garbage collector (3) i would like to write an event for the connection object closed event(i am explicitly declaring the connection object)
I have a problem with an application, in this case I have a windows services. its function is generate reports depending of demand of our users.In some cases the memory usage of my windows services is to 2 gb of RAM. I disposed all objects that my application use . but the memory usage doesn't low.I tried to reduce the memory usage forcing to garbage collector to Collect with the method "GC.Collect"but it's not recommend because uses many time of CPU.Surfing on the internet I found a method named "SetProcessWorkingSetSize" that free memory usage correctly. http:[url]....but some cases my windows services named sapdkadm_procesoestandarejecucion.exe has some error message in event viewer is the next:
Faulting application sapdkadm_procesoestandarejecucion.exe, version 1.0.0.0, stamp 4f908fef, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51cdd, debug? 0, fault address 0x0000000000027ded.
The real problem is that when this happens my windows services restart
I have prided myself in having a pretty clean code however in the game I am making I have a player view (showscreen) and a host view, which is a copy of the player view (on a smaller screen). This way the host can see what's going on.The problem is that the graphic doesn't dispose properly and Garbage Collector gets it, though I have noticed it will crash if GC doesn't get it in time. The larger the showscreen window the more junk gets put into memory, which sucks.I thought I had everything correctly disposed below but still doesn't get the job done.
I have created a program that when a user registers, it sends an email to that user, and three of my email addresses. The problem is that while it is sending, the window is un-usable and "does not respond" and the icon changes to the white box thing when you click on it. is there a way that i can run this process behind the program, so the window is still usable, but it still sends the emails?
So I'm creating an application that will notify a person of something when I send a command. I've been thinking of just using a TCP connection to do it but there must be an easier way.
I'm running into some strange exceptions coming from a few workstations that are running one of our Windows Forms Applications. The application is written for .NET Framework 2.0 and coded in VB.NET. We've re-imaged the machines a couple of time but not matter what we do, the same problem occurs. We are not seeing this problem with any other machines besides these two. Below is the exception message and the Stack Trace. Can anyone provide any insight as to why this may be happening?
I need to assign code to a button, that when clicked on, validates an ISBN code, and displays a message that it is either Valid or Invalid. I basically need help transforming code used in a console application that will now be used in a windows form application, so no more writeline stuff, now message boxes. [code]
I have some friends who are 'old-school' VB6 database developers and I was telling them about .NET and its features, specifically ADO.NET. In our conversation, they brought up the following reasons why they would rather stick with ADO than move to ADO.NET: The Dataset is disconnected (What if power fails?)
The same amount of code still has to be written The new options of Dataset, BindingSource and TableAdapter seem confusing the same code is written programatically access the Database, all that changes is how that command is laid out. Why ADO.NET is 'better' than ADO with regards to data access when it comes to Windows Forms applications. What does ADO.NET provide that ADO does not? What does it do better than ADO? I'd like examples that do not involve LINQ.
i would like to scan all the processes(aplications) running in a system before starting my program. and also need to close some programs before starting my program.how to read all the processes ruining in a system one by one.
I have an Excel file that downloads automatically, but for some reason the binary XLS file contains some garbage HTML text at the end of it.
When opening the file in the Excel application, it shows a warning but proceeding will automatically remove the garbage HTML text.
However, I need to open the file programmatically. When doing so via
Dim wb As Workbook = Excel.Workbooks.Open(ExcelFileName)
It throws:
Exception from HRESULT: 0x800A03EC
a) Get Excel to perform a similar action as if I manually opened it and remove the garbage HTML automatically. NOTE: Tried setting the XlCorruptLoad.xlRepairFile parameter and it didn't work.
OR b) Remove the garbage text from the XLS binary file (FileStream?) and resave it before attempting to open the file with the code mentioned above.
The garbage html always comes at the very end of the file and starts with
Form1 is a mdi container. It has a bunch of forms that can load inside of it as mdi children. If I close each open form inside the form1, and then click the red X at the top right, application exits fine.If I click the red X without closing the forms inside I get: An unhandled exception of type 'System.CannotUnloadAppDomainException' occurred in mscorlib.dll
Additional information: Error while unloading appdomain. (Exception from HRESULT: 0x80131015) However I can break from it. How do I get the application to not show that error? What must I do to fix those inside forms or close when the red x is clicked?
Dim frm As Form For Each frm In Forms Set frm = Nothing Next frm
The above code is what I used in VB6 to close all forms associated with my programs before my program closed. I have been searching for information on how to make sure all forms are closed when closing a VB2008 program.
I have seen info on using the Project Property Shutdown mode When startup form closes and I currently have this set.
Is this all that is really necessary? Will the garbage disposal close everything else to free up RAM?
Also, if I have several forms open and want to close all from the main form without closing each one individually, what is the best approach? Is there a collection like in VB6, go through the collection, compare it to the name of the main form and close it if it is not the main form?
I need to get a button to enter the applications subfolder and randomly select 1 file to be played in the windows media player COM which i have put in the form. I have tried creating a shuffling playlist but i cant get it to stop after one file is played (it just goes on shuffeling to another file, and i really do not want a playlist). I manage to create a batch file to be started to randomly pick a file in that folder, but when i do this the file is being played in the systems default player..
Im not understanding something or I am missing something.I can't use: "Imports Microsoft.Office.Interop" as it is not recognized.How do I interact with an Excel file? None of the examples I have viewed have been able to work.I opened one VBform (only the form) by ".paul." (in his sig) but could not get it to convert to 2010 and although I was able to get his code loaded I could not use any of it.The strange part is in his module there were no errors, import (copy and paste) any of it to my project and everything had errors.I believe .pauls.'s example was:"Imports excel=Microsoft. Office. Interop" which was not being accepted in my project.
Have a Windows app that needs to interact with a stand alone program that is accessed using cmd.exe. From Windows app, I can execute cmd.exe but cannot interact with it. Tried SendKeys, but this only sends one key at a time (sometimes more, but inconsistent) with multiple cmd.exe windows opening. Need to be able to send a whole command (string) to only one cmd.exe window.
I'm Writing a program for my VET IT class at school, so other IT students dont ruin computers we have set up. the program is working great, with only one problem. the program carries out its task, even during debugging (Although it shows an error.) the problem is with windows. in order to stop users from pressing the windows key, the program turns of windows explorer when run, and turns it back off afterwards. before doing this, windows asks for permission. does anyone know how to use visual basic to automatically interact with this messagebox?i have uploaded a video showing my program in action and the problem. (Will Comment With the video when it is done oploading 108 minutes remaining...)here is my code
<REMOVED MALICIOUS CODE>
Below is an image of the error message i receive in visual studio, and when running the .EXE from the [attachment=25889:Untitled1.jpg
how do i automatically lcick continue on this error box, because my program runs fine when continue is clicked...
This part of visual basic is new to me. How can i make multiple forms that each operate on different computers but can interact with each other and influence each other over the internet?
I'm trying to write an application in VB 2010 that will allow me to send out stop and start commands for two services. I can get this to work in a batch file but not in VB, using either NET STOP and NET START and also using SC.exe Stop and SC.exe Start. But I don't seem to get anywhere if I try to use this in VB. So far this is what I have written, using the Print Spooler service as an example. The two services I actually want to stop and restart are the Server and Client services for efpos terminals that are attached to the computers. The service fails from time to time and I want to provide a solution for our users that is quick and easy for them to use, and most importantly doesn't require them to restart the computer, while they have a line up of people waiting to pay.
Code: Private Sub SpoolerStop() ' Stops the spooler service Dim StopSpooler = "C:windowssystem32sc.exe stop spooler" End Sub No matter what search terms I try in Google I get very little on using VB to interact with Windows Services.
When it comes to threading. I've managed to adapt one of JMcIllhinney's backgroundworker codebank examples to somewhat suit my needs, but not completely. I have a main form, and a second form that appears while I'm running through a for loop. It informs the user what is currently happening. I set up a backgroundworker that allowed me to continue to use the main form during the for loop, but the other "status" form was completely frozen, and any labels or graphics were shown as white boxes. I am struggling to figure out how to be able to move/interact with both forms while the loop is running.
I've seen loads of programs that use an icon in the system tray to let you interact with a windows service that is running on your machine but I am curious as to how this works. As I understand it, unless a service marks itself as 'interactive' then it has no way to communicate with the user's desktop and doing so is discouraged by MS (and even causes an alternate desktop to appear temporarily in Server 2008 in some cases). So I want to try and avoid doing this but I cant think how else I would do it, and even if I marked my service as interactive I'm not too sure how I could actually get it to show a notification icon in the system tray.
I assume I would have to use Windows APIs, unless just using the windows forms NotifyIcon class would work. I considered just having the system tray icon in a totally separate application that just communicates with the service via named pipes or TCP etc but I'm pretty sure this isnt how other programs do it because with most of them if you just kill the process that the service is running in then the icon disappears so it must actually be directly running from the service.
I'm using SHDocVw.InternetExplorerClass to scrape a webpage. It works fine in XP, but when I try to run it in windows 7 I get an error:The interface is unknown. (Exception from HRESULT: 0x800706B5)
When I run visual studio in administrator mode it works fine, but the published application has to be run in administrator mode too, which isn't acceptable.
Is there any way to get around running the application in administrator mode?
I'm showing an excel file in a WebBrowser control on my form, but it doesn't show any toolbars. The customers wants the ability to make changes in the control and save them, hence the need to show the standard toolbars.
I've tried many different things including:
For Each cb As CommandBar In xlApp.CommandBars cb.Visible = True Next 'and
[Code]....
how I can get toolbars to show in the WebBrowser control?
I have googled high and low to find an answer to this but I must be searching wrong.I have an application which has a listview displaying some items that are stored in a SQL Compact database. I am using a second form to add new items to this list directly into the database.When the second form closes I want to call the sub in my first form to refresh the list from the database.
How can I get it to fire the form1 sub routine on the close event of form2