[ERLEDIGT] Immer sichtbare Form (mit Label)

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Spear-X.

    [ERLEDIGT] Immer sichtbare Form (mit Label)

    Hy

    Also bei einigen Spielen giebt es keine Uhr ingame (zb. Counter-Strike/Source, HL2...)
    Ich habe mir per KeyHook eine Application programmiert mit der Ich eine MsgBox aufrufe (zum Testen ^^)
    Dieser ist auf den WindowsKey (die Windowstaste für das Startmenü) gebunden

    Ich habe ein Panel (dort wird nach drücken diese Taste die aktuelle Zeit eingelesen (Label))

    Wie könnte ich das jz am besten machen das die Form mit dem Label angezeigt wird über dem Spiel
    Zb bei Fraps (ich weiss nicht ob ihr es kennt) werden die FPS oben rechts angezeigt. Immer.
    Ist aber alles extern...hat nichts mit dem Spiel zu tun...

    Es ist auch kein Problem wenn ich die Zeit per GDI zeichen muss.

    Irgend einen Anhaltspunkt/Hilfe

    Danke schon mal

    PS: hier ein bild (rechst oben die FPS :D)
    mikestutorials.com/ss/3.JPG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Spear-X“ ()

    auf die idee kam ich auch erst, lies aber ab, da er es vermutlich in spielen nutzen will. um das zu schaffen, muss er es praktisch mit direct x über das spiel zeichnen, bzw den stream vn direct x abfangen, und seinen code mit einfügen
    Ich hab ein bisschen in meinem VB2005 Buch gestöbert 3870 seiten Oo
    Und bin auf System.Drawing.Graphics.FromHwnd() gekommen.
    Eig eine Intelligente lösung :)

    Also ich hab das bei Notepad getestet und es ging!
    Ich werde es mal bei Source Probieren!

    Hier der Code für andere:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Int32
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim W_Hwnd As IntPtr
    5. ' Counter-Strike: Source/Half-Life 2/... suchen
    6. For Each pr As Process In Process.GetProcesses
    7. If pr.ProcessName = "hl2.exe" Then
    8. W_Hwnd = pr.MainWindowHandle
    9. Exit For
    10. End If
    11. Next
    12. If W_Hwnd <> 0 Then
    13. Dim g As Graphics = System.Drawing.Graphics.FromHwnd(W_Hwnd)
    14. ' Zum Test eine Elipse Zeichnen
    15. g.DrawEllipse(New Pen(Color.Black, 5), New Rectangle(50, 50, 100, 100))
    16. Else
    17. MsgBox("Fenster nicht gefunden!")
    18. End If
    19. End Sub
    20. End Class


    Danke td an alle!!


    HAT GEKLAPPT einfach in einen Timer gepackt ;)
    Danke an alle :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Spear-X“ ()