DELPHI : CMD에서 프로그램 실행 및 내부 절차/기능 호출 또는 관련 확장에서 DoubleClick 사용

StackOverflow https://stackoverflow.com/questions/1285204

문제

그래서 최근에 나는 어떤 방식 으로든 프로그램이 호출되는 몇 가지 문제를 해결합니다. 아이콘을 RuneTime에 프로그램과 연결하고 CMD를 사용하여 호출 할 수 있지만, 관련 파일 (아이콘 포함)에서 DoubleClikc를 DoubleClikc 할 때마다 Progam은 단순히 열리지만 필요한 Rotine을 호출하지 않기 때문에 Trigger / Attribute / Parameter가 필요하지 않기 때문에 Rotine을 호출하지 않습니다. 실행이 DoubleClick으로 만들어지면 실행되지 않으면 ...> appname.exe /something /something.

간단한 예제를 제시하거나 이론적으로 모두 필수 기능으로 쓸 수 있습니까?

현재, 당신이 추측 할 수 있듯이, 나는 paramstr / paramcount / blablabla / findcmdlineswitch /와 다른 기능을 사용하지만 ... 여전히 ... :(

도움이 되었습니까?

해결책

조금 설명해 주시겠습니까?

생각한다 사용자가 "mydocument.ext"에 대한 문서 아이콘을 두 배로 늘리는 경우 작업 #1을 수행 할 수 있기를 원합니다.

appname.exe mydocument.exe

DoubleClicking은 쉘이 레지스트리에 관련 "명령 문자열"이있는 "열린"동사를 실행하게합니다. 가장 좋은 방법은이 명령 문자열을 같은 것으로 설정하는 것입니다.

MyProgram.exe "%1" /doubleclicked

... 그런 다음 런타임에 /DoubleClicked 플래그를 확인하십시오. 분명히, 사용자가 "/doubleclicked"옵션으로 명령을 입력하는 것을 막을 수있는 방법은 없지만 이것이 쉘의 작동 방식입니다.

다른 팁

Roddy가 제안한 것처럼 매개 변수 스위치는 유일한 신뢰할 수있는 솔루션이라고 생각합니다. 그러나 사용자가 자신의 바로 가기를 만드는 경우 귀하의 요구에 적합하지 않을 수 있습니다.

즉, 사용자가 명령 줄에 "문서"가 포함 된 바로 가기를 작성하는 경우 명령 줄 호출 또는 "더블 클릭"으로 취급되기를 원하십니까? 내 생각에 그것은 후자라는 것입니다.

그것이 전자라면 여기서 읽는 것을 그만 둘 수 있습니다. :)

그러나 만약 그렇다면 ~이다 후자는 당신이 원하는 행동을 확실하게 얻기 위해 조금 더 많은 작업을해야 할 수도 있습니다 ....

명령 줄 스위치를 사용하여 명령 줄 시작, 더블 클릭으로 "효과적으로"더블 클릭하는 방법에는 여러 가지가 있지만 명령 줄에서 무언가를 실행하는 한 가지 방법, 즉 명령 줄을 사용하기 때문에 더블 클릭이 시작됩니다. (시작 메뉴 -> 실행 ... 명령 줄 출시로 생각합니다. ymmv)

그래서 그것이 나라면 응용 프로그램에 대한 명령 줄 특정 런처를 만들 것입니다. 명령 줄 런처는 실제로 실제 응용 프로그램 실행 파일을 호출하기 전에 명령 줄을 가져오고 추가 매개 변수를 간단히 추가하는 매우 간단한 코드입니다.

예를 들어

myapp param1 param2

효과적으로 shellexecute라고합니다.

Myappgui param1 param2 /cmd

나는 사용자가 GUI를 통해 그것을 호출 할 때 "실제"앱을 나타내는 EXE의 실제 이름에 대해 훨씬 덜 걱정하기 때문에 두 개의 실행 파일을 갖는 것에 너무 걱정하지 않을 것입니다. 또는 알아야 할 필요성. 파일 유형의 연관 및 단축키 등은 모두 "실제"를 직접 지적합니다. myappgui.exe,보다는 myapp.exe

그리고 명령 줄 참조는 단순히 사용자에게 사용하도록 지시합니다. myapp.exe 명령 줄에서 앱을 호출하려면

애플리케이션에서 명령 줄 스위치를 찾으면 명령 줄 런처 응용 프로그램을 통해 시작되었다는 것을 알 수 있습니다. 그렇지 않으면 두 번 클릭/GUI 실행이었을 것입니다.

대부분의 사용자가 우려하는 한, 두 개의 EXE가 관련되어 있음을 알 필요조차 없습니다. 어쨌든, 사용자가 선택한 기술을 발견 한 경우 (선택하든)가 원하는 모든 것을 달성하기 위해 명령 줄을 제조하여 스푸핑 할 수 있음을 수락해야합니다.

그것이 당신에게 중요하다면, 명령 줄 런처 접근법은 아마도 그들이 메커니즘을 발견 할 가능성이 조금 줄어 듭니다. 두 개의 실행 파일이 충분하지 않다는 것을 알고 있습니다. 런처가 추가됩니다. 방금 사용하는 경우 myappgui.exe 명령 줄 발사기를 사용하지 않고 명령 줄에서 직접 myapp.exe, GUI에서 출시 된 것처럼 여전히 응답 할 것입니다!

반면에, 스위치를 사용하여 GUI 출시 필요한 스위치를 "공개보기"에 넣을 필요가 있습니다.

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