Servus! Da sich mein hiermit vorgestelltes Programm auch bei Freunden als nützlich erwiesen hatte, dachte ich mir, ich stelle es hier mal einer breiteren Masse vor & gebe somit der Community dieses Forums, von welcher ich schon so viele interessante Dinge gelernt habe & Hilfe bekam, etwas zurück. ;) >> Geschichte: Alles begann mit dem Kauf einer SSD, wobei ich jedoch auch die Festplatte eingebaut ließ für seltener benötigte Daten. Ich glaubte, nun kann ich endlich auf meinem Laptop (fast) lautlos arbeiten. Große Besserung brachte schonmal TPFanControl*1, mit welchem man den Lüfter leiser laufen lassen kann, welches mich ua. für dieses Programm inspirierte. Jedoch fand ich auch nach langem Suchen keinen Weg, die nach wie vor eingebaute Festplatte bei Bedarf ein & ausschalten zu können. Komplett deaktivieren wäre zwar im Gerätemanager oder DevCon*2 möglich, jedoch bringt dies auch Probleme mit anderen Programmen mit sich. Einstellen des Ausschaltintervalles im Energiemanager bringt schon mal einiges, ist aber auf Dauer auch nicht so gut, wenn das zu oft passiert. Ich dachte mir, es wäre doch schön, wenn man das genau dann, wann man will, per Mausklick erledigen könnte. Unter Linux ist das ja mit einer Zeile a 'la "hdparm -Y /dev/hda" schnell erledigt... Das angefügte Programm soll dies auch für Nutzer von Windows (ab XP) leicht ermöglichen. >> Funktionsweise: Es zeigt durch ein Icon im Systray (in der taskbar notification area) an, ob sich eine Festplatte im Standby-Modus befindet. - (Coole ThinkPads lassen ihr ThinkLight kurz blinken beim Wechsel ;)) Durch einen Linksklick auf das Symbol kann ihr ein Schubser gegeben werden für einen Versuch, sie in Standby zu schicken & bleiben zu lassen. Dies funktioniert, wenn kein Programm mehr auf sie zugreift (kein File-Handle mehr offen ist & der Cache geleert ist; Dafür gibts eigene Programme) Das Gleiche kann durch einen Rechtsklick auf das Symbol & anschließendem Linksklick auf den Menüpunkt "Let's Sleep" versucht werden. Durch das Vorhandensein eines Häkchens beim Menüpunkt "Sleeping" ist ebenfalls ersichtlich, ob's im Standby-Modus is. Unter "Info" ist ebendieser Beschreibungstext zu finden & mit "Tschüss" kickt man dieses oh so ressourcenhungrige Programm aus dem RAM. Als Parameter erwartet das Programm natürlich den UNIX-Devicenamen der Festplatte a'la /dev/hda, ohne Angabe nimmts ebendiese. Außerdem rennt ohne Administratorrechte auch ned grad viel. (ua. kann es mithilfe von SuRun*3 auch mit einem normalen Useraccount benützt werden & man muss nicht bei jedem Systemstart die Erlaubnis, es als Admin zu starten erneut geben - Bei Bedarf reiche ich eine Anleitung dazu nach) >> Installation: Einfach die .zip entpacken & das Programm per beigefügter Verknüpfungen starten. Wenn das Programm bereits läuft, kann durch erneuten Aufruf ein Sleep Kommando abgesetzt werden - praktisch, wenn man das Programm mit einer HotKey-Taste belegt! A 'la *4. Ich weiß, muss ja nicht jeder ein ThinkPad haben. ;) >> Disclaimer: Ich übernehme keine Haftung für Schäden jeglicher Art, die durch Benützung dieses Programmes entstehen könnten! Benutzung somit auf eigene Gefahr! >> Kontakt & Weiteres: Fragen, Anregungen, Verbesserungsvorschläge usw. am besten hier, oder falls es nur an mich gehen soll, bitte an NoHDSleep (ät) gmx [punkt] at Wenn mir jemand sagen kann, wie ich außer durch ständiges Abfragen lassen herausfinden kann, ob Windows die Festplatte aus dem Sleep-Modus holt, würde ich mich sehr freuen! & Falls sich jemand künstlerisch betätigen mag, kann er gerne zwei schönere 16x16 Pixel Icons für den Status malen. ;) Schöne Grüße & ruhigeres Arbeiten am PC, Daniel A. Maierhofer * 1. http://www.staff.uni-marburg.de/~schmitzr/donate.html 2. http://social.technet.microsoft.com/wiki/contents/articles/181.how-to-manage-device-drivers-with-command-line.aspx 3. http://kay-bruns.de/wp/software/surun/ 4. http://thinkwiki.de/ThinkVantage_Taste_manuell_belegen
Daniel M. schrieb: > Einstellen des Ausschaltintervalles im Energiemanager bringt schon mal > einiges, ist aber auf Dauer auch nicht so gut, wenn das zu oft passiert. Mal in die Spec einer vernünftigen Notebookplatte geschaut? Die vertragen einiges an Start/Stopp Zyklen. Bei Desktopplatten sieht das allerdings anders aus.
:
Bearbeitet durch User
Postest du bitte noch den Sourcecode zum Selbst-Kompilieren für ausspäh-ängstliche Benutzer!? Danke!
Jim Meba schrieb: > Daniel M. schrieb: >> Einstellen des Ausschaltintervalles im Energiemanager bringt schon mal >> einiges, ist aber auf Dauer auch nicht so gut, wenn das zu oft passiert. > > Mal in die Spec einer vernünftigen Notebookplatte geschaut? Die > vertragen einiges an Start/Stopp Zyklen. > > Bei Desktopplatten sieht das allerdings anders aus. Da sollte das doch eigentlich auch gehen, im Gegensatz zu Serverplatten, die für den Dauerbetrieb ausgelegt sind statt für häufiges Ein- und Ausschalten. Übrigens: Warum heißt das Programm eigentlich NoHDSleep, wenn sein Zweck es ist, die Platte schlafen zu legen?
Augenscheinlich nutzt die exe die Funktionalität von MinGW und hdparm -> kann man auch ohne fremdes executable direkt von dort nutzen.
Achso, nein, ich wusste nicht, dass Festplatten das heutzutage / überhaupt ganz gut vertragen, zumal das ja auch einer der S.M.A.R.T. Paramter ist, welche ja ein Maß für den Abnutzungsgrad sind ;) Ein weiterer Beweggrund war auch, eben mal schnell, wenn ich weiß, dass in nächster Zeit eine Erschütterung auftreten könnte, sie abzuschalten zu können. Nunja, den Sourcecode poste ich vorerst noch nicht. Den vom AVRootloader oder eben TPFanControl, wo ich meine Funktionalität gleich von Grund auf hätte einbauen können & viel weniger Arbeit gehabt hätte, gibt es ja z.B. auch leider nicht zu haben. Für Verbesserungsvorschläge bin ich gerne offen! Eventuell lass ich mich ja, wenn mir jemand das Problem der Notwendigkeit des ständigen Pollens lösen kann überreden. Also, dass Windows eine Art Callback schickt oä. Sowie (das is zwar jetzt Off-Topic) ein Codeschnipsel, mit welchem man den Windows Vista / 7 - Präsentationsmodus aktivieren kann, aba nix billiges wie ein Sendkeys: Win+X, Alt+C, Win+X ! Genau so ist es. Eindeutig feststellbar kompiliert mit MinGW32 GCC 4.8.1 & Nutzen der Funktionalität von hdparm, nur dass nicht alle paar ms ressourcenhungrig ein neuer hdparm Prozess gestartet werden muss... Auf die Benachrichtigung, dass sie wegen eines Zugriffs nun eingeschaltet wird, wollte ich nicht verzichten, ansonsten reicht ein von mir erwähnter hdparm -y /dev/hd... Aufruf fürs Abschalten. Hmm, da fällt mir ein, soll ich einen PlaySound() Aufruf reingeben? Ich wollte eine Namensgleichheit mit anderen Programmen vermeiden und benannte schon einige meiner kleinen "Windows-Helferlein" mit No beginnend.
Klasse Tool! Ist es irgendwie möglich das du das ganze noch Autostart-Kompatibel under Windows 7 machst? Ich hab sowohl mit Adminrechten als auch mit dem Campatibility Administrator herumgespielt - leider ohne erfolg. Ich muss dein Tool immer manuell starten.
Wie versprochen, auf Deine Anfrage hin, hier bitteschön eine Anleitung dafür, wie man NoHDSleep unter Windows 7 in den Autostart bekommt: >Unter einem Administratoraccount: •Rechtsklick auf NoHDSleep.zip, "Alle extrahieren...", mittels "Durchsuchen" den Ordner Computer>C:\Programme (x86)\ auswählen und "Neuen Ordner erstellen" namens NoHDSleep. •Die folgende Zeile mit der Maus markieren und per Strg+C in die Zwischenablage kopieren: "C:\Program Files (x86)\NoHDSleep\NoHDSleep.exe" /dev/hd? (Wenn statt dem ? der jeweilige Buchstabe stehen würde, könnte man nur die Festplatte zu der der Buchstabe gehört steuern) •Surun von http://kay-bruns.de/wp/software/surun/ installieren, wobei ich folgende Einstellungen empfehle: >>Im Reiter "Allgemein": •Bei "Shellintegration" würde ich alle Häkchen bis auf "Neustart als Administrator" weggeben, falls Ihr die weiteren Funktionen davon nicht benötigt. •Häkchen bei Hilfestellungen: "Zeige Einstellungen für erfahrene Nutzer" setzten >>Im Reiter "SuRunners-Gruppe": •Auf oberes "Hinzu.." klicken und den gewünschten User auswählen. •Alle Häkchen bis auf "Benutzer darf nur festgelegte Programme mit SuRun starten" weggeben. •Auf unteres "Hinzu.." klicken und vorerst eine beliebige .exe-Datei auswählen. •Die Zeile aus der Zwischenablage per Strg+V als "Befehlszeile" einfügen. •"Das Programm automatisch mit erhöhten Rechten starten" sowie "Programm immer automagisch mit erhöhten Rechten starten" wählen und OK klicken. >>Im Reiter "Erweitert": •Häkchen bei "Frage Administratoren niemals ob sie in Gruppe 'SuRunners' aufgenommen werden wollen" setzen und bei "Ersetze Windows 'Ausführen als' weggeben. •Speichern klicken, Administrator per "Abmelden" ausloggen und mit dem User einloggen. >Unter dem Useraccount: •Für die jeweilige Festplatte passende Verknüpfung aus C:\Program Files (x86)\NoHDSleep\ z.B. NoSleep_hda.lnk in den Autostart-Ordner kopieren, (wenn man als der User eingeloggt ist, dem dieser Ordner gehört, ansonsten könnte es Probleme geben, wenn der "Besitzer" ein andrer User wäre.) •Mittels Rechtklick auf die Verknüpfung in den Eigenschaften das Ziel auf z.B. C:\Windows\SuRun.exe "C:\Program Files (x86)\NoHDSleep\NoHDSleep.exe" /dev/hda setzen sowie gleich eine Tastenkombination festlegen, um bequem die Festplatte anzuhalten. (Denn wenn das Programm bereits läuft und man es nochmals mit dem gleichen Parameter z.B. /dev/hda startet wird ein "Let's Sleep" druchgeführt) Anbei auch noch meine Konfigurationsdatei für SuRun (in welcher man noch unbedingt den Namen des Users von "daniel" auf den gewollten ändern muss), wobei obige Anleitung ebendiese als Ergebnis liefern sollte. (Speichern/Wiederherstellen in SuRun) -> SuRun Einstellungen können später in der Systemsteuerung aufgerufen werden. Viel Erfolg bei dieser leider ein wenig komplizierten Vorgehensweise! PS.: Ich habe nun herausgefunden, wie man den Präsentationsmodus von Windows steuert, war lächerlich einfach...: presentationsettings /start bzw. presentationsettings /stop
Sourcecode zum selber compilieren? Ich würde niemals aus möglicherweise unsicheren Quellen Software verwenden...
So, nach dem 100sten Download melde ich mich mal wieder. Schade, immer dieses Misstrauen... Wie gesagt, wenn mir jemand dabei helfen kann, dass ich nicht mehr ständig mit einem ioctl()-artigen Aufruf, so wie ihn auch hdparm verwendet den Status der Festplatte pollen muss sondern z.B. eine Window-Message oder etwas, das mir nicht bekannt ist, praktisch als "Event" benachrichtigt werde, wenn Windows die Festplatte durch einen Zugriff wieder "aufweckt", dann gebe ich den Sourcecode gerne her. So als Anreiz. -> Höchstwahrscheinlich braucht jemand, der mir da helfen könnte, denselbigen nicht, weil er dieses Programm ohnehin schnell selbst schreiben könnte. & Wenn ich mir unsicher bei einem Programm bin, dann mach ich erstmal Jotti's Virenscan: http://virusscan.jotti.org/de/scanresult/298a08f9796899b961ee243a5b77bf51d0757b61/6479359e6aafed6a0d60c52f2979d525295b83b8 Anschließend schau ich mir an welche DLL's vom Programm verwendet werden: http://technet.microsoft.com/en-us/sysinternals/bb896656.aspx & wenn ich dabei entdecken sollte, dass da winsock oä., das z.B. zum "Nachhaussefunken" verwendet werden könnte würde ich auch misstrauisch sein. Ansonsten lass ichs dann noch in einer VM laufen & schau mir mit http://www.rohitab.com/apimonitor oder einem anderen ähnlichen Tool: http://www.woodmann.com/collaborative/tools/index.php/Category:API_Monitoring_Tools grob an, was sich da so tut oder am besten gleich disassemblen. :) Ich glaube meine paar Programmzeilen kann man dann leicht nachprogrammieren. ;) Hat schon jemand nach meiner Anleitung das Programm im Autostart zum Laufen bringen können?
Hey, da du den Quelltext nicht freigeben möchtest hier meine Bitte um Verbesserung: Ist es möglich 6 Festplatten auf einmal zu verwalten? Zur Zeit muss ich dein Programm 6 mal ausführen (für die Datendisks), da ich 7 Disks in meinem Rechner verbaut habe.
Wie verhält es sich denn lizenztechnisch, wenn du Teile von hdparm weiterverwendest? Zumindest finde ich keinerlei Hinweise auf die BSD-Lizenz in deiner Distribution, unter der hdparm verteilt wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.