기능설명
난잡한 URL 열기 / 폴더 열기 / 프로그램 열기를 하나로 묶은 런처 프로그램을 개발했다. PC방에서 보던 그 런처라고 생각하면 된다. 사용자 편의에 맞게 커스텀하여 사용하니 편하고 좋다. TopMost 설정으로 프로그램 상단에서 항상 실행된다. 배경 투명화된 곳은 클릭이 가능해진다.
TopMost 주의사항
새로 생성된 프로세서에 한해서는 TopMost가 동작하지 않는다. 그이유는 다음링크를 참조하자.
What if two programs did this? | The Old New Thing (microsoft.com)
동작설명
Visual Studio 2019 C# Form 프로젝트 기준
1. 버튼 생성
2. 더블클릭
3. 클릭이벤트 함수를 다음과 같이 작성
(역슬래시('\') 문자는 특수기호로 2번 씩 기입해줘야 하나의 특수문자로 인식)
(ProcessStartInfo에 URL / 실행 파일 주소 / 폴더 주소를 입력)
버튼 클릭 이벤트 코드(클릭시 URL 파일 폴더 실행)
#Form1.cs
namespace ProjectName
{
public partial class Form1 : Form
{
...
#버튼 클릭 시 실행할 이벤트
private void button14_Click(object sender, EventArgs e)
{
#URL / 파일 / 폴더 경로 입력
var ps = new ProcessStartInfo("C:\\Program Files (x86)\\Microsoft Office\\Office16\\OUTLOOK.EXE")
{
UseShellExecute = true,
Verb = "open"
};
Process.Start(ps);
}
...
}
}
폼 투명화 및 위치조정 코드(배경 제거된 부분 클릭가능)
#Form1.cs
namespace ProjectName
{
public partial class Form1 : Form
{
...
#폼이 시작될 때
private void Form1_Load(object sender, EventArgs e)
{
#투명화할 색상 및 투명화키 지정
this.BackColor = Color.LimeGreen;
this.TransparencyKey = Color.LimeGreen;
#폼 위치 지정
this.Left = (this.Width / 2);
this.Top = 0;
}
}
...
}
항상 위 체크박스 코드(온 오프로 설정)
#Form1.cs
namespace ProjectName
{
public partial class Form1 : Form
{
...
#Form 최초 로딩
private void Form1_Load(object sender, EventArgs e)
{
#체크로직
isChecked(checkBox1.Checked);
}
...
#체크 이벤트 시 실행할 함수
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
isChecked(checkBox1.Checked);
}
...
# 체크 시 TopMost 속성 활성 비활성
public void isChecked(bool Checked)
{
if (Checked)
this.TopMost = true;
else
this.TopMost = false;
}
...
}
}