2015-05-15 38 views
0

在Windows操作系統中有沒有一種方法可以檢測您的程序是否已經從.bat或.lnk文件啓動並獲取完整路徑?從已啓動的程序路徑獲取啓動它的.lnk文件

我知道我可以得到父進程,但是如何檢測...缺少更好的術語讓我們將其命名爲'方式'...程序已經啓動的方式?

UPDATE

可能是惡意軟件修改了.lnk文件(添加廣告的PARAMS)指着我的應用程序。它也從.bat啓動我的應用程序。我想檢查.lnk文件的散列,如果它已經從.bat啓動,就退出。

Regards,

+0

你的問題還不清楚。你想從你的代碼中完成這些工作,或者只是從操作系統中完成這些工作?如果它是前者,那麼[編輯]包含它併爲你正在使用的編程語言添加一個標籤,這樣你就可以得到答案。如果是後者,請嘗試[su],因爲這是一個通用的操作系統使用問題,而不是編程問題。 –

+0

@Ken編程語言????你是認真的嗎?它可以是C++或C#或Delphi,無論如何...如果問題可以解決(我強烈懷疑它),很明顯你應該通過WinAPI,我猜,殼牌API。這不是superuser.com,它是一個軟件開發人員的網站,當然,我想以編程方式進行。是的,我認爲用'編程'標記標記所有問題是個不錯的主意。 – noober

+0

請不要在這裏的人SHOUT。我問是因爲它很重要,無論是提交代碼還是澄清問題都是編程相關的(因此這裏是主題)。這也很重要,因爲我的代碼完全適用於從鏈接文件開始的代碼,並且我希望確保它能夠爲我發佈好的代碼。然而,在態度之後,我不確定我是否想要幫助你;我真的不喜歡因爲要求簡單的澄清而受到攻擊。祝你好運,但。我會確保我注意到你在將來也不希望得到我的幫助。 –

回答

1

該程序是如何開始的?它是服務還是啓動時運行? 如果你殺了程序,你能重新啓動它嗎?

我會使用Processs Monitor三角形啓動應用程序的內容。

進程監視器記錄機器正在執行的所有操作。您可以將所有噪音濾除爲.lnk,.bat和/或您的特定程序。

  1. 殺程序
  2. 啓動進程監視器(應用過濾器)
  3. 啓動程序
  4. 停止進程的程序名稱監視
  5. 搜索過程監控日誌
  6. 滾動回看什麼過程導致程序運行

希望我t有幫助。

-Allen

+0

它不可能是一項服務。服務正在以不同的方式開始。也許我錯了,但我不知道使用.lnk從用戶會話啓動服務的任何方法。 – noober

+0

我已啓動進程監視器並將過濾器設置爲在「進程名稱」列中包含exe名稱。然後,我直接啓動了exe(使用Windows資源管理器),並通過.lnk文件。據我所知,日誌沒有區別。例如,我查看了「流程開始」操作的細節,按價值計算,它們都是一樣的。也許,我沒有想到。 – noober

+0

您可能會過濾。你可以嘗試不過濾並尋找「乾草堆裏的針」。 Process Monitor會向您顯示您的個人電腦正在做的每件小事,每秒可記錄數百筆交易。使用進程監視器,您可以右鍵單擊進程並告訴它忽略該進程。例如,如果您有防病毒軟件,則可以將其過濾出日誌。 –

相關問題