윈도우에 컴파일러 따로 깔지 않고 편하게 GUI 프로그램 만드는 방법이 없을까?
놀랍게도 있어. HTA(HTML Application)이라는 건데, 아래 코드 치고 xxx.hta 로 저장해서 실행해 볼 것.
그냥 HTML 쓰면 그게 프로그램이 됨.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<hta:application></hta:application>
<title>Hello HTA</title>
</head>
<body>Hello HTA!</body>
</html>
나 짐 휴간데 이거 때매 컴퓨터 켜본다
간단한 프로그램은 HTA로 구현해서 들고 다니는 편임. 버그 나면 바로바로 그 자리에서 수정하기도 편하고.
물론 UI가 필요 없는 건 VBScript로 짜고. (VBScript는 GUI는 무리고 CUI 까지 밖에 안 됨)
신기방기
창 위치나 크기는 window.moveTo, window.resizeTo로 너가 조정해 주면 되고, 창 테두리라던가 최대화 최소화 버튼, 중복 실행 방지 같은 프로그램 속성은 HTA:APPLICATION 태그 속성에서 지정할 수 있음. 정보는
https://msdn.microsoft.com/en-us/library/ms536495(v=vs.85).aspx
를 참고해.
vbscript가 좋은게 메시지박스 타임아웃 걸어서 띄울수 있다. 몇초 지나면 자동으로 Yes해주는거. vbs랑 hta 같이 잘 활용하면 좋지. 이게 참 좋은게, 그냥 메모장만으로도 존나 할만함. 물론 실제 할때는 에디트플러스같은 문서에디터 쓰지만.
아 맞아. WScript.Popup 말하는 거지? 편한 거 인정 ㅇㅇ
아 헷갈린 거 같아서 검색해 보니 WshShell(WScript.Shell)의 Popup 메서드네. ㅇㅇ
참고로 프로그램에서도 메시지 박스에 타임아웃 걸어서 띄울 수 있음. ㅋㅋ MessageBoxTimeout이라는 Undocumented API가 있어. :)
나도 딱히 명령어는 외우고 다니지 않아서 잘 모름. 그냥 만들어놓고 계속 돌리는중. ㅋㅋㅋ
VBScript 하게 되면 알아두면 좋은 COM 객체가 WScript.Shell, WScript.Network, Scripting.FileSystemObject, Scripting.Dictionary, ADODB.Stream, WinHttp.WinHttpRequest.5.1, VBScript.RegExp, WScript 객체 정도만 알면 진짜 윤택한 프로그래밍이 가능해 짐. ㅋㅋ
ADODB.Connection 같은 거 이용해서 DB 연동하는 것도 이론적으로는 가능하긴 할텐데 이건 안 해 봐서 모르겠다. Classic ASP 할 때만 건드려 보고 VBScript에서는 안 써 봄. ㅋㅋ 이론 상으로는 DB 연동도 가능하다.
부수적으로 Shell.Application이랑 InternetExplorer.Application, Excel.Application, Outlook.Application 같은 것도 있다는 건 알아 두면 좋음. 웹 연동할 때 InternetExplorer.Application은 필수임.