2012-03-07 53 views
0

我想創建一個程序,用戶必須從他/她的桌面運行.exe ...如果他們試圖從其他地方運行它我想要.vbs彈出文件我創建的時候會告訴他們把它放在桌面上。我已經制作了這個程序並且工作正常,但是人們無法閱讀說明,所以我認爲這可能是一個好方法。 Unfortunatley,我遇到了麻煩,我無處可去。如果有人能幫助我,那將不勝感激。確定應用程序的家庭位置

+14

爲什麼你關心它在桌面上?也許你可以改爲消除這種依賴關係。 – 2012-03-07 21:17:29

回答

7

我真的不明白爲什麼你要做到這一點,但你可以在主要檢查是否該應用從桌面

static void Main() 
{ 

    var AsmPath =System.IO.Path.GetDirectoryName( 
    System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) ; 

    var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 

    if (AsmPath == desktopPath) 
    (
     MessageBox.Show ("You can only run this from the desktop"); 
     Application.Exit(); 
) 
    else 
     Application.Run(new Form1()); 
} 
+0

非常感謝!作品真棒! – Redman76 2012-03-07 21:51:14

1

如果你需要做的,從人的桌面的角度看東西(比如在哪裏存儲相對於桌面文件),你可以查詢該位置,並將其用作任何後續工作的基礎。

string UserDesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
0

運行我與康拉德上不確定你爲什麼想這樣做。但是,如果您正在討論將exe放在桌面上並從那裏執行(而不是快捷方式),那麼您應該可以使用Assembly.GetExecutingAssembly()。位置並使用System.Environment將其與用戶桌面位置進行比較。 GetFolderPath(Environment.SpecialFolder.Desktop)

+0

好的 - 康拉德擊敗了我! – 2012-03-07 21:28:34