강좌 / 팁

소프트웨어 StrokesPlus 창닫기/탭닫기 조정 스크립트

2013.11.19 12:18

유리얼음 조회:5030 추천:2

오토핫키로 했었는데.. -0- strokesPlus로 직접해보았습니다....

익스/크롬 그리고 일반응용프로그램 창닫기 스크립트..

뭐 완벽하진 않지만.. 꽤 직관적으로 사용할만하다고 생각함;;

아래 스크립트는 꽤 다른분들에게도 유용할수 있을듯함;;

마우스 위치(제스처 시작위치)를 기준으로 작동

글로벌액션에 등록하면 됩니다

===============================================================================================================

acActivateWindow(nil, gsx, gsy, 0)                                             -- 제스처가 시작하는 곳의 마우스위치 아래 있는창 활성화
local iClassName = acGetClassName(acGetForegroundWindow(), nil, nil) -- 활성화된 창의 클래스명 얻기(프로그램 ID)
if iClassName == "IEFrame" or iClassName == "Chrome_WidgetWin_1" then -- 프로그램이 익스이거나 크롬이면
   acSendKeys("^{F_4}")                                                                  -- 탭닫기 단축키 보내기 (컨츄롤f4)
else                                                                                                   --프로그램이 익스나 크롬이 아니면
   local iTorrent = acGetExecutableName(acGetForegroundWindow(), nil, nil) --유토렌트를 변수에저장하고(이유는밑에서별도설명)
  acSendKeys("%{F_4}")                                                                          -- 창닫기 단축키 보내기(알트 f4)
  acDelay(200)                                                                                        -- 0.2초 대기타다가
  if acGetClassName(acGetForegroundWindow(), nil, nil) == "Shell_TrayWnd" or iTorrent == "utorrent.exe" then --밑에서 별도설명
     acSendKeys("%{ESC}")
     end
end

==================================================================================================================

활성창이 닫히면 바로 아래창이 자동으로 활성화 되어야되는데, 프로그램을 시작메뉴에서 시작한경우 그렇지 못합니다..

같은 이유로 유토렌트도 종료하면-0- 포커스가 어디로 공중분산되버려서....종료후 바로 아래 창이 활성화되도록

단축키 ALT+ESC키를 보냅니다 %{ESC)

론쳐에서 따로 프로그램을 실행하시는분들은 빨간색 부분을 클래스명만 교체하면 됩니다..

위 스크립트는 일반적으로 사용될수 있도록 좀 편집했고 아래는 제가 실제 사용중인 스크립트입니다..

==================================================================================================================

acActivateWindow(nil, gsx, gsy, 0)
local iClassName = acGetClassName(acGetForegroundWindow(), nil, nil)
if iClassName == "IEFrame" or iClassName == "Chrome_WidgetWin_1" then 
 if acGetWindowBottom(acFindWindow("Shell_TrayWnd"), nil, nil) == 900 then  
  if acGetPixelBByPoint(1020, 28) == 251 then  
   acSendKeys("%{F_4}")
  else
   acSendKeys("^{F_4}")
  end                                                                     
 elseif acGetPixelBByPoint(860, 28) == 251 then
   acSendKeys("%{F_4}")
  else                                                                      
   acSendKeys("^{F_4}")
  end                                                                     
elseif iClassName == "QWidget" then                                       
 acTerminateProcess(acGetForegroundWindow(), nil, nil)
 else
 local iTorrent = acGetExecutableName(acGetForegroundWindow(), nil, nil)
 acSendKeys("%{F_4}")
 acDelay(200)
  if acGetClassName(acGetForegroundWindow(), nil, nil) == "Shell_TrayWnd" or iTorrent == "utorrent.exe" then
   acSendKeys("%{ESC}")
  end
end

======================================================================================================

위에거와 다른것은, 알트F4로 프로그램을 닫는경우 트레이로 가는 것들(슈거싱크)이 있는데  그넘들만 프로세스로 종료하고(빨강색부분) 익스에서 컨트롤 f4로 종료하면 딜레이가 좀 있어서 창이 하나 남은 경우 알트F4로 종료되도록 했습니다.(녹색부분)

첫번째 탭만 남은경우 (1020,28) 좌표가 색이 다르다는 점을 이용하는 것이기 때문에 좌표만 조정해서 응용가능.

마지막으로 프로젝터때문에 해상도를 두개 사용하는데, 그때마다 위에 언급만 좌표의 위치가 달라지기 때문에 별도도 지정한겁니다

(파랑색부분) 해상도 구하는것은 따로 없는것 같아서 작업표시줄의 좌표를 구해서 변칙적으로 활용해보았습니다.


기본적으로 스크립트 양보다는 컴퓨터가 수행하는 양을 줄일수 있을것 같은 방향으로-0-해보았는데 아무래도

순수 문과생인 초보인지라.... 허접한...

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
» 소프트웨어| StrokesPlus 창닫기/탭닫기 조정 스크립트 [2] 유리얼음 5030 2 11-19
1713 서버 / IT| EMWAC IMS 설정하기 [1] gooddew 5029 0 08-03
1712 윈 도 우| 화면캡쳐 하면서 사진폴더에 자동저장하기 [3] 마니아 5028 0 06-21
1711 윈 도 우| 윈도우 10 TP Administrator에서 시작메뉴 활성화 [1] 슬렌네터 5026 1 01-29
1710 소프트웨어| WinRAR 이외 압축기에서 RAR 쓰기 복원솔루션 5025 1 07-23
1709 서버 / IT| Email 교육 [1] gooddew 5023 0 08-03
1708 윈 도 우| [팁] Realtek high definition audio 윈도우즈 업뎃 문제 [9] sokury 5020 0 04-01
1707 서버 / IT| 패스워드 관리 방법 [6] 마니아 5019 0 06-25
1706 윈 도 우| Windows의 전원설정을 통해 배터리 상태 체크하기 [7] 조남식 5017 3 07-09
1705 윈 도 우| 드라이버 통합이 안 되는 경우 [2] 삶의여유 5017 2 08-29
1704 기 타| sendmail gooddew 5017 0 12-19
1703 윈 도 우| 작업표시줄 바로가기 아이콘 단축키 [3] 매니안 5012 0 07-25
1702 서버 / IT| linux_dnsmail [2] gooddew 5010 0 08-03
1701 [re] [bbie 실행모습 그림파일] [1] cky7041 5008 0 09-09
1700 기 타| 구글계정 가입시 연령미달 경고와 함께 가입이 안될때는... [1] 빛과그림자 5005 0 03-16
1699 서버 / IT| frame-realy 이해 [2] gooddew 4998 0 08-03
1698 기 타| 방송사별 온에어 광고차단 난지로 4995 1 03-04
1697 윈 도 우| 앱 Internet Explorer를 데스크탑 IE로 실행하기! [3] 이프로 4992 3 09-04
1696 서버 / IT| 파일당 용량제한없는 20GB 웹계정 얻기 [7] 클라크 4991 0 06-22
1695 윈 도 우| 파이어폭스포터블 21.0 작업표시줄고정팁 [1] Haka 4991 0 05-22
XE1.11.6 Layout1.4.8