2013-12-08 78 views
-2

是否可能通過單擊或雙擊檢測應用程序是否已啓動? (請注意,用戶可以在Windows鼠標配置控制面板中設置一個選項,以僅通過一次左鍵單擊打開文件,而不是兩次點擊)。通過鼠標點擊檢測應用程序是否啓動?

我想限制如果通過單擊啓動的應用程序的執行,但我不知道如何來檢測這樣現在我評價一個像這樣的隨機參數:

Private Shadows Sub Startup() Handles MyBase.Startup 

    Dim Arg As String = My.Application.CommandLineArgs.FirstOrDefault 

    If String.IsNullOrEmpty(Arg) _ 
    OrElse Not Arg.Equals("ForceRun", StringComparison.InvariantCultureIgnoreCase) Then 

     End 

    End If 

End Sub 

因此,與我想要的僞代碼應該是這樣的修改:

Partial Friend Class MyApplication 

    Private Shadows Sub Startup() Handles MyBase.Startup 

     If AppIsLaunchedFromMouse Then End 

    End Sub 

    Private Function AppIsLaunchedFromMouse() As Boolean 
     Return... 
    End Function 

End Class 
+1

我的理論是,如果可能的話,這將不是一件容易的事情,因爲雙擊/單擊事件在那個時候被windows shell解釋。 shell會依次查找它的編程內容,然後查找註冊表中的文件類型並適當地執行它。您可以在註冊表中定義文件類型的默認參數(或使用assoc/ftype),或者可以創建具有默認參數的鏈接。但是,afaik shell並沒有通知程序正在執行它是否被鼠標單擊/雙擊或鍵盤事件提示。 – MrPaulch

回答

2

我會MrPaulch同意,這並不容易。如果你想區分啓動程序的用戶和您從另一個程序啓動程序,您可以使用只有您知道的特殊命令行參數。如果程序沒有以這個參數開始,那麼它意味着它是通過除了你自己處理的其他方式完成的。 不過,我不知道這是不是你想要的。