BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- Windows-BreakPoint (http://www.black-board.net/thread.php?threadid=7995)


Geschrieben von Medusa am 21.10.2002 um 18:55:

  Windows-BreakPoint

Hi,
ich suche verzweifelt nach der Funktion, die eine Message-Box aufpoppen lässt, in der man zwischen mehreren Optionen (ja, nein,...) wählen kann. Es ist keine normale Msg-Box, weil sie n anderes Symbol hat.
Ich mein z.b. den Dialog, wenn man ne Datei löscht. Oder wenn man ne Datei schon existiert, und windoofs fragt, ob man se ersetzen will.

Ich bin bis kurz davor gekommen (mit sice) und hab ne stunde durch-getraced. Man sieht dann immer wie sich alles langsam aufbaut. Erst das Fenster, dann die einzelnen Buttons und der Text,... der geht da quer durch User32.dll und da dann tausend verschiedene Funktionen, blabla... nach 20 Calls, die sich in einander verstricken, verliehrt man den überblick, und gibt auf großes Grinsen

Vielleicht ists ja auch gar keine Msg-Box sondern n normales Frame. Dann brüchte ich die Funktion, wie ein Command-Button erstellt wird.

Was will der??
---> Er will die Beschriftung zweier Buttons ändern, bzw. vertauschen

.plz help me
.thx großes Grinsen



Geschrieben von CDW am 21.10.2002 um 20:16:

 

soweit ich weiß, gibts nur eine:
MessageBoxA
einfach mal in der reference tabelle nachsehen,
ansonsten wirds vom Programm aus mit
call kernel32.MessageBox
aufgerufen



Geschrieben von phlox81 am 21.10.2002 um 21:38:

 

MessageBox(hwnd,"test","test",MB_YESNO )
Ist glaube ich das was du suchst...

Devil



Geschrieben von Medusa am 21.10.2002 um 22:00:

 

Ok, hab gesehn, dass das Teil ne Dialog-Box.
z.b. DialogBoxParamA ruft der u.a. auf (kp was das is^^)
Irgendwo müssen ja die 2 Command-Buttons "erstellt" werden.
In der Tabelle gibts nur Folgende Funktionen zu Dialogbox:
DialogBoxIndirectParamA
DialogBoxIndirectParamW
DialogBoxParamA
DialogBoxParamW

und das ganze wird dann irgendwie (da bin ich vor der ausgabe drinne gelandet) mit AnyPopup angezeigt. Es gibt ja Dlg-Boxen mit 4 Optionen, und mit 3,... Auch welche mit verschiedenen Aufschriften auf den Buttons. Werden aber alle so erstellt. Also müssen doch irgendwo die Aufschriften (z.b.) 'ja' und 'nein' sein. Aber sch find die halt net.
unglücklich *heul*



Geschrieben von Compuholic am 21.10.2002 um 23:12:

 

Für den Standard "Ja", "Nein" Auswahldialog verwendet man den Aufruf den Devil81 schon gepostet hat. Wenn Du ein anderes Symbol in dem Dialog haben willst kannst Du es ebenfalls übergeben (OR Verknüpfung).
Da wären z.B. MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP, MB_ICONHAND, etc...

Die MessageBox liefert dann entweder eine Integer IDYES oder IDNO zurück.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Beispiel:

int result;
result = MessageBox(hWnd, "Programm wirklich beenden", "Bestätigung...", MB_YESNO | MB_ICONQUESTION);
switch(result)
{
case IDYES:
//mache irgendwas
case IDNO
//mache irgendwas anderes
}


Ich hoffe das war die Frage. Wenn nicht bitte korrigieren...



Geschrieben von phlox81 am 22.10.2002 um 08:02:

 

Ich glaub er will herausfinden wie er die Beschriftung der
Msg Box Buttons verändern kann...

Devil



Geschrieben von CDW am 22.10.2002 um 11:04:

 

in einer Dialogbox (also keiner MessageBox!) werden die Buttons entweder aus dem Ressourcenbereich ausgelesen (einfach mal mit einem ressourceneditor öffenen wie "Reshacker") oder mit dem Aufruf:
CreateWindow (ja, damit!) erstellt!
Ich glaube was du meinst, ist eine normale MessageBox, die Knöpfebeschriftung kannst du da leider nicht ändern, aber du kannst die reaktion darauf vertauschen, direkt nach dem Aufruf der MessageBox kommt meistens auch die Behandlungsroutinde und jeder Knopf hat bestimmte Werte (Yes ist glaube ich 110) vertausch die einfach mal *g*



Geschrieben von Medusa am 22.10.2002 um 18:10:

 

thx großes Grinsen
Jo eigendlich wollt ich ja auf Ja und Nein vertauschen, aber wenn ich die Reaktion darauf vertausche, dann fällts (wenn mans liest) net auf ^^
Ich schau mal n bissle rum.
Achja, aber die Funktion MessageBox oder MessageBoxA wird gar net aufgerufen, aber DialogBox****** !?!

@Den Rest, außer CDW:
Thx, aber ihr habt meine Frage falsch verstanden. Ich hab mich aber au net genau ausgedrückt. Ich meine in einer Bestehenden exe eine Msg-Box ändern



Geschrieben von phlox81 am 22.10.2002 um 18:27:

 

Die MessageBox gehört soviel ich weis nicht zu den Resourcen
der Exe, sondern ist eine Systemresource.

Devil



Geschrieben von Medusa am 22.10.2002 um 21:45:

 

Es handelt sich auch um eine DialogBox.
In den Resourcen (des Prog is goil großes Grinsen ) habsch nix gefunden. Ehrlich gesagt, weiß ich au net so genau in welchen Files ich schauen soll ^^

Ich will folgendes machen:
Beim Löschen einer Datei erscheint (wenn man ihn net deaktiviert hat) ein Dialog, ob man das File auch wirklich löschn will. Und bei sieser Box will ich die Funktionen von JA und NEIN vertauschen.

Folgendes hab ich mit dem ResHack durchgeschaut:
Explorer.exe
User.exe --> Geht net
User32.dll
und den Kernel
...und hab nix gefunden.



Geschrieben von phlox81 am 22.10.2002 um 21:48:

 

Hm, MSDN mal nach gesehen ?

Devil



Geschrieben von Medusa am 22.10.2002 um 22:10:

 

lol?
msdn? öhm, meinst die verzählen da sowas? ^^



Geschrieben von phlox81 am 22.10.2002 um 22:13:

 

Nicht ganz...

HeaderDeclared in: Winuser.h, include Windows.h
Import library: User32.lib

aber sowas steht da zum beispiel. schon in den .h nachgesehen?

Devil



Geschrieben von CDW am 23.10.2002 um 10:58:

 

@Devil81: ich meine natürlich die Import-Tabelle, da stehen immer alle Systemfunktionen drin, sonst kann das Programm darauf nicht zugreifen.
@Medusa: Je nach dem welchen Debuger/Disassembler du benutzt, kannst du da die Option anwählen, alle Import-funktionenen (also die, die das Programm nicht besitzt, aber über User32/kernel32 ausführt) aufzulisten. Wenn es wirklich keine MessageBox gibt, dann blleibt nur DialogBox und die ist in der betreffenden EXE auf jedenfall vorhanden (außer die EXE ist verschlüsselt, dann kannst du mit ResHack nicht darauf zugreifen)
Aber wenn ich richtig verstanden habe, willst du die Explorer.exe ändern, dann viel Spass, ich habe da gerade nachgesehen, es scheint dass Explorer zum löschen&melden irgendeine andere Komponente benutzt


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH