 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 10.08.2006, 22:23 Titel: tray |
|
|
kann man ein fbprogramm dazu bringen das es sin ins tray minimiert und im hintergrund unsichtbar weiterläuft? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 10.08.2006, 22:26 Titel: |
|
|
Ja, dafür muss man allerdings mit der WInAPI arbeiten.
Einfach mal im Forum suchen, das Thema gabs schon mal  |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 10.08.2006, 22:38 Titel: |
|
|
winapi ist mir leider noch zu hoch ... schluchz _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.08.2006, 22:56 Titel: |
|
|
was dir ist ein aufruf à la
zu hoch?
winApi ist nicht kompliziert, du brauchst nur die deklaration, z.B.
Code: |
declare sub SchalteTrayEin alias "trayon32"()
|
vor der muss allerdings noch die user32.dll eingebunden werden, aber der code wird immer gleich mitgeleifert...das zeugs kannste dir sogar von microsoft besorgen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 10.08.2006, 23:30 Titel: |
|
|
ich werd mal das tutorial auf freebasic.de genauer studieren _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 28.08.2006, 21:38 Titel: |
|
|
#include "Windows.bi"
Dim hWndConsole As HWND
Dim FensterName$
FensterName$=Command$(0)
hWndConsole = FindWindow(0, strptr(FensterName$))
Sleep 1000
ShowWindow(hWndConsole, SW_HIDE) 'weg ist es
Sleep 1000 'für eine Sekunde
ShowWindow(hWndConsole, SW_SHOW) ' und nun ist es wieder da
Sleep 'und wartet auf einen Tastendruck.
funktionier ja wunderbar. Jetzt wüsste ich nur noch gern wie's funktioniert. Kann mir mal jemand erklären wofür die einzelnen variablen stehen und was die parameter in den funktionen bewirken - der rest versteht sich ja von selbst _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 29.08.2006, 12:48 Titel: |
|
|
Mal sehn, ob ich das noch hinbekomme, letztes Jahr um die Zeit war ich ja noch voll im API-Wahn
Also, Zeile 1: Solltest du mit #INCLUDE nichts anfangen können, sieh dir am besten die Befehlsreferenz an:
Link
In der Datei sind dann alle möglichen deklarationen, die eben Funktionen aus der WinAPI definieren.
Die API (Application Programming Interface) ist nichts anderes als eine riesige Sammlung an Routinen, die dem Progger das Leben erleichtern sollen. (Und das manchmal sogar tun)
Du könntest aber auch ganz einfach so an die 100 000 TYPE, DECLARE und DEFINE-Zeilen in dein Programm schreiben, ist vermutlich einfacher, als dieser INCLUDE-Befehl
(Ach apropos: Den solltest du auch kennen:
http://www.freebasic.de/r.php?s=DEFINE )
Die beiden DIM's:
Du musst wissen, unter Windows bekommt alles eine Nummer, über die es angesprochen werden kann, einen so genannten Handle. Dieser Handle ist die Variable hWndConsole. Tatsächlich ist die Variable vom Typ UInteger, aber in der Windows.bi oder einer anderen Datei, die über die windows.bi mitgeladen wird, heißt's eben
#DEFINE HWND UINTEGER
oder so was ähnliches.
FensterName$ dürfte klar sein. Wen du den Code aber mal variierst, solltest du diese Zeile ändern:
DIM FensterName AS STRING
ist schöner. Suffixe sind nur noch für die Abwärtskompatibilität zu QB da
Jetzt wird ermittelt, wie denn unser Fenster heißt, d.h. was in der Titelleiste steht. Damit COMMAND(0) Funktioniert, muss man im Konsolen-Modus sein.
Siehe http://www.freebasic.de/r.php?s=COMMAND
Für Grafikmodi kann man sich einfach WINDOWTITLE bedienen:
http://www.freebasic.de/r.php?s=WINDOWTITLE
OK, jetzt brauchen wir auch noch das Handle des Fensters, damit wir damit auch spielen können. Und dazu, richtig, gibts den ersten API-Aufruf.
FindWindow ist da ein ganz praktisches Mittel. Der erste Parameter, hier null, ist eigentlich uninteressant. Man könnte hier eine Fensterklasse Spezifizieren, und so die Auswahl ein bisschen einengen, aber das geht zu sehr ins Detail. Mit der null sagen wir der Funktion, dass die Fensterklasse für uns nicht wichig ist. Der Zweite Parameter dagegen interessiert uns schon mehr: StrPtr(FensterName).
Dazu vielleicht erst mal wieder einen Ausflug in die Referenz:
http://www.freebasic.de/r.php?s=STRPTR
und
http://www.freebasic.de/FBtuts.php?zeig=tuts&view=Referenz_Grundlagen-4.~Pointer.txt
Wir sagen also der Funktion, wo im Speicher der Name unseres Programms steht. Und dann schaut die Funktion in der Windows-Liste der registrierten Handles, welcher denn diesen Titel hat, den wir angegeben haben.
Tadaa, wir haben den Handle unseres Fensters, mit dem wir jetzt allen möglichen unsinn anstellen können.
Zum beistpiel den Fenster-Status ändern. ShowWindow ist da unser Mittel. Eigentlich ist es auch eine Funktion, aber die gibt nur zurück, ob das ganze denn Funktioniert hat, oder nicht, und weil man das sowiso sieht, wird der Rückgabewert einfach verworfen.
Der erste Parameter ist wieder die Info, welches Fenster wir denn anfassen wollen. Und der Zweite gibt an, was wir damit anstellen wollen.
SW_HIDE ist dabei einfach irgendeine Zahl.
In der Windows.bi steht nämlich so eine Zeile wie
#DEFINE SW_HIDE &H00234234a
(oder so ähnlich, der Wert ist natürlich frei erfunden)
In der ShowWindow steht, vereinfacht ausgedrückt, so eine art SELECT CASE-Block.
SELECT CASE ShowType
Case 1
' code, der das Fenster versteckt
Case 2
' code, der das Fenster pink einfärbt
...
END SELECT
Du kannst dich mal meinem Tutorial auf www.freebasic.de widmen. Das ist zwar mehr als veraltet (bezieht sich noch auf freeBASIC v0.13, so dass keins von den Examples mehr geht), aber die Hintergrundinfos stimmen immer noch. Und viel wäre nicht zu ändern, damit auch wieder alles passt...
Link:
http://www.freebasic.de/FBtuts.php?zeig=tuts&view=WinAPI_Grundlagen-1.~Vorwort.txt
Naja, mir fehlt trotzdem die Zeit, das zu erledigen...
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 29.08.2006, 13:35 Titel: |
|
|
vielen vielen dank für den aufwand (ich habs verstanden juhu!) _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
noop
Anmeldungsdatum: 04.05.2005 Beiträge: 259
|
Verfasst am: 30.08.2006, 12:00 Titel: |
|
|
Ist der Tray nicht eigentlich der Bereich neben der Uhrzeit in der Taskleiste?
....
Wie ich grade sehe hat da einer mal meinen Thread ausgegraben.
Hier ist er, mit Code von Programmierer, wie man ein Programm in den Tray schickt. Mit Mausabfrage. |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 01.09.2006, 18:18 Titel: |
|
|
Ich darf mal wieder Werbung für mein WinApi-Tutorial auf http://lutzifer.freebasic.de/winapi/ machen, auf denen ich die Grundlagen der WinApi erkläre - und wenn ich wegen Bundeswehr etwas mehr Zeit hätte, hätte ich den Beitrag von Programmierer längst in Form eines Kapitels übernommen....
Gruß
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|