Seite 1 von 2

Shortcut ohne fenster

Verfasst: 21.01.2009 09:16
von kob
Ich habe ein problem
ich möchte ein programm schreiben das auf knopfdruck ein
aufgenomenses bild auf einen bordertlessed window anzeigt .
das problem ist , das sich das fenster erst noch öffnen soll wen ich+
die taste drücke . das soll die lehrer ablenken wen ich greade in info spiele :mrgreen:

Verfasst: 21.01.2009 12:03
von Kaeru Gaman
na schön... dann denk mal nach.

das fenster soll sich auf knopfdruck öffnen, also angezeigt werden.
... muss es denn inexistent sein, um nicht angezeigt zu werden?

Verfasst: 21.01.2009 12:33
von Tafkadasom2k5
Empfäng ein unsichtbares Fenster denn Tastendrücke, auch wenn eine andere Applikation mit Fenster zur Zeit über dem unsichtbaren Fenster liegt?

Eigentlich ist es ja so, dass nur Fenster mit Fokus #WM_ - Nachrichten empfangen, oder ist es bei unsichtbaren anders?

thx

Verfasst: 21.01.2009 12:41
von kob
könte man das nicht mit hidewindow machen ?

Re: thx

Verfasst: 21.01.2009 12:50
von Tafkadasom2k5
kob hat geschrieben:könte man das nicht mit hidewindow machen ?
Absolut ;)

Also erstellen, "Anzeigen", und sofort hiden. Dann mit AddKeyboardShortCut die jeweiligen "Anzeige"/"Versteck"- Routinen auslösen/verknüpfen.

Frage ist nur, ob du die gewünschten Tastenkombinationen empfängst, weil dein Fenster ja nicht unbedingt den Fokus hat.

Notfalls musst du eine Schleife bauen, die alle X Millisekunden GetAsyncKeyState_(#VK_F5) AND GetAsyncKeyState_(#VK_CONTROL) abfragt (F5 + Strg)- das geht dann auch ohne Fokus.

Gr33tz
Tafkadasom2k5

antwort

Verfasst: 21.01.2009 13:03
von kob
Habe mal das greade geschrieben :

Code: Alles auswählen

ExamineDesktops()
hWnd = OpenWindow(#PB_Any,0,0,DesktopWidth(0),DesktopHeight(0),"",#PB_Window_BorderLess)
HideWindow(hWnd,1)
LoadImage(1,"pic.bmp")
CreateMenu(1,WindowID(hWnd))

AddKeyboardShortcut(hWnd,#PB_Shortcut_Tab,1)
MenuItem(1,"")

Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Menu
If EventMenu() = 1
Gosub Fake
EndIf
EndIf

ForEver

Fake : 
HideWindow(hWnd,0)
Repeat
StartDrawing(WindowOutput(hWnd))
DrawImage(ImageID(1),0,0,DesktopWidth(0),DesktopHeight(0))
StopDrawing()
Delay(200)
ForEver
Return
funzt net !!!! mach's mal so wie du kenne
die befele aber net !!! API?

Verfasst: 21.01.2009 13:05
von HeX0R
Das macht man mit RegisterHotKey_()

THX SO MUCH !

Verfasst: 21.01.2009 13:07
von kob
Danke es funktionirt wen ich es so mache !!!!!
Hate schon sein ersten einsatz , mitten in info !!!
lehrer hat toll gekukt !!! THX SO MUCH !!!! :allright: :allright:

Verfasst: 21.01.2009 13:14
von Fluid Byte
Sprache am Abgrund ... :freak:

haha

Verfasst: 21.01.2009 13:52
von kob
Ich weis das meine sprache da am abgrund war . HAHAHA , habe mich
gefreut ist halt cool