Window Title der exe durch DLL ändern

iderise

Mitglied
Hallo^^

Ich hätte da mal wieder eine Frage zu der ich irgendwie nichts finde

Alsoo...


Ich Importe eine DLL in eine Exe

Diese Dll soll eine funktion haben den Titel der Exe zu ändern

Wie stelle ich das am besten an?
(der titel muss nur einmal geändert werden)
 
Hallo,
du kannst den Titeltext verändern, indem du FindWindow() mit der Kombination von WM_SETTEXT verwendest.

Und auf die DLL kannst du mit einem Zeiger zugreifen, indem du GetProcAddress verwendest.
Die DLL-Funktion exportierst du mit:
Code:
EXTERN_C BOOL __declspec(dllexport) MeineFunktion();

// Edit:
Es muss nicht "BOOL" sein, es kann z.B. auch void oder int sein.
 
Ok da besteht nur ein problem...

Wenn die Exe startet ist die dll schon durchgelaufen....

Wie stell ich das an das die dll noch läuft bis die exe ihr Fenster hat?
 
Soweit ich das nicht falsch verstehe müsste die EXE doch diese Funktion aufrufen?
Ich schreibe diese DLL nur in die Importtable per StudPE

Also läuft die DLL durch und danach läd die EXE

oder?
 
Soweit ich das nicht falsch verstehe müsste die EXE doch diese Funktion aufrufen?
Aber das geschieht nicht automatisch. Das erledigst du als Programmierer.

Ich schreibe diese DLL nur in die Importtable per StudPE
Also läuft die DLL durch und danach läd die EXE
oder?
Ich habe jetzt keine Ahnung, was "StudPE" ist, üblicherweise bindest du eine Import-Bibliothek (.lib) ein und hast zusätzlich noch einen Header, in welchem die exportierten Funktion aufgelistet sind, welche du dann an beliebiger Stelle in der EXE verwenden kannst. Beim Start versucht zwar die EXE die DLL zu laden, macht aber sonst nichts weiter damit.

Gruß
MCoder
 
Ich müsste grad mal Anmerken das ich den SRC der EXE nicht habe.
Ich schreibe die dll lediglich in die import table wobei beim start DllMain abgefahren wird und danach die exe Startet
 
Ich müsste grad mal Anmerken das ich den SRC der EXE nicht habe.
Ich schreibe die dll lediglich in die import table wobei beim start DllMain abgefahren wird und danach die exe Startet
Damit wird die Sache etwas klarer :)
Dann soll das Ändern des Titels also in der DLLMain passieren. Da könntest du einen Thread starten, der solange wartet bis das Fenster der EXE "hochkommt", dann den Titel ändert und sich beendet.

Gruß
MCoder
 
Aber normal kommt doch das EXE Fenster erst wenn die DLL ihre Arbeit evrrichtet hat?
Wenn ich nun aber Threads mache müssten die ja von der DLL wieder geschlossen werden...
Oder können Threads sich auch selbst 'vernichten'?

Denn zum selbst vernichten finde ich nichts..
 
Aber normal kommt doch das EXE Fenster erst wenn die DLL ihre Arbeit evrrichtet hat?
Deswegen die Idee mit dem Thread. Da kann die DLLMain ohne Blockierung durchlaufen werden und danach wird die EXE gestartet.
Wenn ich nun aber Threads mache müssten die ja von der DLL wieder geschlossen werden...
Oder können Threads sich auch selbst 'vernichten'?
Wenn sich die Thread-Funktion nach getaner Arbeit beendet, wird damit auch der Thread geschlossen.

Gruß
MCoder
 
Zurück