Decls Frage
Übersicht

norcBetreff: Decls Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt es eine Möglichkeit, ein anderes Blitzprogramm zu beenden?
folgende Situation: Level1.exe startet Level2.exe noch im Fullscreen mode Level2.exe startet auch (ebenfalls Fullscreen), aber level1.exe bleitbt auf der Taskleiste minimiert eingefrohren, bis irgendwer daraufklickt, worauf es nocheinmal in den Fullscreenmode geht, um dann das letzte Kommando (End) auszuführen. Jaja, ich weiss, wenn ich LEvel1.exe zuerst in windowed Mode zurückschalte, ist multithreading möglich. Das will ich aber nicht! Ich will, dass 2 Fullscreenproggies nacheinander laufen, ohne das Desktop zwischendurch anzuzeigen. Was gibt's da für möglichkeiten? Habe mir gedacht, mittels eines Api-Calls das erste Exe "abzuschiessen" wäre am einfachsten. Leider gehen Befehle wie etwa "EndTask" erst ab Win2000. Gibt's Alternativen? Danke! |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Klar geht das über die WinAPI. Du brauchst lediglich den Handle deiner Anwendung, dann kannst du CloseWindow() oder SendMessage( WM_CLOSE ) verwenden bzw es geht auch mit TerminateProcess nur wär mir das, zu implementieren, in BlitzBasic ehrlich gesagt zu viel Arbeit. Das dumme ist nur, dass, bevor die Anwendung beendet wird, dieselbe zuerst in den Windowed Modus umschaltet und du den Desktop klar und deutlich erkennen kannst. grüße |
||
http://bl4ckd0g.funpic.de |
norc |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
CloseWindow habe ich versucht, funzt nicht. Ebenso DestroyWindow. Ich denke, diese Kommandos funzen nur, wenn das zu schliessende Window ein Child des Callers ist, oder?
Hast du ein funktionierendes Beispiel? |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Doch geht das, zur Not versuchst du SendMessage, aber das kommt alles auf gleiche raus. Keine Ahnung, warum es bei dir nicht funktioniert, aber im Normalfall klappt es. Ein Beispiel hab ich leider nicht zur Hand und ich bin ein fauler Mensch! ![]() grüße |
||
http://bl4ckd0g.funpic.de |
norc |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich daran denke, wieviele Stunden ich schon anderen Blitzers geholfen habe. Und selber habe ich höchst selten Fragen. Aber hier brauch ich echt mal Hilfe.
Ein Fullscreen startet ein zweites Fullscreen und schiesst das erste dann ab. Eigenlich recht einfach auszuprobieren. |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Soll das nun ein Vorwurf sein? Du hast Tipps genug um dir selbst was zusammenzubasteln, also setzt dich ran. Ich kann dir nur sagen, das du um deinen Desktop nicht herumkommst, den wirst du garantiert sehen. Wenn du schon neun Stunden am Tag programmiert hättest, dann hättest du auch nicht große Lust mal das ein oder andere Beispielsprogramm zu schreiben, glaub mir! grüße |
||
http://bl4ckd0g.funpic.de |
norc |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Halb so wild.
SendMEssage funzt! SendMessage(hwnd,$10,0,0) und in der user32.decls SendMessage%(hWnd%,Msg%,wParam%,lParam%):"SendMessageA" Danke! |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Norc......
nu ist aber dein Ansinnen ja auch nicht umbedingt für jederman klar. Zwei einzelne Exe zu starten, hintereinander in Blitz macht beim erstmaligen hinlesen auch nicht so richtig Sinn. Und dann noch um 6.32 antworten ist harte Materie. Kurtz um.... denke daran das du in NT Systemen die Berechtigung zum schliesen benötigst. Unter ME funktioniert das mit SendMasage sogar gelegentlich garnicht. Und dann wäre da noch der GrafiKtreiber. Einige wechseln automatisch in den Desktop wenn du einen neuen Screen öffnest. Ich selber habe mir indes damit geholfen, den DC des Desktop holen. Den Inhalt zwischenspeichern. DC mit 0 löschen = Desktop Schwartz, DC zugriff sperren, und wenn die letzte Exe ausgefürt ist den DC wider füllen und zulassen. Spater bin ich dann darauf gekommen die Exe nicht mit ExeRun sonder mit CreateProcess zu starten. Dann kann man sogar bei offenen Fullscreen eine andere Exe darauf zugreifen lassen. War aber auch nicht das gelbe vom Ei. Offt popte die TaskLeiste in den Vordergrund. Ich für meinen Teil habe den Schluss daraus gezogen. Zwei Exe hintereinander in BB sind nicht akzeptabel. Aber wenn du mir sagst wozu du das machen must. Denn du hast ja einen konkreten Grund dafür. Fieleicht kommt mir ja eine Idee. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann tft leider nur bestätigen.
SendMessage bringt bei mir (Windows ME) eine Memory Access Violation. |
||
solitaire |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group