와인에서 실행되는 응용 프로그램에 시작 키 입력을 보낼 수있는 방법이 있습니까?


0

간단히 말해서, Shift + Click을 사용하여 응용 프로그램을 실행하는 경우에만 표시되는 Synthesia의 특수 창에 액세스하려고합니다 . 문제는 와인에서 응용 프로그램을 실행하는 동안 Linux에서 이것을 재현하는 방법을 알 수 없다는 것입니다. 나는 그것이 명령 줄 일이라고 생각했지만 그것을 수행하는 명령을 찾을 수 없었습니다.

그것은 저에게 이것을 남겨두고, 심지어 가능합니까? 그렇다면 어떻게?


compiz를 비활성화하십시오 : 시스템> 환경 설정> 모양의 시각 효과 탭에서 없음을 선택하십시오.
— harrymc

완료, 이것이 어떻게 도움이되는지 모르겠습니다.
— Frontear

익스플로러는 파일을 실행하는 동안 특별한 대우를하지 않습니다. 단순히 실행 파일을 명령으로 실행합니다. 그렇지 않으면 콘솔과 다른 응용 프로그램이 어떻게 실행할 수 있습니까? Shift 키를 눌렀는지 여부를 응용 프로그램에서 알 수 없습니다. 시작한 후에 만 ​​가능합니다
— phuclv

정확히는 와인에서 그것을 흉내낼 수있는 방법이 있어야합니까? DE에서 간단한 Shift + 클릭은 여기서 작동하지 않습니다.
— Frontear

@phuclv가 말했듯이, Shift 키는 응용 프로그램이 시작되는 방식에 특별하지 않지만 일단 시작되면 응용 프로그램에 특별 합니다 . 즉, 응용 프로그램 시작 코드의 일부는 Shift 키의 상태를 확인합니다.
— attie

답변:


0

이 프로그램은 GetKeyStateAPI를 사용 하여 다음과 같이 Shift 키를 감지합니다.

.text:0040D575                 call    ds:GetKeyState
.text:0040D57B                 mov     ecx, 8000h
.text:0040D580                 test    cx, ax
.text:0040D583                 jnz     loc_40E21F   ; jumps to special config dialog show
  1. Synthesia선호하는 이름 (mine :)으로 디렉토리에 bash 스크립트를 생성 runme하고 다음 행을 채우십시오.

    #!/bin/bash
    wine Synthesia.exe
    
  2. 속성을 실행 가능으로 변경하고 bash 스크립트를 chmod +x rumne클릭하여 즉시 실행할 수 있는지 확인하십시오 . 대화 상자를 요구하지 않고 bash 스크립트를 실행하는 것을 의미합니다! 이 답변을 사용

  3. HOLD ShiftKEY 및 실행 / 더블 클릭을 클릭합니다 runme. 프로그램이 정상적으로 실행됩니다! 이제 닫으십시오. 그러나 Shift키를 해제하지 마십시오 . 다시 한 번 클릭 / 두 번 클릭하면 runme특별한 구성 대화 상자가 표시됩니다.

    보여줘!


# 2 대신 " Run "버튼을 클릭 할 때 Shift 키를 길게 누르지 못했 습니까?
— attie

바이너리 패치를 수행하고 일반 / 구성 창을 표시하는 플래그를 허용하는 래퍼 스크립트의 보너스 포인트.
— attie

Shift 키를 누른 상태에서 묻기 대화 상자에서 클릭 실행 버튼을 테스트했지만 작동하지 않았습니다! 이진 패치를 수행 할 수 있지만 질문은 구성 모드 에서이 응용 프로그램을 실행하는 방법이 아닌 와인에서 시작 키 스트로크를 보내는 방법이었습니다. 알려주세요.
— arman

Shift 키를 누른 상태에서 스크립트를 실행할 수없는 것 같습니다. KDE를 실행 중입니다.
— Frontear

1
나는 그것을 실행하는 다른 방법을 찾았습니다. 와인에서 Explorer.exe를 호출 한 다음 거기에서 Shift + 클릭하십시오.
— Frontear

0

따를 수있는 또 다른 방법은 Explorer.exe와인을 마시고 Shift + Click 작업을 수행하는 것입니다. 위의 방법과 달리 변경 될 특정 설정이나 스크립트에 의존하지 않습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.