Launching Executable File With Process Component In 2008?
Sep 16, 2010
i am trying to open an external executable file during runtime using a process component and the process.start() method. I've been testing out my code with various executable files on my C: drive....some work and some do not work. I've been able to successfully open Adobe Acrobat, Microsoft Excel, and Notepad; however, when I try opening various other executables the following exception gets thrown:
A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
I cannot figure out why some programs open just fine while others cause the above exception to be thrown.
I am working on a small VB application that listens for commands sent from an Android app.
One of the functions is to extract an archive. I am familiar with how to listen for the unrar process to finish, so I can display a progressdialog on the phone while the extraction is happening, and clear it as soon as it's done.
BUT ... if there is an error/alert from WinRAR, WaitForExit() never gets called because WinRAR is still sitting there open until I click "OK" on the MsgBox.
For Example ... if you try to extract a file that is not actually an archive... an alert will pop up saying "No Archives Found", and basically everything is halted on the VB app and the Android app, and the Android app just sits on a progressdialog saying "extracting..." until you manually hit "OK" on the computer.
As you can imagine, this is a problem if the whole point of your app is to NOT have to go over to the computer.
So... I am wondering if there is something similar to WaitForExit() that will wait for an error and allow me to close out the alert and let the process end.
Here's my Sub for the UnRar command:
Private Sub UnRar(ByVal WorkingDirectory As String, ByVal filepath As String) Dim objRegKey As RegistryKey objRegKey = Registry.ClassesRoot.OpenSubKey("WinRARShellOpenCommand")
I am trying to write a Windows Script that will allow me to monitor the following: That 2 x seperate but specific processes within Component Services "Running Processes" list are currently running and have not reset within the past hour. If I already know the PID, then I can retrieve the CreationDate (I assume which I can use to check for restarts? or is this the actual process creation/installation date) for each specific process, however if a restart occurs the PID will change and my script needs to know what the new PID is without me telling it!
Well I just want to make a button that will run the path that is in the textbox I started to add a textbox and a browsing button and than when the path is selected it change the textbox.text to the path name..
Code: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[Code]....
So Yea I just want to make my other button launch the textbox1.text path and open the process...I dont know if I need to sue shell comand but I tryed many thing and did not get anything working
We have an application that self-updates using a Laucher.exe process which copies down new App.exe and DLLs from a server then runs them in a separate process. This was all working very well until the arrival of the Windows 7 taskbar... Problem is in Windows 7, if the user pins the Launcher.exe to the task bar (by right-clicking the shortcut to Launcher.exe) then this happens... When you start the program the "pinned" taskbar icon momentarily gets focus while the launcher is running but then a totally separate new icon appears when App.exe is running. If the user then decides to right click the icon from the running App.exe and pin that to the taskbar, they bypass the application update part of the process.
I would like to launch a command line exe I created. For now it's a test program that writes Hello World to the console. I can launch it, but the shell window it displays it in only stays for a split second.
I know I can add a line to my console mode program (readline). But I would like to control it from the process launch. I will be using console mode programs that I did not write myself, and many of them don't stall the output. I can't find the right properties and methods to control the default shell behavior!
I'm using VB.Net to launch multiple command line window (same exe file) through Process.StartInfo. I would like to have those windows running at background without hanging main UI thread that launch them and at the same time able to get the output of those external window to show progress at progress bar.Here is a summary of what I'm trying to achieve but need further advise which way is feasible
- launch multiple exe command through Process.StartInfo
- don't want the external exe to hang my main UI thread
- need to get feedback from external exe to update progress bar which is placed at main UI thread
I have a program that outputs a file. I want the user to be able to just double-click the output file and launch the program, just like Word and Excel. In Word for instance, one doesn't necessarily have to open WORD then click on File--> Open and locate another Word doc. He can just go to the folder and open the Word doc. I want to implement the exact scenario in my program.
So far I have tried creating TextFile and added it to the Resources. On FormLoading, I simply I stream-read the Resouce file, but I can't write to the Resource on FormClosing, since the Resource is ReadOnly. Also, the Resource is built & compiled so I suppose you can't add anything to it at run time.How you lunch an output file without launching the Executable program that created it?
I am trying to set up an application process to run an executable, which I include in the project's installation directory, and pass it the necessary parameters; however, I am running into issues as it doesn't appear to be doing anything at all.
Here is what I have:
I define the Process As
Private WithEvents conversionProc As New System.Diagnostics.Process Then I setup the arugments and the process start info as follows: Dim ogrDirectory As String
What i need exactly is to make a program that have a button called "browse" , when the user clicks it , it prompts the explorer and let the user choose a .exe file, then theres another button called "merge", when the user clicks it, i want the file that was already selected to be merged with one that will be already on my project, and the result would be a single executable file, that will open the 2 .exe files when running it. Obviously i could do all the steps, but im stuck on the file merging part.
When a project has been published the file that is put in my start menu is an application reference. How do i get hold of the actual executable file so i can post a demo?
I want to launch a java executable (let's call it MyApp.jar) from .Net using System.Diagnostics.Process.Start. What's the syntax in VB.Net? The command line syntax is this (if I recall it correctly - because i tried it a few days ago and it worked).
Am writing a graphics program which will develop components and save them to files for later retrieval.Cant Figure out how to save the color component of the graphics to the file.The File seems to accept only string items and I have not been able to figure out how to convert the color string back to a color object.
My name is Stefan and i would like to know how can my app see that it was started up on a file-associated DoubleClick?I know how to associate the files using the "Registry" method and the "Publish" method.
Im currently developing a custom logging component, that we will deploy with all our applications, windows services, webapps, windows apps etc. I have a few questions of various nature. The component is a single signed dll file:
1) Which is the "safest" way to get the current directory? For example, in the config file, in the config section I have a property "logpath". The application will read this and write a log file depending in what they write:
c:myapplog (it will write a log here, create whatever folders it need) /Log (directly under the installed app directory, like c:program filesmyappLog) Log (same as above) I need something that work with both windows and web apps, for webapps it will log under the virtual directory of the aspnet app.
2) For exception handling, if nothing special is happening, like in the DAL, I get a sql server exception, is there any point in using
Within my application we store objects i.e images,word docs, etc etc. These are stored in a listview and when the user double clicks the item it launches the default application assigned to the file type i.e a bmp will launch paint, doc will launch word etc etc.
Everything works great in all versions of windows except the new Windows 7 where i am getting this error message:
Im guessing this is something to do with permissions etc, but can anybody shed more light on this and where to look?
Im trying to launch a program from any computer by using Application.StartupPath & "firefox.exe", but i cat get it to open , heres what im using atm.[code]I dont wanna use the full path names as they may be different on other computers, i know Firefox and IE etc will be the same , but im loooking to open any program regardless of its location.
I am trying to knock out a tiny program very very quickly as I need it for tomorrow and doing so prob made a mistake but can't see it myself.I need to run multiple batch scripts (one at a time) but wait for them to finish before continuing (would be better if the command window was shown during execution)[code]
I have an executable that I was able to get working on all XP machines by registering all the .dll's associated with it.On Vista, however, I go through the exact same registration process but right when I open the executable it goes to a "WindowsApplication1 has stopped working" dialog. I registered the DLLs in the SysWOW64 folder. I also ran Dependency Walker which came up with IEFrame.dll as flagged, don't know if that is relevant though.
This started happening randomly yesterday. When I press F5 to test my project, an old build of the program (circa yesterday afternoon) launches. No changes (and I've tried in a few different files) are reflected in the project. However, and this is truly perplexing, if I go to Build --> Build from the Menu bar, the output .exe in the /bin/release/ directory DOES include all the recent changes.
I have a very weird problem. In the constructor of my class, I create a new directory if it doesn't exist. After that the method Debug is being called from another class. But then it gives a error that the file is being used.When the directory already exists, I don't get this error when calling the method Debug.
This the
Public Class Backup Private oWrite As System.IO.StreamWriter
[code]....
edit: It get the same error if the directory exists but the files don't. So I guess I am forgetting a important step during those if statements.
below is my procedure (the important parts).Simply, it creates a file with the client's ID number and today's date number if no file exists (and in this case, we are creating a new file).Then, it loops through all files in the folder (in this case there will only be the one we just created), and opens the files and imports the data (since we just created the file, it will be empty). In other scenarios, there could be 3 files out there in the folder with 10 records each. This procedure would open these files and import their data.The problem I am running into is when there is NO files in the folder, so it creates one. Then when it gets down to reading the files, it finds the file just added, but throws an IOException: "The process cannot access the file "C:20200_8.bocx because it is being used by another process.It happens on the line USING SR AS NEW STREAMREADER(F.FULLNAME).So I'm sure the problem is that the new file that is being created is still open. How would I go about closing it?Right now the remedy is to let the program crash, then restart and it will load just fine.
vb.net If p_CurScanFile Is Nothing Then 'If there is no scan file, create one Dim NewFile As String
When I load my solution and compile it after first starting the IDE, everything works as expected. After changing source and recompiling, I get the following compile error:
Error 11 Unable to copy file "objDebugCAMDRS.Library.dll" to "binCAMDRS.Library.dll". The process cannot access the file 'binCAMDRS.Library.dll' because it is being used by another process. CAMDRS.Library.
After closing Visual Studio 2005 and reopening the solution I can compile again successfully. This is an old solution that has been fine for a long time. I just recently changed computers and reinstalled everything.I am running win XP Pro sp2, Visual Studio 2005 sp1.
My program writes to a .txt file (and this is the ONLY program that writes to it) in a thread (with lowest priority), but every now and then it gets an error "The process cannot access the file because another process has locked a portion of the file" when it executes this code: swLog.WriteLine(sPacket).Other program reads from the file, not write to it, why do I get this error, and how can I get around it, or what shall I do when I get this error since I can't write to the file ?
I've got an import program that reads csv files and imports the data to a sql server database. After the import I call a send email procedure which takes some arguments including the two files and adds them as attachments to a mail message, then sends the email:
I'm trying to open any file using Process.Start, but every time I try to open a file that isn't an executable the program crashes... This is the code I'm currently using:
vb.net Private Sub ListView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick For Each lvi As ListViewItem In ListView1.SelectedItems Process.Start(path & "" & lvi.Text) Next End Sub
Path is a string that contains the selected folder path, and lvi is the text of the list view item (each item contains the icon and name of each file). It is working fine for .exe files, I was just wondering if it's JUST for .exe files...