簡體   English   中英

我可以在沒有提升權限的情況下從visual studio運行程序嗎?

[英]Can I run a program from visual studio without elevated permissions?

好吧,原來我打算在Windows 7中詢問有關拖放的問題。我找到了我在這里尋找的答案: C#Drag drop在Windows 7上不起作用 基本上它說,由於我使用提升的權限運行Visual Studio(以及隨后的程序),某種隔離層阻止我將文件從資源管理器拖放到我的程序中。

我使用提升權限運行visual studio的原因是因為在IIS上本地運行站點以及Web應用程序在我的解決方案中需要管理員權限。 有沒有辦法告訴visual studio以普通用戶身份運行和調試我的其他應用程序?

為什么不在桌面上創建另一個快捷方式,啟動devenv.exe而不提升?

MSDN聲明

從高架流程啟動未提升的應用程序

一個經常被問到的問題是如何從提升的進程中啟動未提升的應用程序,或者更重要的是,如何在我升級后使用未提升的令牌啟動進程。 由於沒有直接的方法可以做到這一點,通常可以通過將原始應用程序作為標准用戶啟動並僅提升需要管理權限的應用程序部分來避免這種情況。 這樣,始終存在一個非提升的進程,可用於以當前登錄的桌面用戶身份啟動其他應用程序。 但是,有時候,升級的進程需要讓另一個應用程序無法運行。 這可以通過使用WindowsVista®中的任務計划程序來完成。 提升的進程可以將任務注冊為當前登錄的桌面用戶。

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

  • 創建將立即運行或由事件觸發的計划任務
  • 啟動調試對象
  • 將VS調試器連接到已啟動的進程

我為此目的使用老派命令行:

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

然后在Studio中按F5。

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

在您的應用程序中,使用以下值調用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

您可以使用提升的Visual Studio進行編程,您只是無法讓Visual Studio啟動可執行文件。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM