아래 뜨는 Download 나 PC App Store는 모두의 프린터와 상관없는 광고입니다!!
특히 PC App Store는 악성 소프트웨어이니 절대 클릭하지 마세요!!
모두의 프린터는 어떠한 경우에도 본인인증, 회원가입, 카드결제를 요구하지 않습니다.
다운로드를 유도하는 애드센스 광고를 피로곰이 배포하는 프로그램들의 다운로드 링크로 착각하지 않도록 주의하시기 바랍니다. 피로곰이 배포하는 모든 프로그램은 본인인증, 회원가입, 이용료 결제 없이 무료로 사용가능합니다.
많이 찾는 글들...
  1. PC App Store 제거 방법
  2. Ghostscript/GhostPCL 설치 안내
  3. 파일 다운로드가 차단되는 경우
  4. 내 컴퓨터의 32비트,64비트 여부 아는법
  5. 'Windows의 PC 보호' 문제
  6. 모두의 프린터 실행후 환경설정창 뜨지 않고 무반응
  7. Ghostscript PDF변환 불가. Can't load Ghostscript DLL
  8. 대법원 인터넷 등기소, 전자소송, 경매,전자공탁등 대법원계열 사이트관련
  9. 모두의 프린터 사용후 네트워크 장애가 발생하는경우. (대법원 인터넷등기소 등)
  10. 출력시 모두의 프린터가 강제종료 되는 경우.'지원하지 않는 PDF또는 가상 프린터입니다.'
  11. 오픽(OPic), 연결상태 확인 불가 프린터, 등록되지 않은 프린터(MarkAny e-PageSAFER)
  12. YBM 토익성적표 관련(정상적인 프린터로 출력을 진행하시기 바랍니다)
  13. 리포트뷰어(ReportViewer) 관련(특수목적프린터, 문서변환 프로그램을 제거해주세요)
  14. 인터넷증명발급센터 서트피아(Certpia) 관련 안내
  15. 인강사이트 관련 - 출력에 매우 오래 걸림, PDF파일 버벅거림, PDF여는데 오래걸림 등등
  16. '잘못된 프린터 데이터를 수신하였습니다.' 문제
  17. MS서피스, 삼성 갤럭시북 등 ARM기반 랩탑, '잘못된 프린터 데이터를 수신하였습니다.' 문제

Go 윈도 프로그래밍시 실행파일에 리소스정보 적용

우선 Walk를 쓰던 뭘 하던 윈도용 프로그램을 만드는 경우에는 .. 프로그램의 아이콘을 지정하고 싶기도 하고 .. 

프로그램의 기본 아이콘과 보통 윈도 프로그래밍에서 말하는 메니페스트(Manifest)의 적용은 rsrc 라는 패키지를 통해 합니다.

요 패키지를 go get ( 최근 go에서는 go install ) 해서 우선 설치하시면 되구요.

기본적으로 Manifest 파일을 하나 만드셔야 합니다.

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="DEMO" type="win32"/>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
        </windowsSettings>
    </application>
</assembly>

기본적으로 위 내용을 .. 프로젝트명.manifest 로 프로젝트내에 저장하시면 되는데요.. 

XML
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="DEMO" type="win32"/>

여기서 name 은 본인의 프로젝트에 맞춰 바꾸시면 됩니다.

만약에 프로그램 실행시에 관리자권한으로 실행이 되길 바라시면 ..

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MOP" type="win32"/>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
        </windowsSettings>
    </application>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>

</assembly>
XML
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>

위와 같이 ..

trustInfo 구문을 추가하시면 됩니다. 이걸 추가하시면 실행시 UAC화면이 뜨면서 .. 권한을 허용할꺼냐는 창을 보시게 됩니다.

이제 프로그램 아이콘 파일을 하나 만드시던 구하시던 .. 업어오시던 하시고

Bash
rsrc -manifest 프로젝트명.manifest -ico 아이콘명.ico -o 프로젝트명.syso

위 명령어를 치시면 앞서 go get 해서 설치된 rsrc 명령어로 manifest 와 아이콘 파일을 이용해서 시스템 오브젝트를 생성합니다. 주의하실점은 go 컴파일러는 프로젝트 폴더내에 존재하는 syso 파일을 자동으로 찾아서 포함을 시켜주는데요 한 폴더에 syso 파일은 딱 하나만 존재해야 합니다. 

이렇게 syso 파일을 만들어서 빌드하시면 

이런식으로 아이콘이 적용된 실행파일을 만드실수 있습니다.

