스크린 샷

제목 : 공개 - 드래그 예제

빨강모자

어제의 일을 상기하면서 공개해 봅니다

공개라니까 매우 불편하고 거창하지만 

그냥 사용해 봅니다.

 

무슨 드래드앤드랍이 특별한 사람들만의 전유물은 아님니다.

회우님께서 언급하셨듯이 조금만 찾으면 금새 찾아집니다.

그것을 어찌 활용하냐는 것이 개개인의 숙련도일 것이라 여겨집니다.

 

예제.

 

예제 01.jpg

예제 02.jpg

실행된 화면입니다. 아이콘을 보시다시피 오토잇으로 예제를 편집했습니다.

 

예제 04.jpg

전체 32라인 코딩된 소스코드 편집화면입니다.

그 어떠한 시스템의 접근이나 변경이 없음을 확인할 수 있습니다.

 

예제 03.jpg

드래그의 결과화면입니다.

이는 연구자가 오류값등을 확인하여 적절하게 활용코저 하거나, 또는 사용자에게 알림을 위한 목적등으로 활용을 할 수 있을 것입니다.

 

예제 05.jpg

컴파일된 모습입니다. UPX 압축을 하지 않았습니다. 내부 압축만으로 빌드된 것입니다.

 

예제 07.jpg

컴파일된 파일의 실행화면이미지입니다. 사용자지정 아이콘이 표시됨니다. 

 

예제 06.jpg

위 컴파일된 파일의 바이러스토탈 검사 화면입니다.

 

활용의 예::

모자의 경우 주로 컴파일하지 않은 상태에서 즉각적인 대응을 위해 

명령어의 조합을 띄우고 즉시 실행하여 결과의 값만 확인한 후 대응하는 패턴을 활용합니다.

 

소스 간략 설명:

 

기본함수 불러오기

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

#include <ButtonConstants.au3>

 

화면에 표시될 창을 만듬니다.

$Form1 = GUICreate("파일 드래그 앤 드랍 예제", 550, 53, -1, -1, -1, $WS_EX_ACCEPTFILES)

 

창에서 드래그 이벤트를 사용할 수 있도록 사전 정의합니다.

GUISetOnEvent($GUI_EVENT_DROPPED, "Drag")

 

버튼을 하나 만듬니다.

$button = GUICtrlCreateButton("",520, 24, 20, 20, $BS_ICON)

 

입력란을 하나 만듬니다.

$Input1 = GUICtrlCreateInput("[ ... ]", 8, 24, 510, 21)

 

이 입력란에 드래그를 활성화 합니다.

GUICtrlSetState(-1, $GUI_DROPACCEPTED)

 

마우스를 올리면 보이는 툴팁을 정의합니다.

GUICtrlSetTip(-1,@CRLF & "파일을 드래그하세요", "여기에", 1, 1)

 

라벨을 하나 만듬니다.

$Label1 = GUICtrlCreateLabel("파일을 드래그 앤 드롭", 8, 8, 220, 16)

 

화면에 창을 나타냄니다.

GUISetState(@SW_SHOW)

 

창의 위치를 최상위로 고정합니다. <- 파일을 드래그하기 위해서는 다른 창이 반드시 필요하므로 ..

WinSetOnTop("파일 드래그 앤 드랍 예제", "", 1)

 

함수를 정의합니다. 이는 흔히 활용하는 오류값을 콘솔에서 볼 수 있도록 출력을 지정합니다.

Func Drag()

   ConsoleWrite("ID: "&@GUI_DRAGID & " File: "&@GUI_DRAGFILE &" Drop: "&@GUI_DROPID&@CRLF)

EndFunc

 

종료이벤트시 실행을 정의합니다.

Case $GUI_EVENT_CLOSE

 

버튼을 클릭했을때 ( 기본값 ) 실행을 정의합니다.

Case $button

 

메시지박스로 알림을 표시해 줌니다. 10초간 유지한 후 사라짐니다.

MsgBox(262208,"결과확인","ID: "&@GUI_DRAGID&@CRLF&" File: "&@GUI_DRAGFILE&@CRLF & " Drop: " & @GUI_DROPID & @CRLF, 10)

 

무지하게 간단하고도 활용도가 높은 방법이기는 합니다만

적절하게 활용할 수 있도록 하는 것은 연구자의 몫일 것입니다.

 

이러하듯이 간단하지만 간단하지 않음으로하여 

때로는 불편함이 초래되게 되고, 또는 편리함을 가져오기도 합니다만

선택은 엔드유저의 몫일 듯 합니다.

