2010-09-09 81 views
3

好吧,原來我會問在Windows 7中拖放。我找到了我在這裏找到的答案:C# Drag drop does not work on windows 7。基本上它說,因爲我運行Visual Studio(以及後來的程序)具有提升的權限,某種隔離層可以防止我將文件從資源管理器拖放到我的程序中。我可以在沒有提升權限的情況下從Visual Studio運行程序嗎?

我使用提升的權限運行visual studio的原因是因爲需要管理員權限才能在IIS上本地運行站點,並且Web應用程序位於我的解決方案中。有沒有一種方法可以讓Visual Studio以普通用戶身份運行和調試其他應用程序?

回答

2

爲什麼你不在桌面上創建另一個快捷方式,啓動devenv.exe沒有提升?

1

VS調試器綁定到VS啓動的瀏覽器實例,但您仍然可以使用其他瀏覽器實例瀏覽待測站點。服務器端的操作仍然可以通過調試器進行操作(但是您不會得到客戶端調試,IE8開發人員工具,當然FireBug仍然可用)。

+0

重讀我的問題,似乎有點混淆。我不是在問運行一個網絡應用程序。 Web應用程序僅僅是我需要以管理員身份運行VS的原因。我想要做的是調試窗體應用程序,這也是解決方案的一部分。 – 2010-09-09 15:25:20

2

MSDN states

從提升過程

一個常見問題是如何從一個升高的過程啓動的未升高的應用,或更根本啓動一個取消高架應用,如何在運行提升後使用未提升的令牌啓動進程。由於沒有直接的方法來執行此操作,通常可以通過以標準用戶身份啓動原始應用程序並僅提升需要管理權限的應用程序部分來避免這種情況。通過這種方式,總是有一個未升級的進程,可用於以當前登錄的桌面用戶的身份啓動其他應用程序。然而,有時候,升級過程需要讓另一個應用程序運行不升級。 這可以通過在WindowsVista®中使用任務計劃程序來完成。升級的進程可以註冊一個任務,以當前登錄的桌面用戶身份運行。

你可以使用它並實現一個簡單的啓動程序(可能是一個VS宏),而不是你的應用程序。該發射器的應用程序將:

  • 創建計劃任務會立即運行,或由一個事件
  • 啓動調試觸發
  • 的VS調試器與啓動過程
1

從您的應用程序使用以下值調用ChangeWindowMessageFilter,以允許從高級應用程序和像Explorer這樣的非高級應用程序拖放:

ChangeWindowMessageFilter (WM_DROPFILES, MSGFLT_ADD); 
ChangeWindowMessageFilter (WM_COPYDATA, MSGFLT_ADD); 
ChangeWindowMessageFilter (0x0049, MSGFLT_ADD); 

信用:http://blog.helgeklein.com/2010/03/how-to-enable-drag-and-drop-for.html

0

您可以使用高架的Visual Studio做你的節目,你就不能有Visual Studio的啓動可執行文件。

我喜歡0xA3的答案,但如果你不想去創建一個VS宏和一個計劃任務來啓動你的程序的麻煩,你可以在桌面上創建一個快捷方式到可執行文件調試或發佈版本)並使用它來啓動您的程序。

如果啓動調試版本,則可以使用Visual Studio「調試」菜單中的「附加到進程」附加並執行一些調試。

1

我用老派的命令行用於此目的:

runas /trustlevel:0x20000 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" 

然後只需按F5在Studio。

相關問題