sodala, immernoch im zuge meines projekts nun wiedermal ein problem
(habs zwar schon in den anderen thread reineditiert, aber den liest wohl keiner mehr..)
und zwar:
ich erzeuge mit meinem programm einen kindprozess aus cmd.exe und leite die stdin/stdout-handles in mein programm um. der vorgang basiert im groben auf der technik, die hier bei microsoft erklärt wird, nur dass mein programm halt ein gui hat. das problem is jetzt nur:
wenn ich mit dieser umgeleiteten cmd ein windows-programm starten will (z.b. mspaint.exe, mmc.exe etc.) wird der prozess zwar erstellt, das fenster wird jedoch erst angezeigt, nachdem ich ein paar mehr befehle eigebe (dann ist zwar das fenster da, aber es hängt) oder ich meinen childprozess beende. hab schon die suchmaschine bemueht, aber auf dem board und auch bei google nichts entsprechendes gefunden.
hatte irgendjemand dieses problem schon mal bzw. hat da ne lösung gefunden?
hab jetz diverse code-foren abgegrast, die zwar alle unterschiedliche ansätze fuer das piping vorstellen, aber alle die gleiche macke haben.. scheint wohl irgendwie keine lösung dafür zu geben.
meine eigene idee dazu wäre, bei der prozesserstellung per IAT-hook die createprocess-funktion abzufangen, dann per neuer pipe den zu erstellenden prozess an meine host-anwendung zu senden und den prozess dann von der zu erstellen.. aber mir kommt das vor wie mit kanonen auf spatzen schießen, da es ja vielleicht nur an einem falsch gesetzten parameter oder so liegt X(
mfg jacky
und zwar:
ich erzeuge mit meinem programm einen kindprozess aus cmd.exe und leite die stdin/stdout-handles in mein programm um. der vorgang basiert im groben auf der technik, die hier bei microsoft erklärt wird, nur dass mein programm halt ein gui hat. das problem is jetzt nur:
wenn ich mit dieser umgeleiteten cmd ein windows-programm starten will (z.b. mspaint.exe, mmc.exe etc.) wird der prozess zwar erstellt, das fenster wird jedoch erst angezeigt, nachdem ich ein paar mehr befehle eigebe (dann ist zwar das fenster da, aber es hängt) oder ich meinen childprozess beende. hab schon die suchmaschine bemueht, aber auf dem board und auch bei google nichts entsprechendes gefunden.
hatte irgendjemand dieses problem schon mal bzw. hat da ne lösung gefunden?
hab jetz diverse code-foren abgegrast, die zwar alle unterschiedliche ansätze fuer das piping vorstellen, aber alle die gleiche macke haben.. scheint wohl irgendwie keine lösung dafür zu geben.
meine eigene idee dazu wäre, bei der prozesserstellung per IAT-hook die createprocess-funktion abzufangen, dann per neuer pipe den zu erstellenden prozess an meine host-anwendung zu senden und den prozess dann von der zu erstellen.. aber mir kommt das vor wie mit kanonen auf spatzen schießen, da es ja vielleicht nur an einem falsch gesetzten parameter oder so liegt X(
mfg jacky