Auf Screen von "fremden" Spiel zeichnen?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
OK, dann wär das (mit der 1) ja geklärt. Und wie geht's weiter?
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Ich weiss nicht, ob ich jetzt den falschen Ansatz habe,
ich habe mir mal einen einfaches Crosshair programmiert das ich über
ein 3D Fullscreen gelegt habe.
Ich habe dazu einfach SetPixel_() genutzt, Text könnte man auch mit
TextOut_() setzen.
Das ist sicherlich nicht die "schönste" Variante, funktioniert aber flimmerfrei.
Für umfangreichere grafiken ist es womöglich nicht mehr so geeignet für kleinere Sachen reicht es aber aus, komt sicher auch auf CPU Auslastung an.
MSDN CDC Member Functions
http://msdn2.microsoft.com/en-us/librar ... S.71).aspx
ich habe mir mal einen einfaches Crosshair programmiert das ich über
ein 3D Fullscreen gelegt habe.
Ich habe dazu einfach SetPixel_() genutzt, Text könnte man auch mit
TextOut_() setzen.
Das ist sicherlich nicht die "schönste" Variante, funktioniert aber flimmerfrei.
Für umfangreichere grafiken ist es womöglich nicht mehr so geeignet für kleinere Sachen reicht es aber aus, komt sicher auch auf CPU Auslastung an.
MSDN CDC Member Functions
http://msdn2.microsoft.com/en-us/librar ... S.71).aspx
PB 5.x & Win 7 64Bit
- Programie
- Beiträge: 1280
- Registriert: 06.08.2005 22:56
- Computerausstattung: https://www.sysprofile.de/id160800
- Wohnort: Gernsbach
- Kontaktdaten:
So etwas Ähnliches möchte ich machen.real hat geschrieben:Schau Dir mal den Speedometer-Mod fuer GTA an, in dem ein Analog-Tachometer in's Spiel eingeblendet wird. (Der Quellcode ist verfuegbar unter http://www.pawfectfilms.com/mods/speedo_src.zip)
Es soll nicht nur ein Text/String auf dem Screen des Spiels dargestellt werden, sondern auch ein Bild (Wie bei dem Speedometer).
Aber es gibt noch ein "kleines" Problem: Ich verstehe kein C#-Code (oder was das ist).

Aber sonst: Danke für die Antworten!

PS: Kann man den C#-Code zu PureBasic-Code irgendwie "übersetzen"?
Achja, das mit dem Overlay hat leider nicht funktioniert.

Schon klar,real hat geschrieben:Du hast aber schon bemerkt, dass Programmie in ein anderes Spiel reinzeichnen will.
Und da geht das, was Du vorgeschlagen hast, definitiv nicht (und schon gar nicht flimmerfrei).
1. definitiv nicht
2. schon gar nicht flimmerfrei
Komisch ist nur dass es bei mir geht,
aber die Antwort hast Du sicherlich schon:
1. es gibt mich gar nicht
2. schon gar nicht im PB Forum.

Du hättest vielleicht zuerst einfach mal nach Code fragen sollen

Das hier ist ein ColorBot mit automatischer Positionierung der Maus
und zeichnen eines Fadenkreuzes in jeder beliebigen 3D FullScreen-
Anwendung.
Man starte das Spiel, dann diese Anwendung, scharf gemacht wird das Tool beim ersten Rechtsklick mit der Maus.
Enjoy.
Code: Alles auswählen
Titel$= "NameDesSpiels" ;Titel der Anwendung/Fenstername (Taskmanager)
;OpenConsole()
;EnableGraphicalConsole(#True) ;Bildschirmgrösse (ich hatte es auskommentiert, weiss nicht mehr warum)
;wx.w=GetSystemMetrics_(#SM_CXFULLSCREEN)
;wy.w=GetSystemMetrics_(#SM_CYFULLSCREEN)
wx=1280
wy=1024
WindowID = FindWindow_(#Null, Titel$)
dc= GetDC_(WindowID)
center_x = wx/2-1
center_y = wy/2-2
halfsize = 20/2
Repeat
If GetAsyncKeyState_(#VK_RBUTTON)<>0
If counter=0
WindowID = FindWindow_(#Null, Titel$)
If WindowID = 0
Debug "Window not Exists"
EndIf
WindowDC.l = GetWindowDC_(#Null)
counter=1
EndIf
sleeptime = 1
range=16
r=8
While GetAsyncKeyState_(#VK_ESCAPE) <> -32767
For i= 0 To range
For k= 0 To range
x=center_x-r+i
y=center_y-r+k
Colour = GetPixel_(GetDC_(WindowID), x, y)
If colour=16185078
movex=r-range+i
movey=r-range+k
mouse_event_(#MOUSEEVENTF_MOVE, movex,movey, 0, 0 )
;Sleep_(sleeptime)
EndIf
For X2= center_x-range/2 To center_x+range/2
SetPixel_(dc, X2, center_y-range/2, RGB(55,100,200))
SetPixel_(dc, X2, center_y+range/2, RGB(55,100,200))
Next
For Y2= center_y-range/2 To center_y+range/2
SetPixel_(dc, center_x-range/2,Y2, RGB(55,100,200))
SetPixel_(dc, center_x+range/2,Y2, RGB(55,100,200))
Next
ReleaseDC_(WindowID, dc)
;Delay(1)
Next
Next
Wend
EndIf
;Delay(1)
ForEver
;CloseConsole()
End
Zuletzt geändert von K.Putt am 29.05.2007 01:47, insgesamt 2-mal geändert.
PB 5.x & Win 7 64Bit
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22