smartthings를 st 공식 api사용하지 않고, api와 같은 형태로 사용하기(api의 문제점 포함) 삼성 가전의 스마트싱스를 개발로 가져오면서 몇가지 불편한점이 존재-API 사용이 어렵다(가입 인증 WebHook등등)-공식 API를 사용된 순간 API 서버를 타야하기때문에 반응속도도 느리고, 동기화에도 큰 문제가 생긴다-스마트싱스 공식앱만이 로컬환경(로컬망)에서 동작하기때문에 속도가 빠르다 이정보를 종합했을때 기본적인 방법으로는 내가 개발한 앱이나 환경에서 빠른 속도로 쓸 방법이 없었다그래서 고민 끝내 생각해낸 결과 1.윈도우 ST앱의 자동화를 활용2.해당화면을 늘 유지 할 수있게 만든 후 좌표를 활용한 매크로를 개발3.해당 좌표와 기능을 DB(또는 메타데이터)로 저장하여 외부 프로토콜을 ..
[autoHotKey/c#] 오토핫키와 c#을 이용한 화면 교체(change Topmost) 프로젝트 진행 중 UDP 신호에 따라서 사용프로그램 두개를 교체해야되는 이슈가 생겨서 AutoHotKey를 이용하여 해결하였다. 1.화면 최상위처리(AutoHotKey) 비발디브라우저를 최상위를 가져오는건데 해당 프로세스 정보를 정확히 가져오기위해서는 Autohotkey Dash에 있는 Window Spy를 이용하여 해당 프로세스를 확인 한 뒤 스크립트를 작성하였다. # 1번 프로그램 최상위로 가져오기 -브라우저 활성화 WinActivate, ahk_exe vivaldi.exe return # 2번 프록그램 최상위로 가져오기 -블랙화면 활성화 WinActivate, MainWindow return 그리고 블랙화면..
adb를 이용한 안드로이드 쉘 사용방법(with source) [윈도우 기준] adb 설치 [아래 링크 참고] https://kibua20.tistory.com/165 안드로이드 adb 설치 및 설정 방법 Android ADB (Android Debug Bridge)는 PC와 스마트 폰 간에 통신을 할 수 있는 명령어도 도구입니다. 안드로이드 개발자에게는 apk 설치, log 출력의 등의 개발에 많은 활동에서 adb를 거의 매일 사용하고 있 kibua20.tistory.com [다운로드 링크] https://developer.android.com/studio/releases/platform-tools?hl=ko SDK 플랫폼 도구 출시 노트 | Android 개발자 | Android Developers ..
출저:https://rito15.github.io/posts/open-cmd-as-admin/ @echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( echo. goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "..
[c#/wpf/winform] 화면캡쳐하기 #캡쳐화면 #코드 int width = 2160; int height = 1440; Bitmap bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); Graphics gr = Graphics.FromImage(bmp); gr.CopyFromScreen(0, 0, 0, 0, bmp.Size); //캡쳐 bmp.Save("test.png", ImageFormat.Png); // "test.png"로 파일 저장 #c# #wpf #winform #화면캡쳐 #capture #screen
[c#/wpf] 윈도우 해상도 구하기(멀티 디스플레이 포함) Screen[] sc = Screen.AllScreens; int width_size = sc[0].WorkingArea.Width; int height_size = sc[0].WorkingArea.Height; int width = 0; sc.ToList().ForEach(a => width += a.WorkingArea.Width); #wpf #c# #멀티디스플레이 #해상도구하기
[wpf/winform/c#/unity] serial / udp 받아서 키보드 이벤트 발생(hooking) 풀코드 제공 #serial - 이벤트 방식 receive #udp - 이벤트 방식 receive #키보드 훅 싱글톤 함수 (출저: https://rito15.github.io/posts/cs-global-key-hook/) public class SerialHelper { private static SerialHelper _instance { get; set; } public static SerialHelper Instance { get { return _instance ?? (_instance = new SerialHelper()); } } SerialPort serial; public deleg..
[wpf/c#] 페이드 인 아웃 이펙트 구현 #스토리보드 생성 #스토리보드 정의 후 기능 실행 -fadeInOut() 실행 -fadeOut 후 fadeIn 실행 Storyboard fadein; Storyboard fadeout; void Init() { fadein = FindResource("Fadein") as Storyboard; fadeout = FindResource("Fadeout") as Storyboard; this.fadeout.Completed += Fadeout_Completed; //까매지는거 fadetimer.Interval = TimeSpan.FromSeconds(2); fadetimer.Tick += fadetimer_Tick; } private void Fadeout_Com..
[wpf/c#] vlc player 개발 및 라이브러리 사용법 #패키지 추가 -Vlc.DotNet.Wpf -Vlc.DotNet.Core #Control 추가 Xaml # c# 초기화 public VlcMediaPlayer video; void InitVlc() { var currentAssembly = Assembly.GetEntryAssembly(); var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName; var libDirectory = new DirectoryInfo(System.IO.Path.Combine(currentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "wi..