Fragen zu PROFAN-Helfern und Tools

| Suchen
| Zurück zur Übersicht

Autor | Thema: Prioritäten
Walter
| Datum:08.04.02 13:03 (risikowks@web.de) |
Hallo Profaner Irgendwann habe ich mal ein prf-Beispiel gesehen wie man die Priorität des Programm hochsetzen kann. Weiss Gott, jetzt wo ich das interessant finde, kann ichs nicht wiederfinden. Erinnert sich jemand daran ?? wär schon gut. Version 6.6 Win 98SE Walter
Marco
| Datum:08.04.02 14:52 (MaLenz@gmx.net) |
*rofl* Ich hatte sowas ähnliches auch einmal, aber seit WinME ging das nicht mehr (nur 95 und 98) und dann hab ichs gelöscht gehabt . MFG Marco www.DerEismann.com
Sven Schmidts
| Datum:08.04.02 15:03 (schmidts@flat2serv.de) |
Hallo, das müsste mit der API "SetPriorityClass" (Kernel32) funktionieren, dafür brauchst Du die Process-ID, die Du mittels "GetCurrentProcess" (auch Kernel32) bekommst. Müsste also so gehen: SetPriorityClass(GetCurrentProcess, PRIO) Mfg. Sven Schmidts
Sven Schmidts
| Datum:08.04.02 15:05 (schmidts@flat2serv.de) |
Nachtrag: Die Funktionen sind in der WINDOWS.PH definiert, ausserdem die Prioritäten: NORMAL_PRIORITY_CLASS = $20; IDLE_PRIORITY_CLASS = $40; HIGH_PRIORITY_CLASS = $80; REALTIME_PRIORITY_CLASS = $100; Mfg. Sven Schmidts
Frank Abbing
| Datum:08.04.02 15:41 (frankabbing@12move.de) |
Hallo, von so einer Programmierung kann ich dir nur abraten, weil sie eines MultiTasking Systems nicht würdig ist und böse Folgen für andere Programme haben kann. Wenn allerdings dein Programm der einzige Task ist, ok... Ich selber hab' auch schon damit herumgespielt, allerdings werden Profan-Programme nur wenig beschleunigt. Gruß, Frank
Sven Schmidts
| Datum:08.04.02 15:46 (schmidts@flat2serv.de) |
Hallo Frank, es ist durchaus "würdig", es kommt nur drauf an, wie man es nutzt. Es gibt durchaus Prozesse, die kurzfristig (!) die gesamte Power brauchen, weil sie damit durchaus schneller sind. Die Anwendung sollte nur nicht dauerhaft "REALTIME_PRIORITY_CLASS" nutzen ;) Man sollte es aber wirklich nur dann verwenden, wenn es notwendig ist, weil es bei kleinen Dingen nicht soviel bringt. Sven
Frank Abbing
| Datum:08.04.02 17:37 |
Hallo Sven, du hast sicher recht. Ich hab' die ganze Sache jetzt generell betrachtet, weil ich denke, das Walter Ohnenamen sein Programm damit dauerhaft beschleunigen möchte. Gegen kurzfristiges Benutzen bei zeitintensiven Routinen spricht sicherlich nichts. ;-)) Gruß, Frank
Walter
| Datum:09.04.02 11:47 (risikowks@web.de) |
Danke für eure Hinweise, ich werde damit experimentieren. Der Sinn der Sache ist allerdings nicht ( wie von euch vermutet) eine Beschleunigung, sondern; Mit Hilfe meines Programm teile ich meinen Kindern feste maximalzeiten zu. Daher muss sichergestellt werden, das dieses Programm beim Windowsstart auf jeden Fall erst ablaufen muss. Ich kann zwar abschiessen mit Ctr Alt Del verhindern und den Desktop per Registry als default erst mal deaktivieren, aber wer schnell genug ist ( und meine Kinder sin das) kommt mittels Doppelklick an den Explorer und kann dann das Programm ignorieren. Daher suche ich nach Möglichkeiten dies zu verhindern. Ist fast schon ein "Spielkampf" Programmierer gegen Anwender. Am liebsten wäre mir natürlich eine Möglichkeit per Registry-eintrag Maus und Keyboard zu deaktivieren, und erst per Programm wieder zu aktivieren; geht mit Sicherheit, habe aber bisher nicht gefunden wie ( und auf Verdacht mittels "Try and Error" in der Registry rumzumachen ist recht ermüdend und gefährlich) Falls ich hier weiterkomme wede ich mich mitteilen Gruß Walter ps wieso "noname"? "Walter" ist doch ein Name
Sven Schmidts
| Datum:09.04.02 13:37 (schmidts@flat2serv.de) |
Hi, ich verstehe nicht so recht, warum die Priorität beim Sieg der Programmierer helfen soll?! Ich würde, falls es 2000/XP ist, das ganze als Systemdienst laufen lassen. Dann ist das Programm schon geladen, wenn's mal gerade an die Anmeldung im System geht. Oder Du versteckst Deinen eigenen Task. Wo kein Bild, da auch kein Beenden, oder? Mfg. Sven Schmidts
Jörg Sellmeyer
| Datum:09.04.02 14:35 (joerse@gmx.de) |
Hallo, Mal'n Tip: Nenn doch mal Dein Programm um in ein ganz normales PCDienstprogramm. Es gibt ja diverse, die sich in der Taskleiste breitmachen. Das startet über Autostart und ruft natürlich das echte Programm auf und erledigt Deine gewünschten Funktionen. Alternativ kannst Du auch das Lieblingsspiel Deiner Kinder benutzen. Außerdem solltest Du ihnen nie verraten, daß man mit festhalten der Umschalt-Taste die Autostartprogramme deaktivieren kann. Viel Erfolg Jörg
Walter
| Datum:12.04.02 10:43 (risikowks@web.de) |
Dein Tip ist zwar nett, aber nicht das Problem. Ich starte das Program schon über die Registry, was schon ausreichend klappt. HKEY_LOCAL_MACHINE Software Microsoft Windows Current Version Run Schlüssel Program mit Pfad Wer sich wirklich im Betriebssystem auskennt hat natürlich immer Möglichkeiten der Manipulation, das ist klar! Das Problem für mich liegt lediglich noch darin, das Windows erst die Startleiste konfiguriert, dann den Desktop(was per Registry leicht zu verhindern ist) CURRENT_USER Software Microsoft Windows Current Version Policies Explorer Schlüssel nodesktop $1 und dann erst mein eingetragenes Program. Der Desktop kann dann per Program generiert werden PROC ShowDesktop DEF FindWindow32(2) !"USER32","FindWindowA" parameters show% declare desktop& dim winclass#,8 string winclass#,0="ProgMan" let desktop&=FindWindow32(winclass#,0) ShowWindow(desktop&,show%) dispose winclass# ShowTaskbar show% ENDPROC Mir geht es also nur noch um die Zeit zwischen Generierung der Startleiste und laden des Program, da in dieser Zeit der Explorer als zweiter Task geöffnet werden kann; und das will ich nicht. Eine zweite Möglichkeit des "Schummeln", also mein Program umgehen, besteht darin beim Beenden von Windows ein Explorerfenster offen zu lassen, so das es beim nächsten Start ebenfalls wieder geöffnet wird. Dieses Fenster legt sich dann " über" mein Program, hat also eine höhere Priorität. Bisher hatte ich noch nicht die Zeit die Hinweise zur Einstellung der Priorität auszutesten,vielleicht Sontag oder später. Wenns denn mal so klappt wie ich mir das vorstelle werde ich dieses Program zur Verfügung stellen.
Andreas Miethe
| Datum:12.04.02 17:59 (andreas@andreas-miethe.de) |
Hallo Walter, trag Dein Programm mal unter : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce ein. Dann startet erst dein Programm, alles andere wird erst fortgesetzt wenn dein Programm beendet ist. Allerdings musst Du dafuer sorgen, das Dein Programm vor Windows-Ende wieder eingetragen wird. Gruss Andreas
Walter
| Datum:12.04.02 18:31 (risikowks@web.de) |
Dank writeini ist das kein Problem; werde ich probieren. Und wenn mein Jüngster dann flucht ( weil er nicht mehr spielen kann solange er will) , na dann hats funktioniert :-) mfg Walter Köhler
Jörg Sellmeyer
| Datum:12.04.02 23:28 (joerse@gmx.de) |
Du scheinst ja 'ne ganz ausgeschlafene Brut zu haben ;-) Jörg
Jörg Sellmeyer
| Datum:14.04.02 12:56 (joerse@gmx.de) |
Hallo Walter, Mir ist noch was eingefallen. Hast Du schon mal versucht, Dein Programm in der system.ini unter BOOT/SHELL= einzutragen. Normalerweise steht dort der Explorer und so hättest Du dann die volle Kontrolle über alles was aufgerufen werden kann. Gruß Jörg
Walter
| Datum: 15.04.02 10:23 (risikowks@web.de) |
So langsam wirds was. Ein Program unter runonce einzutragen ist wirklich eine gute Idee gewesen DANKE! Unter policies explorer kann man sehr wirkungsvoll mit noclose =1 das normale "runterfahren" unterbinden, so das dies per Program gemacht werden muß.( Zumindest wenn man einen ordentlichen Systemabschlu0 haben möchte). Mit writeini muß das Program nur für die nächste Session wieder neu eingetragen werden, was ja kein Problem ist. Habe jetzt meinen Kids 5 EUR als Preisgeld angeboten für jede gefundene Möglichkeit zu "schummeln"; bisher mußte ich noch nicht zahlen. Bin mal sehr gespannt auf die weitere Entwicklung und werde das Endprodukt wohl bald mal vorstellen. Bis dahin wünsche ich weiter frohes Programmieren und werde mich auf ein neues Projekt stürzen; hab schon eine Vorstellung : ein "Tanzsimulator" für Discofox mit dem man per Program die einzelnen Figuren kombinieren kann um interessante Kombinationen zu erstellen oder neue Figuren zu entwickeln, also ein ganz neuer Bereich für mich. Wahrscheinlich werde ich da wohl die prospeed.dll von Frank einbinden müssen, aber das ist noch Zukunft. Im Falle des Falles werde ich natürlich bei Frank entsprechendes Lizensgeld abdrücken. Arbeit Anderer sollte man honorieren denke ich. Bis zum nächsten Problem danke ich nochmals herzlichst für die vielseitigen Lösungsansätze und das bereitgestellte Wissen. Walter Köhler

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |