|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Open a Text File in Notepad using VB.Net 2005I have what seems to be such a simple thing yet I cannot figure out how
to do it. I am using a streamwriter to build a text file. At the end of the process I want to open that same text file in notepad so the user can see what was built. I cannot for the life of me figure out how to get the text file to open up in notepad on the screen. All the processes I have tried opens the file into the filestream again. *** Sent via Developersdex http://www.developersdex.com *** System.Diagnostics.Process.Start("notepad.exe", "mydocument.txt")
Show quoteHide quote "Chris Johnson" <cjohn***@cskauto.com> wrote in message news:%23aV3ci9RGHA.336@TK2MSFTNGP12.phx.gbl... > > I have what seems to be such a simple thing yet I cannot figure out how > to do it. > > I am using a streamwriter to build a text file. At the end of the > process I want to open that same text file in notepad so the user can > see what was built. > > I cannot for the life of me figure out how to get the text file to open > up in notepad on the screen. All the processes I have tried opens the > file into the filestream again. > > *** Sent via Developersdex http://www.developersdex.com *** > System.Diagnostics.Process.Start("notepad.exe", "mydocument.txt") This is correct and it always opens the file in Notepad. As many of us use different program as default editor, it is better to automatically open the file in associated application. That's even easier: System.Diagnostics.Process.Start("mydocument.txt") -- Peter Macej Helixoft - http://www.vbdocman.com VBdocman - Automatic generator of technical documentation for VB, VB ..NET and ASP .NET code Hi Peter,
This was something that I also wanted to do. I would like to include the program installation path in the file name and tried: System.Diagnostics.Process.Start(Application.StartupPath & "\filename.pdf") But this did not work I have to use: System.Diagnostics.Process.Start("C:\Program Files\Myprograms\Program\filename.pdf") which works OK. Is there a way to include the program path as the program could be installed in a different location? -- Show quoteHide quoteCheers Chas *************** * Spectrum is Green * *************** "Peter Macej" wrote: > > System.Diagnostics.Process.Start("notepad.exe", "mydocument.txt") > > This is correct and it always opens the file in Notepad. As many of us > use different program as default editor, it is better to automatically > open the file in associated application. That's even easier: > > System.Diagnostics.Process.Start("mydocument.txt") > > > -- > Peter Macej > Helixoft - http://www.vbdocman.com > VBdocman - Automatic generator of technical documentation for VB, VB > ..NET and ASP .NET code > "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message Look at the ProcessStartInfo class - its UseShellExecute property allowsnews:431A80AC-03BF-4E52-9FEB-F06A28459105@microsoft.com... > System.Diagnostics.Process.Start(Application.StartupPath & > "\filename.pdf") > > But this did not work ... you to "launch" files just like explorer. Imports SI=System.IO Dim ps as New ProcessStartInfo() With ps .Filename = SI.Path.Combine( Application.StartupPath, "filename.pdf" ) .UseShellEexecute = True End With Dim p as New Process p.StartInfo = ps p.Start() HTH, Phill W. What is the difference between
UseShellExecute=True and UseShellExecute=False? When should each be used? Show quoteHide quote "Phill W." <p-.a-.w-a-r-d@o-p-e-n.a-c.u-k> wrote in message news:dv930r$ins$1@yarrow.open.ac.uk... > > "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message > news:431A80AC-03BF-4E52-9FEB-F06A28459105@microsoft.com... > >> System.Diagnostics.Process.Start(Application.StartupPath & >> "\filename.pdf") >> >> But this did not work ... > > Look at the ProcessStartInfo class - its UseShellExecute property allows > you to "launch" files just like explorer. > > Imports SI=System.IO > > Dim ps as New ProcessStartInfo() > With ps > .Filename = SI.Path.Combine( Application.StartupPath, "filename.pdf" ) > .UseShellEexecute = True > End With > > Dim p as New Process > p.StartInfo = ps > p.Start() > > HTH, > Phill W. > > Hi Phil,
Thanks for the speedy response. I tried the code you suggest but when run it debugs out at p.Start() with the error: -------------------------------------------------------------------------------------- An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in system.dll Additional information: The system cannot find the file specified -------------------------------------------------------------------------------------- I have double checked the code and ensured the Imports is OK. I also tried adding a backslash to the filename "\filename.pdf" but still get the error Any ideas? BTW whats HTH, ? Here's the code I used: Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click 'Open My File.PDF Dim ps As New ProcessStartInfo With ps .FileName = SI.Path.Combine(Application.StartupPath, "\My File.pdf") .UseShellExecute = True End With Dim p As New Process p.StartInfo = ps p.Start() End Sub -- Show quoteHide quoteCheers Chas *************** * Spectrum is Green * *************** "Phill W." wrote: > > "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message > news:431A80AC-03BF-4E52-9FEB-F06A28459105@microsoft.com... > > > System.Diagnostics.Process.Start(Application.StartupPath & > > "\filename.pdf") > > > > But this did not work ... > > Look at the ProcessStartInfo class - its UseShellExecute property allows > you to "launch" files just like explorer. > > Imports SI=System.IO > > Dim ps as New ProcessStartInfo() > With ps > .Filename = SI.Path.Combine( Application.StartupPath, "filename.pdf" ) > .UseShellEexecute = True > End With > > Dim p as New Process > p.StartInfo = ps > p.Start() > > HTH, > Phill W. > > > Are you testing this through the debugger? If so, the StartupPath may
not have the value you expect. I recommend you step through the code and then inspect the value of the ..FileName property and make sure that your file exists in that location. Hi Chris,
Thought that was it as I had only tested the debugger but then i rebuilt the app and installer, installed and tested and got the same error. BTW the line: System.Diagnostics.Process.Start("C:\Program Files\My Programs\Program\read me.pdf") Works just fine in both the debug and install versions so the file must be in the right place. -- Show quoteHide quoteCheers Chas *************** * Spectrum is Green * *************** "Chris Dunaway" wrote: > Are you testing this through the debugger? If so, the StartupPath may > not have the value you expect. > > I recommend you step through the code and then inspect the value of the > ..FileName property and make sure that your file exists in that location. > > And then I saw what I wrote. Of course it will work as it specifies the path.
I checked the debug path and yes the file was not in the BIN folder as specified. I put a copy there, ran it again and still got the error. Would it be anything to do with DOS Filenames or Long filenames or spaces in the file name? -- Show quoteHide quoteCheers Chas *************** * Spectrum is Green * *************** "Chas Large" wrote: > Hi Chris, > Thought that was it as I had only tested the debugger but then i rebuilt the > app and installer, installed and tested and got the same error. > > BTW the line: > > System.Diagnostics.Process.Start("C:\Program Files\My Programs\Program\read > me.pdf") > > Works just fine in both the debug and install versions so the file must be > in the right place. > -- > Cheers > Chas > > *************** > * Spectrum is Green * > *************** > > > "Chris Dunaway" wrote: > > > Are you testing this through the debugger? If so, the StartupPath may > > not have the value you expect. > > > > I recommend you step through the code and then inspect the value of the > > ..FileName property and make sure that your file exists in that location. > > > > Forgot to mention in my previous post, the filename(s) won't make a
difference as long as the pdf file is in the BIN folder where the executing assembly is located. I tried it with spaces, short file names and long file names and it works. Just won't work with reserved characters (which you know). james Show quoteHide quote "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message news:4E959A6D-60E5-468A-A24E-91877D3FD4B4@microsoft.com... > And then I saw what I wrote. Of course it will work as it specifies the > path. > > I checked the debug path and yes the file was not in the BIN folder as > specified. I put a copy there, ran it again and still got the error. > > Would it be anything to do with DOS Filenames or Long filenames or spaces > in > the file name? > -- > Cheers > Chas > > *************** > * Spectrum is Green * > *************** > > > "Chas Large" wrote: > >> Hi Chris, >> Thought that was it as I had only tested the debugger but then i rebuilt >> the >> app and installer, installed and tested and got the same error. >> >> BTW the line: >> >> System.Diagnostics.Process.Start("C:\Program Files\My >> Programs\Program\read >> me.pdf") >> >> Works just fine in both the debug and install versions so the file must >> be >> in the right place. >> -- >> Cheers >> Chas >> >> *************** >> * Spectrum is Green * >> *************** >> >> >> "Chris Dunaway" wrote: >> >> > Are you testing this through the debugger? If so, the StartupPath may >> > not have the value you expect. >> > >> > I recommend you step through the code and then inspect the value of the >> > ..FileName property and make sure that your file exists in that >> > location. >> > >> > Sometimes Application.StartupPath doesn't always return the exact path to
the executing assembly. That is why I use this little function: Private Function mypath() As String Return _ Path.GetDirectoryName([Assembly].GetExecutingAssembly().Location) End Function Here is an example of using it, using your code and mine: mports System.Reflection Imports System.IO Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents Button1 As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(144, 40) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(616, 266) Me.Controls.Add(Me.Button1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub #End Region Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Open My File.PDF Dim ps As New ProcessStartInfo With ps ..FileName = mypath() & ("\Manual.pdf")' name of pdf file located in the Bin Folder in this test app. ..UseShellExecute = True End With Dim p As New Process p.StartInfo = ps p.Start() End Sub Private Function mypath() As String Return _ Path.GetDirectoryName([Assembly].GetExecutingAssembly().Location) End Function End Class The above code works. I changed a couple of things from what you had. james Show quoteHide quote "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message news:D81F5B16-2FC8-4D00-90E2-B20C2035916B@microsoft.com... > Hi Phil, > Thanks for the speedy response. > > I tried the code you suggest but when run it debugs out at > > p.Start() > > with the error: > -------------------------------------------------------------------------------------- > An unhandled exception of type 'System.ComponentModel.Win32Exception' > occurred in system.dll > > Additional information: The system cannot find the file specified > -------------------------------------------------------------------------------------- > > I have double checked the code and ensured the Imports is OK. > > I also tried adding a backslash to the filename "\filename.pdf" but still > get the error > > Any ideas? > > BTW whats HTH, ? > > Here's the code I used: > > Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MenuItem4.Click > 'Open My File.PDF > Dim ps As New ProcessStartInfo > With ps > .FileName = SI.Path.Combine(Application.StartupPath, "\My > File.pdf") > .UseShellExecute = True > End With > Dim p As New Process > p.StartInfo = ps > p.Start() > > > End Sub > > > -- > Cheers > Chas > > *************** > * Spectrum is Green * > *************** > > > "Phill W." wrote: > >> >> "Chas Large" <ChasLa***@discussions.microsoft.com> wrote in message >> news:431A80AC-03BF-4E52-9FEB-F06A28459105@microsoft.com... >> >> > System.Diagnostics.Process.Start(Application.StartupPath & >> > "\filename.pdf") >> > >> > But this did not work ... >> >> Look at the ProcessStartInfo class - its UseShellExecute property allows >> you to "launch" files just like explorer. >> >> Imports SI=System.IO >> >> Dim ps as New ProcessStartInfo() >> With ps >> .Filename = SI.Path.Combine( Application.StartupPath, >> "filename.pdf" ) >> .UseShellEexecute = True >> End With >> >> Dim p as New Process >> p.StartInfo = ps >> p.Start() >> >> HTH, >> Phill W. >> >> >> *** Sent via Developersdex http://www.developersdex.com ***
Hi Chas,
System.Diagnostics.Process.Start(Application.StartupPath & "\filename.pdf") should work in your case. However, remember that during design time, your app runs from projectname\bin folder, thus the Application.StartupPath is this folder (not C:\Program Files\Myprograms\Program\filename.pdf"). So, to test it, you need to put a copy of filename.pdf into the bin folder. Hope this helps. VHD50. Show quoteHide quote "Chas Large" wrote: > Hi Peter, > This was something that I also wanted to do. I would like to include the > program installation path in the file name and tried: > > System.Diagnostics.Process.Start(Application.StartupPath & "\filename.pdf") > > But this did not work I have to use: > > System.Diagnostics.Process.Start("C:\Program > Files\Myprograms\Program\filename.pdf") > > which works OK. > > Is there a way to include the program path as the program could be installed > in a different location? > -- > Cheers > Chas > > *************** > * Spectrum is Green * > *************** > > > "Peter Macej" wrote: > > > > System.Diagnostics.Process.Start("notepad.exe", "mydocument.txt") > > > > This is correct and it always opens the file in Notepad. As many of us > > use different program as default editor, it is better to automatically > > open the file in associated application. That's even easier: > > > > System.Diagnostics.Process.Start("mydocument.txt") > > > > > > -- > > Peter Macej > > Helixoft - http://www.vbdocman.com > > VBdocman - Automatic generator of technical documentation for VB, VB > > ..NET and ASP .NET code > >
I miss loop
length of string Adding Button Programatically - have an answer??? Visual Studio 2003 Menu on form.vb [Help] Reading data from a DLL structure in C Where is ThisWorkbook.Sheets("xx") ?? Unable to resolve 'ThisWorkbook' :: Interop to Excel best way to tell if a date is not assigned? Form Size Visual Basic .NET Resource Kit HTML code in textbox then string |
|||||||||||||||||||||||