我正在尝试创建一个程序,用户必须从他/她的桌面运行.exe。如果他们试图从其他地方运行它我想要我创建的.vbs弹出文件来显示告诉他们把它放在桌面上。我已经完成了程序并且工作正常,但人们无法阅读说明书,所以我认为这可能是一个很好的方法。不幸的是,我遇到了麻烦,我无处可去。如果有人可以帮助我,那将非常感激。
答案 0 :(得分:7)
我真的不明白你为什么要这样做,但你可以在Main上查看应用程序是否是从桌面运行
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());
}
答案 1 :(得分:1)
如果您需要从人员桌面的角度做某事(例如相对于桌面存储文件的位置),您只需查询该位置并将其用作后续工作的基础。
string UserDesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
答案 2 :(得分:0)
我和康拉德在一起,不确定你为什么要这样做。但是,如果您正在讨论将exe放在桌面上并从那里执行(而不是快捷方式),那么您应该能够使用Assembly.GetExecutingAssembly()。Location并将其与System.Environment的用户桌面位置进行比较。 GetFolderPath(Environment.SpecialFolder.Desktop)