문제

할 수 있는 방법을 분석 쿼리 문자열은(GET/포스트 매개 변수)을 전송하여 응용 프로그램의 매니페스트에서.NET?
에서 하나 응용 프로그램,내가 전화 MyApp.application 는 요구를 설치.인터넷 응용 프로그램(설치되어 있지 않은 경우)그리고 어떤 경우에 호출해야 응용 프로그램이는 구문 분석해야를 얻을 매개 변수입니다.

나중에 수정:
나는가.NET 응용 프로그램이 설치되어 있어야를 통해 ClickOnce.그것은 이미 출판된 웹 서버입니다.응용 프로그램을 실행하는 호출하여 수행 MyApp.application 에서 파일을 외부 프로그램(written in PHP).이 정상적으로 검사를 위한 업데이트 및 응용 프로그램을 설치하는 경우,필요한 다음 호출은 응용 프로그램 그래서 이 파일은 항상 있을 것입니다에서 호출 외부 응용 프로그램.
외부 응용 프로그램을 보내는 매개변수를 통해 얻을 쿼리를 이 파일을 처리해야 합니다.인터넷 응용 프로그램(매개변수함을 증명 정보기 때문에 이는 가장 쉬운 방법을 볼 수 있을 구현하는 자동 로그인).
는 경우를 얻을 매개 변수를 보냈 MyApp.application, 수있는 방법,프로세스에서 그들을 MyApp.cs 모든 시간의 시작합니까?

도움이 되었습니까?

해결책

첫째,당신이 있는지 확인해야 query string 옵션을 사용(프로젝트 속성=>게시=>options=>드러난=>허용 url 매개 변수...);

다음을 허용 사이의 패리티는 독립하고 웹을 다음과 같은 코드를 사용하면 아래의(중요한 비트 ActivationArguments.ActivationData;당신은에 대한 참조가 있어야 합니다 System.Deployment.dll 도).

당신은 수도에서 보 System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri, 는 MSDN 는 좋은 예 .


    public static string[] GetStartupArguments() {
        List<string> allOptions = new List<string>();
        try // command line
        {
            string[] options = System.Environment.GetCommandLineArgs();
            if (options != null) { // strip the first (the exe name)
                int length = options.Length;
                for (int i = 1; i < length; i++)
                    allOptions.Add(options[i]);
            }
        } catch { } // lazy swallow
        try // query string
        {
            if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed) {
                string[] options = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
                if (options != null && options.Length > 0) {
                    foreach (string queryItem in new Uri(options[0]).Query.TrimStart('?').Split('&')) {
                        allOptions.Add(System.Web.HttpUtility.UrlDecode(queryItem));
                    }
                }
            }
        } catch { } // lazy swallow

        return allOptions.ToArray();
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top