How to get command line from a ClickOnce application?

别来无恙 提交于 2019-11-27 07:39:57

问题


Before publishing I went to Project -> Properties -> Options -> File Associations and added the extension ".hsp". Set an icon and a ProgID ("MyCompany.Document.1" for testing). After I published and installed, my .hsp files had the icon I set, so the file association should be properly set, but when I double clicked one of these files the application run and I expected the name of the file I double clicked to be in the command line. I tried reading the parameter passed to my Main function, tried Environment.CommandLine, and tried Environment.GetCommandLineArgs(), but the only thing I found was the application path. By the way I'm doing all this check before creating my main form in the Main function, just to test. The args parameter is empty and the other two only contain my app path.

This is the beginning of my Main function:

    static void Main(string[] args)
    {
        try
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
            MessageBox.Show("CommandLine -> " + Environment.CommandLine);
            foreach (string str in args) MessageBox.Show("args -> " + str);
            foreach (string str in Environment.GetCommandLineArgs()) MessageBox.Show("GetCommandLineArgs -> " + str);

回答1:


When you publish an app with ClickOnce and then launch it by double-clicking an associated file, the path to that file actually gets stored here:

AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]

See MSDN's documentation for it here:

http://msdn.microsoft.com/en-us/library/system.runtime.hosting.activationarguments.aspx

Plus a tutorial on adding file associations to "Published" projects:

http://blogs.msdn.com/b/mwade/archive/2008/01/30/how-to-add-file-associations-to-a-clickonce-application.aspx



来源:https://stackoverflow.com/questions/4607632/how-to-get-command-line-from-a-clickonce-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!