여기서 추가적으로 한가지 더 팁을 드리자면 ..

Go컴파일러는 윈도 실행파일에 대한 상세정보를 추가할 방법을 제공하지 않습니다.

실행파일의 속성에서 .. 자세히를 보시게 되면 위와 같이 .. 파일설명이나 그런 내용을 입력해 넣을 방법을 기본적으로 제공하지 않기 때문에 ..

여러가지 방법이 있겠지만 제경우 .. 실행파일을 빌드한 후에 리소스해커를 이용해서 저 리소스 정보를 교체합니다.

INI
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS 0x4
FILETYPE 0x1
{
  BLOCK "StringFileInfo"
  {
  	BLOCK "041204B0"
  	{
  		VALUE "CompanyName", "회사명"
  		VALUE "FileDescription", "파일설명"
  		VALUE "FileVersion", "1.0.0.0"
  		VALUE "InternalName", "실행파일명.exe"
  		VALUE "LegalCopyright", "(c) 카피라이트 2017-2021"
  		VALUE "ProductVersion", "1.0.0.0"
  		VALUE "ProductName", "제품명"
  	}
  }
  
  BLOCK "VarFileInfo"
  {
  	VALUE "Translation", 0x0412 0x04B0  
  }
}

위 내용을 VersionInfo.rc 라는 파일명으로 저장하십시요. VersionInfo.rc 에 대한 자세한 정보는 아래 MS사이트 링크를 참고바랍니다.

내용중 FILEVERSION 이나 회사명, 파일설명 같은 내용들은 본인이 만드는것에 맞춰서 수정해서 저장해두시구요.

BAT (Batchfile)
rem Resource Fetch
@set EXENAME=%1
@set TMPNAME=_%EXENAME%

del VersionInfo.res %TMPNAME%
.\rh.exe -open VersionInfo.rc -save VersionInfo.res -action compile
.\rh.exe -open %EXENAME% -save %TMPNAME% -action addoverwrite -resource VersionInfo.res
del %EXENAME%
ren %TMPNAME% %EXENAME%

위 코드를 RC.BAT 이든 적당한 이름의 BAT 파일로 저장하십시요.

이후 실행파일을 만든 다음에 “RC.BAT 실행파일명.exe”를 하게되면 ..

앞서 저장한 VersionInfo.rc 파일을 res 파일로 리소스해커를 이용해 컴파일 한후

컴파일된 실행파일에 해당 리소스를 적용한다음 _실행파일명.exe 로 저장하고 

_실행파일명.exe -> 실행파일명.exe 로 교체를 해주는 스크립트 입니다.

이런 과정을 거치면 

이렇게 파일속성의 자세히 부분에 .. 더 많은 정보를 추가할 수 있습니다.

이상입니다.

많이 찾는 글들...
  1. PC App Store 제거 방법
  2. Ghostscript/GhostPCL 설치 안내
  3. 파일 다운로드가 차단되는 경우
  4. 내 컴퓨터의 32비트,64비트 여부 아는법
  5. 'Windows의 PC 보호' 문제
  6. 모두의 프린터 실행후 환경설정창 뜨지 않고 무반응
  7. Ghostscript PDF변환 불가. Can't load Ghostscript DLL
  8. 대법원 인터넷 등기소, 전자소송, 경매,전자공탁등 대법원계열 사이트관련
  9. 모두의 프린터 사용후 네트워크 장애가 발생하는경우. (대법원 인터넷등기소 등)
  10. 출력시 모두의 프린터가 강제종료 되는 경우.'지원하지 않는 PDF또는 가상 프린터입니다.'
  11. 오픽(OPic), 연결상태 확인 불가 프린터, 등록되지 않은 프린터(MarkAny e-PageSAFER)
  12. YBM 토익성적표 관련(정상적인 프린터로 출력을 진행하시기 바랍니다)
  13. 리포트뷰어(ReportViewer) 관련(특수목적프린터, 문서변환 프로그램을 제거해주세요)
  14. 인터넷증명발급센터 서트피아(Certpia) 관련 안내
  15. 인강사이트 관련 - 출력에 매우 오래 걸림, PDF파일 버벅거림, PDF여는데 오래걸림 등등
  16. '잘못된 프린터 데이터를 수신하였습니다.' 문제
  17. MS서피스, 삼성 갤럭시북 등 ARM기반 랩탑, '잘못된 프린터 데이터를 수신하였습니다.' 문제

모두의프린터에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기