2017-12-16 3 views
1

Windows에서 실행되는 Tcl/Tk GUI에서 사용자 정의 글꼴을 사용하려고합니다. 내가 어떻게 든 (일시적으로) 글꼴Tcl/Tk (VBScript를 통해)로 글꼴 등록

을 등록하려면 AddFontResourceEx 기능을 사용할 필요가 보인다 있도록

은 정말 글꼴 시스템 전체 (이 관리자 권한을 필요로)를 설치하지 않으 이제 몇 가지 합병증이 있습니다

  • 필요
  • 순수한은 Tcl/Tk의 솔루션 (NO 바이너리 확장을 10 원에 W7에 (적어도) 실행해야합니다 8.5은 Tcl/Tk를 실행할 수 있도록; 모든 솔루션은 자체적으로 포함되어야합니다. 깨끗한 W32 설치가되어 어떤 통역은 Tcl/Tk의 인터프리터와와) 배포 시스템에
  • 없이 관리자 권한

그래서 내가 할 것 VBS 스크립트를 사용하여 생각없이 사용자와의 상호 작용 AddFontResourceEx으로 전화하는 마법의 주문. (원래 Powershell 스크립트를 사용하여 보안상의 이유로 기본적으로 사용하지 않도록 설정 한 것임을 알았습니다.)

나는 VBS 사람이 아닌 Windows 사용자가별로 많지 않습니다. VBS에 글꼴을 등록하는 것도 가능한지 여부를 상상해보십시오. 그렇다면 어떻게? 또는 Tcl/Tk (또는 셸)에서 글꼴을 등록하는 더 쉬운 방법이 있습니다.

+0

파일을'% windir % \ Fonts'에 복사 하시겠습니까? 하지만 관리자 권한없이 글꼴을 추가 할 수 있는지 여부는 확실하지 않습니다. –

+1

순수 Tcl 코드 (** 디자인 **)를 사용하여 구현 가능한 Tcllib는 괜찮습니다. 관련 파일 (또는 코드)을 복사하면됩니다. 그러나, 당신이 가지고있는 문제는 (웹 검색을 파고들 때부터 알 수있는 한)'AddFontResourceEx' _in-process_를 호출해야하고, 하위 프로세스에서 VBS를 실행하면 부모 프로세스가 글꼴. 등록을하려면 작은 DLL (12 개 정도의 코드 라인, 사실상 모두 상용구)이 필요합니다. –

+0

@DonalFellows 좋은 지적; 나는 우리가 AddFontResourceEx를 사용하여 세션 당 * 폰트를 등록 할 수 있다고 생각했다. 또는 VBS 내에서 Tcl/Tk 응용 프로그램을 호출하십시오 (그래서 폰트는 부모 프로세스로부터 상속 될 것입니다) –

답변

0

당신은 extrafont 패키지를 시도 할 수 있습니다 : https://wiki.tcl.tk/48903 이 패키지는 시스템에 설치 에없이 외부 글꼴을로드합니다.

+0

불행히도 이것은 순수한 Tcl/Tk 솔루션 * 요구 사항을 충족시키지 못합니다. 요점은 컴파일 된 것에 대한 의존성이나 표준 W32 설치와 함께 제공되지 않는 인터프리터를 정말로 원하지 않는다는 것입니다. –