Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

hotkey funktion programmieren, welche win98 rechner herunter

(Anonym) / 5 Antworten / Baumansicht Nickles

holla freaks. folgendes problem. ich habe einen win98 rechner aufgesetzt, auf welchem nur ein programm laufen soll (musikrechner). damit das teil möglichst einfach zu bedienen ist, soll er mit nur einem knopfdruck heruntergefahren werden.

zu diesem zeitpunkt läuft aber das programm noch, also muss der ist-zustand abgespeichert werden, das programm geschlossen werden und der rechner heruntergefahren werden.

das scheint nicht so spektakulär zu sein, ist aber nicht so leicht zu lösen, zumindest für mich nicht.

ach ja, das programm unterstützt für die befehle tastaturkombinationen. meine überlegung ist also, wie kann ich ein kleines script schreiben, in dem playlist speichern (Tastaturkombination Shift + S), Programm Schliessen (Ctrl + Q) und den Rechner herunterfahren (sehr wahrscheinlich "C:\Windows\Rundll32.exe user,exitwindows" oder so) drin ist.

welche endung hat sowas (.bat)

wäre nett für ne eingebung von euch

bei Antwort benachrichtigen
Anonym (Anonym) „hotkey funktion programmieren, welche win98 rechner herunter“
Optionen

Einfach ein Makro in Word oder Excel aufzeichnen. Dann in den VB-Editor reinwechseln. Den Kode in die Zwischenablage und dann ab damit ins richtige VB. Dort bereinigst Du ihn von dem ganzen überfüssigen Krimskrams.
Andere Variante. Probier mal den VB-Menü-Editor. Dort lassen sich für Menüs Hotkeys einrichten.
Ich glaube allerdings, dass Dein Programm immer den Focus haben muss, damit das klappt. Wenn jemand noch andere Möglichkeiten sieht, mich würde das auch interessieren.

bei Antwort benachrichtigen
McMorning (Anonym) „hotkey funktion programmieren, welche win98 rechner herunter“
Optionen

Hi Fremder,

leider weiß ich nicht in welcher Sprache du das Programm geschrieben hast und in wie weit deine Programmierkenntnisee reichen.

Von der Logik her kannst du es aber folgendermaßen angehen:
Sobald du wie oben beschriebenen die user.dll benutzt um den Rechner runterzufahren, schließt Windows nicht einfach alle Anwendungen sondern schickt ihnen die Windows Message Quit (WM_Quit). Diese könnte man nun abfangen und einfach das Programm selbst nachschauen lassen ob noch was offen ist und falls nötig eine Message-Box, à la Wollen Sie vorher speichern? einblenden.

Das Prinzip ist am einfachsten vorzuführen, wenn du z.B. Word mit einem Dokument öffnest und bearbeitest (nicht speichern) und anschließend den exitWindows-Befehl in der Dos-Box eingibst!

Gruß
McMorning

bei Antwort benachrichtigen
xx (Anonym) McMorning „Hi Fremder,leider weiß ich nicht in welcher Sprache du das Programm geschrieben...“
Optionen

danke für den hinweis, bin leider kein programmiercrack, also anpassen geht grade noch so, aber nicht was frisch erfinden.habe beim durchsehen des programmfiles noch einige macros gefunden, welche der programmierer bereits verfasst hat.


// Window message definition

#define WM_APOLLO_COMMAND WM_USER + 3

// WM_APOLLO_COMMAND command definitions

#define APOLLO_GETVERSION 0

// Macro definitions

#define Apollo_ClearPlaylist(hWnd) \
SendMessage(hWnd,WM_APOLLO_COMMAND,(WPARAM)MAKELONG(APOLLO_CLEARPLAYLIST,0),(LPARAM)0)

es hat noch mehr davon, damit sollte man das teil steuern können. aber, wie muss man dass denn anwenden bzw. kann man einen solchen macrobefehl einfach in ein einzelnes steuerfile abspeichern, welches per tastaturdruck angesteuert werden kann?

da bin ich am ende mit meinem latein.

bei Antwort benachrichtigen
spike (Anonym) „hotkey funktion programmieren, welche win98 rechner herunter“
Optionen

...versuch doch ein programm zu schreiben das im hintergrund steht, d.h. den task im vordergrund auf 100% laufen lassen, welches beim wechseln zu ihm ueber das gleichzeitige druecken von Alt-TAB den kompletten speicher auf eine eigene partition schreibt - du brauchst danach nur noch abzuschalten.
beim anschalten startest du von jener partition, nicht vergessen einen header vor den dump zu setzen, und bist im selben film wie zuvor.

alles roger?

bei Antwort benachrichtigen
Krollie spike „...versuch doch ein programm zu schreiben das im hintergrund steht, d.h. den...“
Optionen

Hört sich pikant an, aber ich denke, es genügt nicht, einfach nur den Hauptspeicher auf Platte zu sichern, um den "Ist-Zustand" zu erhalten, sondern auch sämtliche Register der CPU und allen weiteren Komponenten abzuspeichern. Also müßtest du Deine Hardware in- und auswendig kennen, um das zu erreichen. Diese Möglichkeit muß in den Treibern Deiner Hardware und in Deinem OS (Win98 nur mit Zusätzen) verankert sein. Dieses Verfahren nennt sich Hibernation und kommt eigentlich nur bei Notebooks vor und wird bei modernen Desktop-Rechnern erst ab Win2000 (heißt dort Ruhezustand) unterstützt (und funzt dort auch nicht so toll). Vielleicht reicht Dir aber schon der in Win98 enthaltene Standby-Modus, da verbraucht Dein Rechner nur sehr wenig Strom und der Ist-Zustand bleibt erhalten. Die Funktion dafür fällt mir momentan nicht ein (eventuell in shell32.dll).
Gruß
Krollie

bei Antwort benachrichtigen