Unity | 트레이에 창을 숨기고 작업 표시줄에 icon을 표시하지 않음
2665 단어 Unity
사용된 플러그인: (Plugins 폴더에 놓고 각 버전을 다운로드하려면 클릭)
using System;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
public class LayoutManager : MonoBehaviour
{
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
private const int SW_HIDE = 0; //hied task bar
private const int SW_RESTORE = 9;//show task bar
private static System.Windows.Forms.NotifyIcon _notifyIcon = new System.Windows.Forms.NotifyIcon();
private static int _width = 100, _height = 100;
public Button btn;
private IntPtr window;
private void Start()
{
btn.onClick.AddListener(delegate
{
HideTaskBar();
});
}
public void HideTaskBar()//
{
try
{
window = GetForegroundWindow();
ShowWindow(window, SW_HIDE);
_notifyIcon.BalloonTipText = "AIScanner1.1.0";//
_notifyIcon.Text = "AIScanner";//
_notifyIcon.Visible = true;//
_notifyIcon.Icon = CustomTrayIcon(Application.streamingAssetsPath + "/icon.png", _width, _height);//
_notifyIcon.ShowBalloonTip(2000);//
_notifyIcon.MouseClick += notifyIcon_MouseClick;//
}
catch(Exception e)
{
Debug.Log(e.ToString());
}
}
private static System.Drawing.Icon CustomTrayIcon(string iconPath, int width, int height)
{
System.Drawing.Bitmap bt = new System.Drawing.Bitmap(iconPath);
System.Drawing.Bitmap fitSizeBt = new System.Drawing.Bitmap(bt, width, height);
return System.Drawing.Icon.FromHandle(fitSizeBt.GetHicon());
}
private void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)//
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
_notifyIcon.MouseDoubleClick -= notifyIcon_MouseClick;
_notifyIcon.Visible = false;
ShowWindow(window, SW_RESTORE);
}
}
private void OnDestroy()
{
_notifyIcon.MouseDoubleClick -= notifyIcon_MouseClick;
}
}
포장할 때 Unity->Player Setting->Scripting Runtime Version과 APi Compatibility Level 두 가지 옵션을 주의하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
photonnetwork.instantiate에서 gamepobject 유형을 생성 한 다음 상태 및 값을 참조하는 방법주로 마지막 기사에서 일어난 일의 수정입니다. 지난번↓ 그럼 주제입니다. (타이틀이 정리되어 없어서 죄송합니다) 우선 전회의 Illegal view ID:0입니다만 photonnetwork.instantiate를 사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.