2009-08-16 4 views
0

나는이 스레드를 참조하고 웹 사이트 그것이 가리키는 수 있습니다 : 지금부터, 나는 My.Application.CommandLineArgs이 제대로 동작하지 않습니다 Opening a file in my application from File ExplorerMy.Application.CommandLineArgs는 - 파일을 열 수 없습니다

. 내 프로그램에서 열 파일을 선택할 때마다 프로그램을 닫을 때 창 오류가 발생합니다. My.Application.CommandLineArgs에서 파일 경로를 가져 와서 파일 (프로그램과 관련이없는 경우에도 다양한 확장명의 텍스트 파일)을 구문 분석하고 해당 내용을 RichTextBox. 파일을 여는 기능이 완전하고 작동하지만 파일에 My.Application.CommandLineArgs를 사용하려고하면 프로그램이 즉시 중단됩니다. 난 그냥 응용 프로그램을 열면

Private Sub ParseCommandLineArgs() 
    If My.Application.CommandLineArgs.Count > 0 Then 
     MessageBox.Show(My.Application.CommandLineArgs(0)) 
    Else 
     MessageBox.Show("No args") 
    End If 
End Sub 

, 나는 내 응용 프로그램 "을 열고"사용하려고하는 경우에는 인수가 제공되지 않았다 말해 메시지 상자를 얻을 : 여기 내가 테스트로 노력하고있어 코드 내 응용 프로그램이 충돌하는 파일. 이 함수는 form_load 중에 호출됩니다.

답변

1

나는 그것이 고전 오프별로 하나의 오류, VB.NET 배열과 컬렉션은 요소 0에서 시작할, 그래서 사용의 두려워 : 디버그 측면 탭을 선택하여 응용 프로그램의 속성에서

MessageBox.Show(My.Application.CommandLineArgs(0)) 
+0

실제로 0은 0이 작동하지 않기 때문에 테스트했습니다. – MaQleod

+0

추가 : 경로가 제공되는 위치를 알지 못했기 때문에 다른 숫자를 시도하고 My.Application.CommandLineArgs로 다시 변경하는 것을 잊었습니다. (0) 게시 전 – MaQleod

+0

@MaQleod. 질문을 편집하고 1을 0으로 바꿀 수 있습니까? – RobS

1

입력 상자에 명령 줄 인수를 추가하고 IDE에서 프로그램을 실행합니다. 이 방법을 사용하면 응용 프로그램이 손상 될 수있는 오류를 정확히 파악해야합니다.

0

Open With 컨텍스트 메뉴 옵션을 통해 호출되는 프로그램은 OS에서 직접 실행되기 때문에 실시간 디버깅이 어려울 수 있습니다.

오류의 텍스트를 확인하는 것이 도움이 될 수 있습니다. Open With를 통해 Windows에서 .NET 응용 프로그램을 호출하면 My.Application.CommandLineArgs가 전혀 채워지지 않을 수 있습니다. 또는 파일 이름을 컬렉션에 추가로 넣을 수도 있습니다. 시도 할 수있는 항목의 수와 값을 보려면 정확히

For Each s As String In My.Application.CommandLineArgs 
    MessageBox.Show(s) 
Next 

을 입력하십시오. 어쨌든 Open With를 사용하여 응용 프로그램에 전송 된 컨텍스트 인수를 가로채는 방법에 대한 Google 검색을 수행합니다.

+0

AFAIK "open with ..."명령은 파일 이름을 첫 번째 명령 줄 인수로 넣어야합니다. IDE 디버그 옵션을 통해 명령 줄 인수를 설정하면 응용 프로그램이 중단되는 원인을 해결할 수 있습니다. 내 생각 엔 응용 프로그램이 다른 필요한 작업을 완료하기 전에 명령 줄 인수로 제공되는 파일을 열려고하지만 응용 프로그램 오류가 발생하지 않으면 결코 알 수 없습니다. MaQleod. – RobS

관련 문제