Lowlevel

OffZone => Offtopic => Thema gestartet von: Svenska am 08. June 2006, 15:34

Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Svenska am 08. June 2006, 15:34
Hallo,

ich habe ein altes Notebook und dafür gibt es ein Programm, was dieses ausschaltet. Da es APM nicht unterstützt, schaltet Windows 95 das Gerät nicht ab, sondern es kommt die normale "Sie können den Computer jetzt ausschalten"-Meldung.
Nun habe ich eine .com-Datei, die das Notebook abschaltet - funktioniert auch prima unter Windows (Doppelklick => SSSSssss....). Daher möchte ich, dass Windows erst herunterfährt (am Besten über Start>Ausführen) und danach zwei Interrupts auslöst.

Wo kann ich das eintragen bzw. einpatchen?
Welche Datei zeigt das "Sie können..." an?

Gruß,
Svenska
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Osbios am 08. June 2006, 22:32
So wie ich das von Windows kenne (habe da früher gerne Bilder ausgetauscht) ist es direkt inner Kerneldatei. Ich weiß jetzt aber nur wie die unter NT bzw. 2000 und XP heißt -> ntoskrnl.dll.

Wie willst du dann dort eigendlich deinen Code reinmachen?

Win95 ist doch noch Dosaufsatz. Kannste da nicht eine Verknüpfung machen, welche ihn zum herunterfahren von win zu dos bewegt und dann deine exe/com ausführen?

Oder mach es ganz elegant und schreibe einen Treiber.  :D
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Termite am 09. June 2006, 09:19
Achtung

mache win9X versionen mögen es gar nicht wenn man sagst starte dos. Danach kommt der rechner nicht mehr mit win9X hoch. hatte selber mal das problem. kann nur nicht mehr sagen welche der versionen das genau war.

gruss
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: hannibal am 09. June 2006, 20:30
Du koenntest dir ein Dos (Batch-)Programm schreiben, dass anstatt des normal Win98 Starts zuerst win startet und danach einfach deine .com ausfuehrt. Etwas dirty, aber wuerde funktionieren - theoretisch.

Lg, Alex
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Coffee am 09. June 2006, 20:38
das müsste aber dann aber nen power down "abfangen" oder? sonst würde windows ja den strom abstellen ;-)
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: kevin am 09. June 2006, 22:00
Zumindest, wenn in der msdos.sys BootGUI=0 drinsteht, sollte er das nicht machen, sondern zu DOS (und damit zur Batchdatei) zurückkehren.
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Svenska am 10. June 2006, 20:04
Zitat von: hannibal
Du koenntest dir ein Dos (Batch-)Programm schreiben, dass anstatt des normal Win98 Starts zuerst win startet und danach einfach deine .com ausfuehrt. Etwas dirty, aber wuerde funktionieren - theoretisch.


Praktisch auch... nur dachte ich, das ginge so in etwa "automatisch". Denn wenn ich das so mache, kann ich nicht mehr in den DOS-Modus herunterfahren, weil er dann auch ausschaltet... :(

Coffee: Da das Gerät kein APM beherrscht, kann Windows den Strom nicht abstellen :p Windows hat keine Ahnung, dass das ein Notebook ist, weil es sich eben nicht als Notebook darstellt (Ausnahme: PCMCIA-Bus -  aber den gibts auch als ISA-Karte...)

Gruß,
Svenska
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Coffee am 10. June 2006, 20:39
aber was passiert dann wenn du auf "Herunterfahren" gehst ?
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: hannibal am 10. June 2006, 23:22
Zitat von: Svenska
Zitat von: hannibal
Du koenntest dir ein Dos (Batch-)Programm schreiben, dass anstatt des normal Win98 Starts zuerst win startet und danach einfach deine .com ausfuehrt. Etwas dirty, aber wuerde funktionieren - theoretisch.


Praktisch auch... nur dachte ich, das ginge so in etwa "automatisch". Denn wenn ich das so mache, kann ich nicht mehr in den DOS-Modus herunterfahren, weil er dann auch ausschaltet... :(


Dann hau ne Abfrage dazu..

"Shutdown? [Y/n]"

..oder so.

Lg, Alex
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: Svenska am 12. June 2006, 22:01
Zitat von: Coffee
aber was passiert dann wenn du auf "Herunterfahren" gehst ?
Wenn Windows selbst nur als DOS-Programm gestartet wird, hat "Herunterfahren" den gleichen Effekt, wie "Computer im MS-DOS-Modus neu starten".
Ne Abfrage kann ich mir insofern schenken, als dass ich dann auch einfach ausschalten kann...

Naja, danke trotzdem für die Hinweise.

Gruß,
Svenska
Titel: Assemblercode nach Windows-Ende ausführen?
Beitrag von: SK-Genius am 12. June 2006, 23:51
ich schliese mich hannibal idee an. ein programm das nach den booten noch vor windows gestartet wird währe das optimale. das programm würde ich so gestalten, dass es 10 sekunden auf eine belibige taste wartet. wenn diese kommt beendet sich das programm normal und windows wird gestartet, ansonsten verfliesen halt die 10 sekunden und der pc wird automatich ausgeschaltet. zur not kann man da noch ne taste auswählen mit der das abschalten sofort erfolgt.