문제

현재 사용 중입니다.

if ParamStr(1)<>'%1' then
begin
  address.Text:=ParamStr(1);
  autoconfigfile;
end;

파일 연관성을 통해 파일을 여는 데 사용 된 파일 이름을 선택합니다.

이제 여러 파일에서 작동하는 기능을 개발하고 싶습니다. 즉 5 개의 파일을 선택하고 마우스 오른쪽 버튼을 클릭하고 "EncryptionSystem"으로 열기를 선택하면 선택하십시오. 레지스트리 항목이 있습니다.

  reg.OpenKey('*\shell\Encrypt\command', true);
  reg.WriteString('','C:\Program Files\EncryptionSystem\EncryptionSystem.exe "%1"');
  reg.CloseKey;

모든 파일에 오픈 기능을 마우스 오른쪽 버튼으로 클릭하려면. 그런 다음 감지하는 능력을 원할 것입니다

  1. 얼마나 많은 파일
  2. 각 파일의 PathName
도움이 되었습니까?

해결책

한 번에 여러 파일을 열려고하면 일반적으로 등록 된 프로그램의 여러 인스턴스가 표시되며 각 파일 중 하나가 열립니다.

이제 최근 질문에서 판단합니다

내 프로그램의 하나의 인스턴스가 실행 중인지 어떻게 알 수 있습니까?
델파이 프로그램의 한 인스턴스에서 다른 인스턴스로 문자열을 보내려면 어떻게해야합니까?

귀하는 프로그램의 여러 인스턴스를 허용하지 않으므로 해당 설계 결정을 재고하거나 두 번째 질문에 대한 답에 요약 된 방법 중 하나를 구현하여 프로그램의 보조 인스턴스의 명령 행 매개 변수를 보내야합니다. 첫 번째 경우. 첫 번째 인스턴스는 아직 다른 인스턴스로부터 데이터를 수신 할 준비가되지 않았기 때문에 타이밍이 중요합니다. 특히 기본 형식의 창 핸들을 사용하는 솔루션 또는 일부 형태의 파이프 또는 파일 기반 통신 메커니즘에는 첫 번째 인스턴스가 준비되기를 기다리는 것이 포함됩니다. 따라서 프로그램의 여러 인스턴스를 단순히 허용하는 것이 훨씬 쉬울 수 있습니다.

당신은 또한 조사하고 싶을 수도 있습니다 이 Microsoft Knowledge Base 항목 또는에 대한 자세한 정보를 검색하십시오 DDE 실행 명령.

편집하다: "Old New Thing"주석에 자세히 설명 된 것처럼 레지스트리 키에서 "%1"대신 "%*"로 시도 할 수도 있습니다. Gabr의 답변 말하는. 나는 이것을 테스트하지 않았지만 그것이 작동 할 수있는 것처럼 보입니다.

다른 팁

다른 모든 것 외에도 %1 대신 %l을 사용해야합니다. 이렇게하면 프로그램이 파일의 전체 이름을 얻을 수 있습니다 (DOS 8.3).

편집 : 의견에 Rob의 질문에 대한 답변

Google 또는 MSDN 검색을 사용하여 '%L'및 '%1'(퍼센트 부호 포함)을 검색하는 것은 거의 불가능한 것 같습니다. :( 그러나 나는 꽤 좋은 설명을 찾았습니다.오래된 새로운 것 - '%1'프로그램이 긴 파일 이름을 지원하고 짧은 이름 또는 긴 이름을 전달하는지 여부를 자동으로 설정합니다. 모든 현대 시스템은 긴 이름을 통과하는 것 같습니다 당신의 exe를 찾을 수 없다면 (적어도 그것이 내가 Raymond의 노출을 이해하는 방법입니다).

주석에서 더 아래로 스크롤하면 (페이지에서 '%l'을 검색) 더 이상 존재하지 않는 일부 페이지에서 가져온 모든 지원되는 매개 변수 목록이 있습니다 (그러나 나는 이전 사본을 찾았습니다. 인터넷 아카이브). 이 페이지는 Microsoft 문서에 대한 참조가 포함되어 있지 않으므로 권위있는 링크를 제공 할 수 없습니다.

Rob, 감사합니다 - 이제 이전보다 %1/ %L에 대해 더 많이 알고 있습니다 :) +1.

당신이 정말로 무엇을 원하는지 잘 모르겠습니다. 그러나 다음과 같은 매개 변수 수를 찾을 수 있습니다.

ParamCount;

그런 다음 각 매개 변수가 있습니다

ParamStr(1);
ParamStr(2);
ParamStr(3);

Paramcount까지.

나는 당신이 그것을 %1로만 등록하고 있음에 주목합니다.

레지스트리에서 %1 %2 %3 %4 %5 등을 시도합니다.

나는 쉘 확장을 가지고 놀지 못했습니다. 내가 한 모든 것은 등록 된 파일 연관성이며 내가 예상 한대로 정확하게 행동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top