none
請問VB基本問題 RRS feed

解答

所有回覆

  • 您好

    1. 請問錯誤是什麼,錯誤在哪一行?,您給的連結,沒辦法直接貼到你的程式中,需經過整理

    2. 其中 BindToRunningProcesses() 內 [Get all instances of Notepad running on the specifiec] 註解下的,您必須要去判斷哪些是符合您需求的

    Imports System.Diagnostics
    
    '/ <summary>
    '/ Shell for the sample.
    '/ </summary>
    Class MyProcess
      Sub BindToRunningProcesses()
        ' Get the current process.
        Dim currentProcess As Process = Process.GetCurrentProcess()
    
    
        ' Get all instances of Notepad running on the local
        ' computer.
        Dim localByName As Process() = Process.GetProcessesByName("notepad")
    
    
        ' Get all instances of Notepad running on the specifiec
        ' computer.
        ' 1. Using the computer alias (do not precede with "\\").
        Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")
    
        ' 2. Using an IP address to specify the machineName parameter. 
        Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")
    
    
        ' Get all processes running on the local computer.
        Dim localAll As Process() = Process.GetProcesses()
    
    
        ' Get all processes running on the remote computer.
        Dim remoteAll As Process() = Process.GetProcesses("myComputer")
    
    
        ' Get a process on the local computer, using the process id.
        Dim localById As Process = Process.GetProcessById(1234)
    
    
        ' Get a process on a remote computer, using the process id.
        Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
      End Sub 'BindToRunningProcesses
    End Class
    
    Module Module1
      Sub Main()
        Dim myProcess As New MyProcess()
        myProcess.BindToRunningProcesses()
      End Sub
    End Module
    
    

     


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年6月30日 上午 12:47
    版主
  • 感謝小歐大的回覆!!

    基本功太弱,小弟只想要測試MSDN上給的範例,因為想要用得到GetProcessById,來關閉指定的Process。

    小歐大,小弟不知道該怎麼SHOW!!

    已經知道另開一個TestCls.vb,將namespace傳貼上去。 

     

    至於宣告,該怎麼放置呢???

    錯誤信息都是基本的錯誤

    1 命名空間中的陳述式無效。 C:\Users\percy\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 5 1 WindowsApplication1

    錯誤 2 陳述式不可以在方法主體中出現。已假設是方法結尾。 C:\Users\percy\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 11 1 WindowsApplication1

    有看沒有懂

    '声明

    Public Shared Function GetCurrentProcess As Process
    Public Class Form1
    End Class

    謝謝
    2011年6月30日 上午 01:45
  • 您好

    從您的描述,沒辦法知道你是怎麼貼程式碼,您是否對 VB 不熟悉?

    請參考

    Process.GetProcessById 方法 (Int32)

    http://msdn.microsoft.com/zh-tw/library/76fkb36k(v=vs.80).aspx

    Process.Kill 方法

    http://msdn.microsoft.com/zh-tw/library/system.diagnostics.process.kill.aspx

     

    拉一個 Button,在 Button Click 事件中

    Dim localById As Process = Process.GetProcessById(你的程式處理序ID)

    localById.Kill()


    歡迎參觀我的Blog.NET菜鳥自救會


    • 已標示為解答 percy682 2011年6月30日 上午 06:06
    2011年6月30日 上午 02:05
    版主
  • Hi,

    你的GetCurrentProcess方法要放在class區塊內

    Public Shared Function GetCurrentProcess As Process

    Public Class Form1
    End Class

    改為
    Public Class Form1

    Public Shared Function GetCurrentProcess() As Process

     

    ... end Function

      

    End Class

     


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年6月30日 上午 05:08
  • Dear 小歐大

    '声明
    
    Public Shared Function GetCurrentProcess As Process

    要怎麼使用。


    底下這個我已經知道要怎麼使用了,謝謝小歐大的指點。至於上面聲明應該要放在哪呢??

    我開啟一個windows應用程式

    Public Class Form1
    
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
        Dim myProcess As New MyProcess()
        myProcess.BindToRunningProcesses()
    
      End Sub
      Class MyProcess
    
        Sub BindToRunningProcesses()
          ' Get the current process.
          Dim currentProcess As Process = Process.GetCurrentProcess()
    
    
          ' Get all instances of Notepad running on the local
          ' computer.
          Dim localByName As Process() = Process.GetProcessesByName("notepad")
    
    
          ' Get all instances of Notepad running on the specifiec
          ' computer.
          ' 1. Using the computer alias (do not precede with "\\").
          Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")
    
          ' 2. Using an IP address to specify the machineName parameter. 
          Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")
    
    
          ' Get all processes running on the local computer.
          Dim localAll As Process() = Process.GetProcesses()
    
    
          ' Get all processes running on the remote computer.
          Dim remoteAll As Process() = Process.GetProcesses("myComputer")
    
    
          ' Get a process on the local computer, using the process id.
          Dim localById As Process = Process.GetProcessById(1234)
    
    
          ' Get a process on a remote computer, using the process id.
          Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
        End Sub 'BindToRunningProcesses
    
      End Class 'MyProcess
    End Class
    

    2011年6月30日 上午 05:12
  • Hi,

    再看了一下

    你把函式原型的宣告放至程式碼中了

    你要用的應該是像範例一樣透過Process.GetCurrentProcess()去取得當前的Process

     Dim currentProcess As Process = Process.GetCurrentProcess()


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年6月30日 上午 05:16
  • Dear 蹂躪大

    您說的我了,我想是我太笨了。

    每次看MSDN都看不太懂,不太會用。明知MSDN是寶典,但卻不知道如何用寶典練功。

    小弟不懂的是,為何

    '声明

     Public Shared Function GetCurrentProcess As Process

     

    這聲名另闢一個 class.vb,寫在裏頭,就像蹂躪大說的

    需要寫成,但寫完裡頭是要做什用呢???GetCurrentProcess這不是內建函示嗎?MSDN寫說要聲明!!

    Public Shared Function Public Shared Function GetCurrentProcess As ProcessAs Process

    end Function

     

    拍謝,問了愚蠢問題,請見諒!!!

    2011年6月30日 上午 05:32
  • Hi,

    函式原型不是要你自行造個類別撰寫這個方法

    他是內建的方法

    只要你組件參考正確、命名空間正確

    就可以透過該類別使用

    函式原型的用意只是告知他在BCL內的宣告是長甚麼樣子


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 percy682 2011年6月30日 上午 06:05
    2011年6月30日 上午 05:40