Mehrere Konsolenfenster öffnen
-
doch, das geht. ich hab's schon mal hinbekommen, weiss aber leider nicht mehr wie

-
net schrieb:
doch, das geht. ich hab's schon mal hinbekommen, weiss aber leider nicht mehr wie

Erbring bitte mal den Beweis...
AllocConsole schrieb:
A process can be associated with only one console
-
Die DLL in einem eigenen Prozess starten?

MfG SideWinder
-
Jochen Kalmbach schrieb:
net schrieb:
doch, das geht. ich hab's schon mal hinbekommen, weiss aber leider nicht mehr wie

Erbring bitte mal den Beweis...
hab mal eben was zusammengehackt. naja, muss man nur noch rausfinden wie man die 20 konsolen dann anspricht...
#include <windows.h> DWORD *GetConsole() { DWORD *cvar; _asm { mov eax, dword ptr fs:[0x18] mov eax, dword ptr [eax+0x30] mov eax, dword ptr [eax+0x10] add eax, 0x10 mov cvar, eax } return cvar; } int main() { int s; for (s=0; s<20; s++) { *GetConsole() = 0; AllocConsole(); } Sleep (INFINITE); }
-
Könnte es auch was dokumentiertes sein!? Und das Problem ist, dass ein Prozess nur eine Console haben kann, somit hast Du hier Fake-Consolen erzeugt...
-
Kannste den Code erklären? Und wie kriegt man die Konsolen wieder zu?
Hab schon den Prozess beendet und sie sind immer noch da.
-
naja, das ist keine komplettlösung die man jemandem verkaufen kann. müsst ihr etwas mit rumspielen. vielleicht den inhalt vorher sichern, dann wieder herstellen und FreeConsole() aufrufen, damit man die zumachen kann. ein- und ausgabe mit den consolen zu machen wird sicher auch spannend. windows ist schon ein tolles system zum fummeln....
-
aber tu mal verraten was der assembler code macht.
-
nice schrieb:
aber tu mal verraten was der assembler code macht.
der holt einen pointer auf eine interne systemvariable. im original heisst das 'NtCurrentTeb()->ProcessParameters->ConsoleHandle'
-
net schrieb:
original heisst das 'NtCurrentTeb()->ProcessParameters->ConsoleHandle'
Eher:
NtCurrentTeb()->ProcessEnvironmentBlock->ProcessParameters->ConsoleHandleSiehe windbg:
x ntdll!*NtCurrentTeb*
dt _TEB
dt _PEB
dt _RTL_USER_PROCESS_PARAMETERS
-
so stehts in \private\ntos\w32\ntcon\client\condll.h
#define SET_CONSOLE_HANDLE(HANDLE) ((NtCurrentPeb())->ProcessParameters->ConsoleHandle = HANDLE) #define GET_CONSOLE_HANDLE ((NtCurrentPeb())->ProcessParameters->ConsoleHandle)
-
Ich geb DIr ja recht, aber dann musst Du das nächtse mal richtig quoten...

Du hattest NtCurrentTeb geschrieben...
-
Jochen Kalmbach schrieb:
und bei mir steht es in
windows xp\src\sp2\windows\core\ntcon\client\condll.h

naja, diese pfadangabe sieht aber auch verdächtig aus....
-
Als MVP hat man eben Zugriff auf den Windows Source

-
Jochen Kalmbach schrieb:
Als MVP hat man eben Zugriff auf den Windows Source

cool!
ich will auch mvp sein!
aber wie ich ms einschätze kostet das was, ne?
-
Nein, das kostet nix. Du wirst von MS dazu "berufen"...
http://mvp.support.microsoft.com/
http://mvp.support.microsoft.com/mvpfaqsPS: Aber durch Verwendung von illegalen Sachen wirst Du Dich nicht gerade dazu prädestinieren...
-
Jochen Kalmbach schrieb:
Aber durch Verwendung von illegalen Sachen wirst Du Dich nicht gerade dazu prädestinieren...
wusst ich's doch, dass da ein haken ist

-
Würdet ihr euer Gespräch hier bitte sofort beenden und auf Mailverkehr umstellen? Eine Anzeige schadet nur allen Beteiligten...
MfG SideWinder
-
...