none
VB 2008 刪除word軟體問題 RRS feed

  • 問題

  • 請教各位大大:

          小弟利用以下指令分別開啟兩個word檔案, 開啟後利用myProcess1.kill()或myProcess2.kill()來關閉其中一個檔案時時卻發現兩個word檔同時關閉, 請問問題為何? 該如何改寫方能關閉其中之一檔案而不影響其他開啟的word檔? 謝謝. 

        Dim myProcess1 As Process 
        Dim myProcess2 As Process

            Try
                myProcess1 = Process.Start("1.doc") '開檔
            Catch ex As Exception
                Console.WriteLine(ex.StackTrace.ToString)
            End Try

            Try
                myProcess2 = Process.Start("2.doc") '開檔
            Catch ex As Exception
                Console.WriteLine(ex.StackTrace.ToString)
            End Try

    2011年6月6日 上午 07:45

解答

  • 您好

    1. 您的 Office 版本是什麼? 請確認您開啟兩個 Word 檔案時,在 [工作管理員] / [處理程序] 中,出現幾個 WINWORD.exe

    2. 您刪除 Process 的部分怎麼寫的,參考以下程式碼看看

    Public Class Form1
      Dim myProcess1 As Process
      Dim myProcess2 As Process
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
          myProcess1 = Process.Start("1.doc") '開檔
        Catch ex As Exception
          Console.WriteLine(ex.StackTrace.ToString)
        End Try
    
        Try
          myProcess2 = Process.Start("2.doc") '開檔
        Catch ex As Exception
          Console.WriteLine(ex.StackTrace.ToString)
        End Try
      End Sub
    
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        myProcess1.Kill()
      End Sub
    
      Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        myProcess2.Kill()
      End Sub
    End Class
    
    

     


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年6月7日 上午 02:04
    版主
  • 要更安全的操控 Word ,請用 Automation ,在隔壁 Office 開發版討論。

    ex.

    Dim wdApp As Object = CreateObject("Word.Application")
    Dim wdDoc As Object = wdApp.Open(xxx)
    wdDoc.Close xxx
    wdApp.Quit xxx
    


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年6月7日 下午 02:57

所有回覆

  • 您好

    1. 您的 Office 版本是什麼? 請確認您開啟兩個 Word 檔案時,在 [工作管理員] / [處理程序] 中,出現幾個 WINWORD.exe

    2. 您刪除 Process 的部分怎麼寫的,參考以下程式碼看看

    Public Class Form1
      Dim myProcess1 As Process
      Dim myProcess2 As Process
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
          myProcess1 = Process.Start("1.doc") '開檔
        Catch ex As Exception
          Console.WriteLine(ex.StackTrace.ToString)
        End Try
    
        Try
          myProcess2 = Process.Start("2.doc") '開檔
        Catch ex As Exception
          Console.WriteLine(ex.StackTrace.ToString)
        End Try
      End Sub
    
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        myProcess1.Kill()
      End Sub
    
      Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        myProcess2.Kill()
      End Sub
    End Class
    
    

     


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年6月7日 上午 02:04
    版主
  • http://social.msdn.microsoft.com/Search/zh-TW/?Refinement=112&query=WM_CLOSE
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年6月7日 下午 02:55
  • 要更安全的操控 Word ,請用 Automation ,在隔壁 Office 開發版討論。

    ex.

    Dim wdApp As Object = CreateObject("Word.Application")
    Dim wdDoc As Object = wdApp.Open(xxx)
    wdDoc.Close xxx
    wdApp.Quit xxx
    


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年6月7日 下午 02:57
  • 謝謝小歐ou與心冷熱情熄兩位大大的答覆. 我的程式就如同小歐ou大大所寫的一樣, 這樣的方式在office 2007上會產生我所敘述的問題. 基本上我懷疑word是否使用thread的方式來開啟多個檔案, 目前我先朝改用object的方式來寫程式看看是否能解決我的問題.
    2011年6月7日 下午 04:30