2014-12-16 4 views
-1

어떻게하면 VB.NET에서 "게임 안전"과 같은 알림을 화면에 표시 할 수 있습니까?VB.NET 게임 보안 알림을 어떻게 팝업 할 수 있습니까?

예 : "로그 아웃 될 때까지 30 분 남았습니다!".

알림은 게임에서 집중해서는 안되며 (예 : "도용 입력") 알림은 5-10 초 정도만 표시되고 그 다음에 사라집니다.

알림은 Punkbuster, VAC 등과 같은 예열기에 대해서도 안전해야합니다.

아이디어가 있으십니까?

+0

이것은 무엇을 의미합니까? _ anticheats에 대해 이야기 할 때 알림도 안전해야합니까? _? 예열기가 그것을 발견하거나 볼 수 없어야한다는 뜻입니까? –

+0

아니요. 알림을 표시하는 "의심스러운"방법을 사용해서는 안되기 때문에 알림이 표시됩니다. 예를 들어 EAC 스크린 샷과 같이 표시되는 벌금 알림 메시지는 '로그 오프 될 때까지 30 분 남았습니다'와 같은 비공개 정보 만 포함됩니다. 그게 속임수로 감지되어서는 안된다는 것입니다. 예를 들어 XFIRE와 같은 일부 오버레이 메뉴는 이전에 오탐 (false positive)을 유발했지만 예열 (antheheat) 회사는 XFIRE를 허용 목록에 포함 시켰습니다. 따라서 내 소프트웨어는 허용 목록에 없기 때문에 트리거합니다. –

+0

NotifyIcon Balloontip을 사용하면 어떨까요? – sabre

답변

2

"게임 안전"에 대해 알지 못해서 게임이 경고를 유발하기 위해 무엇을 찾고 있는지 알 수 없습니다.

ShowWithoutActivation()을 재정의하고 true를 반환하면 양식에 포커스가 표시되지 않습니다. 또한 WS_EX_TRANSPARENT 확장 창 스타일을 설정하여 모든 마우스 메시지가 문자 그대로 양식을 통과하도록 할 수 있습니다. 밑에있는 앱은 양식이 있다는 것을 알지 못합니다. 마지막으로 불투명도를 설정하여 부분적으로 볼 수 있습니다. 오 ... 타이머가 10 초 후에 닫힙니다.

Public Class frmNotification 

    Private WithEvents Tmr As New System.Windows.Forms.Timer 

    Private Sub frmNotification_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Me.Opacity = 0.5 ' Make it so you can see thru it partially 

     Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 

     ' make it appear in the bottom right of the screen 
     Me.StartPosition = FormStartPosition.Manual 
     Dim rc As Rectangle = Screen.GetWorkingArea(Me) 
     Me.Location = New Point(rc.Right - Me.Width, rc.Bottom - Me.Height) 

     Tmr.Interval = TimeSpan.FromSeconds(10).TotalMilliseconds 
     Tmr.Start() 
    End Sub 

    Private Const WS_EX_TRANSPARENT As Integer = &H20 

    ' Make all mouse events PASS RIGHT THRU IT: 
    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams 
     Get 
      Dim cp As CreateParams = MyBase.CreateParams 
      cp.ExStyle = cp.ExStyle Or WS_EX_TRANSPARENT 
      Return cp 
     End Get 
    End Property 

    ' Show it without activating it: 
    Protected Overrides ReadOnly Property ShowWithoutActivation() As Boolean 
     Get 
      Return True 
     End Get 
    End Property 


    Private Sub Tmr_Tick(sender As Object, e As EventArgs) Handles Tmr.Tick 
     Me.Close() 
    End Sub 

End Class 
+0

Didnt work. 클릭 투명한 알림을 표시하지만 알림은 여전히 ​​게임에서 "훔쳐갑니다". 예를 들어 게임이 작업 표시 줄로 이동합니다 (게임에서 alt-tabbing과 동일한 효과). 통지가 지연되어 응용 프로그램이 시작되지 않았는지 확인하십시오. 그리고 그것의 원인이되는 통지의 보여주는. –

+0

앱은 어떻게 시작하나요? 다른 형태로? 지연을 위해 무엇을 사용 했습니까? –

+0

동일한 양식이 없지만 표시된 항목에 처음으로 표시된 항목이 실행되었는지 확인합니다. 그런 다음 양식을 숨 깁니다. 양식을 보여줄 시간이되었을 때, 나는 둘 다 시도했다 .Show/me.Hide, 그리고 Me.visible = false/Me.visible = true 양식. 지연 타이머로, 나는 양식 (tmr)을 숨기기 위해 사용되는 것과 동일한 타이머를 사용하지만 대신 그에 따라 간격을 변경합니다. Visible = true 또는 Show()는 게임 "alt-tabs"를 출력합니다. 예를 들어 CS : GO로 직접 시도하십시오. –

관련 문제