맘에들지 않는다면 사용을 안하시면 됨니다.

 

되먹지 못하게 잘했네 못했네 감놔라 배놔라 할 이유가 그 어디에도 없을 것입니다.

반면 유용할 것 같고 관심이 간다면 피드백을 통하여

" 이러이러한 부분은 요렇게 수정하면 편리할 듯 합니다... "

등의 피드백을 통하여 일진할 수 있지 않을까요?

 

나의 아이디어가 아닌 타인것을 자기것으로 이름만 바꾼다하여

자기의 것이 되지 않음은 모두가 인지하실 것이라 여겨짐니다.

 

간략하게나마 드래그앤드롭의 예제를 살펴 봤습니다.

이 게시글에 사용한 소스코드와 아이콘을 그대로 공개해 드림니다.

관심이 있으신 분만 내려받으시어 도전해 보시기 바람니다.

푸어베이직이나 오토핫도 가능하고 다른 언어로도 또한 가능한 기능입니다..

참고하세요...............

 

 

to download_moja(40).gif

파일 드래그 앤 드랍 예제.7z

 

 

시원함과 함께 편안함으로 자리하세요~~~~

꾸벅1.gif      꾸벅~~

 

 

추가: 코딩시간보다 글쓰는 시간이 곱절은........ ^_^

 

선학님 유지의 글중에서........

巨山4.png

 

댓글 [21]

너는너나는나요

2023.07.02
09:40:36

감사합니다

삐쟁이

2023.07.02
10:00:44

감사합니다.

광풍제월

2023.07.02
10:05:35

수고하셨습니다.

하늘소

2023.07.02
10:25:40

항상 노고가많으십니다.

건강도 잘 추스리시길 바랍니다.

우인

2023.07.02
10:29:29

수고많이하셨습니다.

상발이

2023.07.02
10:34:55

수고하셨습니다.

지니제스트

2023.07.02
10:42:37

;~ #include <EditConstants.au3>

;~ #include <GUIConstantsEx.au3>

;~ #include <StaticConstants.au3>

;~ #include <WindowsConstants.au3>

;~ #include <ButtonConstants.au3>

 

Global Const $WS_EX_ACCEPTFILES = 0x00000010

Global Const $BS_ICON = 0x0040

Global Const $GUI_EVENT_DROPPED = -13

Global Const $GUI_DROPACCEPTED = 8

Global Const $GUI_EVENT_CLOSE = -3

 

위에 인클루드가 많아서 필요한 상수만 끄집어 내서 사용하시면 좀더 리소스를 줄일 수 있지 않을가 생각해봅니다. ^^

빨강모자

2023.07.02
10:44:58

좋은팁입니다.

회우님들중 독자분들께서 관심있는 분이시라면 좋은 정보가 되지 싶습니다.

함께해 주시어 고맙습니다...  꾸벅~~

cungice

2023.07.02
10:55:57

수고 많으셨습니다. 감사합니다.

레마클로

2023.07.02
11:26:17

Me too.

오토핫키 초보자인 저도 간단 예제 올려봅니다.

 

;Drop Picture Files in this Window.ahk

 

Gui, Add, Picture, 0x1000 vMyPic w640 h480, `n`n`n`t`t`tDrop Picture Files in this Window

Gui, Show,, Drop Picture Files in this Window

Return

 

GuiDropFiles:

     GuiControl,, MyPic, %A_GuiEvent%

Return

 

GuiClose:

     ExitApp

Return

빨강모자

2023.07.02
11:41:00

여윽씨........ 울 레마님........... 홧팅하세요~~~~~~~

은하리

2023.07.02
12:34:04

고맙습니다,수고많았습니다.

lyj

2023.07.02
12:38:07

수고 많으셨습니다.

밤생이

2023.07.02
16:23:49
수고하셨습니다.

빠송

2023.07.02
16:28:47

수고 많이 하셨습니다.

감사합니다.

신신라면

2023.07.02
19:34:33

수고 많으셨어요.

dd123

2023.07.02
20:42:35

항상 수고 하심에 놀라울 따름입니다.

이밤 편안하시고 행복한 꿈 꾸세요 ~ ^^

 

거스

2023.07.02
22:15:23

수고하셨습니다.

개골구리

2023.07.03
02:02:36

수고많이하셨습니다.

REFS

2023.07.03
06:12:01

감사합니다.

rthgh

2023.07.03
12:05:43

수고하셨습니다

List of Articles
[공지] 스크린샷 업로드 유의사항 3
XE1.11.6 Layout1.4.8