PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm schlafenlegen unter Windows



Import-Script
04.05.2003, 21:40
Hab unter Win ein Programm BPW7.0 das alle Sekunde nur was tun soll und andere nicht behindern soll, d.h. die Kontrolle eine Zeitlang abgeben. <BR> <BR>StartZeit:=Gettickcount; <BR>repeat until Gettickcount &#62; StartZeit&#43;1000; <BR> <BR>das wärs, aber da beschäftigt das Programm den Rechner 100 Millionen mal mit Zeitabfrage, d.h. Fenster anderer Programme ruckeln. <BR> <BR>So eine Art Sleep&#40;1 Sekunde&#41; bräuchte ich. <BR> <BR>Weiss jemand was gutes?

Import-Script
04.05.2003, 22:32
In Java w&uuml;rde man hier &#34;Thread.sleep&#40;1000&#41;;&#34; schreiben.

Import-Script
05.05.2003, 14:49
BPW7.0 sagt mir jetzt nichts. <BR> <BR>Mit der Timerfunktion in VB kann in bestimmten Intervallen eine Funktion aufgerufen werden. <BR> <BR>Durch DoEvents wird die Kontrolle an andere Tasks abgegeben. <BR> <BR>Siegfried

Import-Script
05.05.2003, 15:07
Das geht schon irgendwie mit Send_Message und Wait_Message, ich dachte nur einer w&uuml;sste auf die Schnelle wie... <BR>Übrigens BPW ist Borland Pascal f&uuml;r Windows, also die letzte Version &#34;Turbo-Pascal&#34; bevor Delphi kam. Hat halt den Vorteil, dass es gewohnt ist und die Turnarounds eben Turbo-like sind. Kommt ohne watztige Oberfläche, also wie Turbo-Pascal-DOS, dann nimmt man statt CRT Unit die WinCRT und pinselt mit Read und Write in ein logischerweise nicht sehr ansprechendes Textfenster. Etwas spartanisch, aber f&uuml;r meine Zwecke völlig ausreichend. Man muss halt so ein paar Windows-Spezifische Funktionen etwas entgegenkommender schreiben, sonst legt man den Rechner lahm. <BR>Also in alter DOS-Manier <BR>ASM &#40; SEI; <BR> irgendwas <BR> CLI &#41; <BR>dann hängt halt alles. <BR>Genauso wie bei repeat until soundsoviel Mikrosec. <BR>Dann ruckeln die anderen Applikationen. <BR>Aber f&uuml;r so ein bisschen Bastel-Port hin und her und paar Meldungen ist´s ausreichend.

Import-Script
27.05.2003, 21:07
in kernel32.dll ist die prozedur &#34;sleep&#34; exportiert. <BR> <BR> <BR>unter vb wärs also z.b.: <BR> <BR>Declare Sub Sleep Lib &#34;kernel32&#34; &#40;ByVal dwMilliseconds As Long&#41; <BR> <BR> <BR>das ist doch genau das, was du benötigst, nicht ?

Import-Script
28.05.2003, 20:45
Ehhhh, klasse!!! Danke!!!! <BR>Weiss zwar noch nicht, wie ichs hinkriege, aber das ist schonmal ein Anfang, auch an andere Windows-Schätzchen und Gemeinheiten heranzukommen.

Import-Script
31.05.2003, 16:28
Das hier habe ich grad in einem älteren Programm von mir gefunden, sollte genau das tun was du willst, Andreas: <BR> <BR>procedure Wait&#40;Time: LongInt&#41;; <BR>var <BR> Start : LongInt; <BR>begin <BR> Start := GetTickCount; <BR> while &#40;GetTickCount &#60; Start &#43; Time&#41; do <BR> Application.ProcessMessages; <BR>end;

Import-Script
01.06.2003, 13:16
Danke nochmals, das Applicartion.ProcessMessaages ist die Lösung. Leider ist der Kram sowas von beschissen dokumentiert, da gehts nur los &#34;handle, h the handle in the wind&#34;... und das ganze dann in C &#40;trotz dass es ein Pascal Compiler ist&#41;, nullterminierte Strings und lauter so Gewurschtel; also irgendwie total am Compiler-User vorbei. <BR> <BR>Ich hab mir bis dato damit beholfen, dass ich in der while-Schleife getkey aufrufe oder den Cursor irhendwohin setze. Das wird wohl intern so gehandled, dass dann andere Programme auch zum Zug kommen.

Import-Script
01.06.2003, 15:48
Joa das ist die WinAPI, das schaut in fast jeder Sprache gleich aus... <BR> <BR>Aber ganz so heftig ist die Sache mit den DLLs dann nun auch wieder nicht, das DLL-Tutorial solltest du dir bei Interesse einmal durchlesen, ist alles relevante verständlich erklärt: <BR><a href="http://assarbad.org/de/sources.shtml" target=_top>http://assarbad.org/de/sources.shtml</a>

Import-Script
02.06.2003, 18:48
Baaaaaaa......?????? <BR> <BR>und wo bleibt bei der ganzen Aktion der &#34;Gelegenheitsprogrammierer&#34;, der nicht den ganzen Tag in Windows- und Compiler Interna w&uuml;tet?, sondern &#34;nur&#34; ein Programm schreiben will? - ohne gleich Windows auseinanderzunehmen. <BR> <BR>Dazu mal ein kleines Beispiel: Ist jetzt absolut ernst gemeint: <BR>Normal-Programmierer schreibt: <BR>WRITE&#40;&#39;BITTE DATEINAMEN EINGEBEN&#39;&#41;; READLN&#40;FILENAME&#41;; <BR>eigentlich ganz profan, nur heute auf den Mammut-BS&#40;en&#41; mit Filenamen &#34;gigantisch&#34; nicht mehr möglich. Jetzt erwarte ich doch, dass mir das BS genau diese Unterst&uuml;tzung gibt, z.B. so: <BR>FILENAME := &#40;FILESELECTORBOX&#41;; <BR>Das sollte unter Windows, Linux, MAC, egal was, einfach diese Box einblenden, mit Listem, neuer Ordner usw. eben bis man dann OK dr&uuml;ckt. <BR>Das Ganze ohne Schnörkel, also der Filename muss nicht mit Getöse von der Soundkarte auf einer Eisenbahn quer &uuml;ber den Bildschirm huschen. <BR>Standard Dialog. Wenn jetzt der Name dank Windows &#40;oder MAC schon immer&#41; nat&uuml;rlicxh bei der Aktion grösser als 254 Zeichen wird &#40;PASCAL&#41;, dann definiere man doch auf den heutigen Rechnern String[nach belieben] also auf einem 32Bit Rechner <BR>mit 512Megabyte RAM : <BR>var FILENAME:STRING[50000]; {why not?} <BR> <BR>Benutze ich das a&#41;falsche BS oder b&#41;falsche Compiler? <BR>Windows - Free-Pascal / MAC - CodeWarrior9Gold <BR> <BR>Ich will doch nur ein saublöd einfaches a´la C64 Progrämmelchen, ohne gleich erschlagen zu werden...

Import-Script
03.06.2003, 10:01
Da hat er Recht ... <BR> <BR>Bei der FileSelectBox hat man ja auch noch einen Miniexplorer dabei, ein Teil das auf File-Vorhanden untersucht, Scrolbalken, Dateifilter, ein paar Knöpfe usw. <BR> <BR>Überigens: <BR>DIM strName as String <BR>INPUT &#34;Bitte Dateinamen eingeben&#34;; strName <BR>OPEN strName FOR OUTPUT AS #1 <BR>ging bis vor kurzem noch in QBasic, sogar unter 95, und NT. Bei 98, 2000 und XP bin ich mir da nicht sicher. <BR> <BR>Siegfried <BR> <BR>

Import-Script
03.06.2003, 10:23
Qbasic geht unter 2000 <img src="http://progshop.com/elektronik/diskussion/clipart/biggrin.gif" border=0> <BR>Ist zur Zeit meine Aufgabe, solche Saurier auf Java umzuschreiben.

Import-Script
03.06.2003, 12:17
Wieso Saurier? QBasic geht wenigstens noch auf eine Diskette drauf. <BR>Andere Frage: Wieso umschreiben? Dann kann man doch gleich Java programmieren. <BR>Hätten die Softwerker nicht innerhalb eines Jahres 10 Dialekte und 20 verschiedene und 30 verschiedene und 40..... - also Java mal Java gelassen und f&uuml;r den Otto-Normalverbraucher zurechtgestutzt; ich war hellauf begeistert, als ich von der Java-Idee gehört habe, wäre fast umgestiegen, aber dann kamen die Saurier!!!

Import-Script
03.06.2003, 12:43
Och, Java-Programme gehen schon auch schön auf Diskette drauf... wenn man die VM schon hat... <BR>Ansonsten kann man ja Memory Stick nehmen... <BR>Ach &uuml;brigens: Diskette = auch Saurier <img src="http://progshop.com/elektronik/diskussion/clipart/lol.gif" border=0> , am Aussterben. <BR>Umschreiben&#40;eben auf Java&#41; deswegen, weil keiner mehr richtig Ahnung hat, wie das Ding eigentlich funktioniert. Muß ja froh sein, daß &uuml;berhaupt noch Quellcode da ist. <BR>Das ist dann eben &#34;Fortschritt&#34;. <BR>Modernere Systeme erfordern modernere Programmiertools. Mit dem alten Zeug will sich kein Entwickler mehr rumärgern. <BR>Wenn man eben mal den &#34;Bildschirmaufbau&#34; von Qbasic und Java vergleicht, kann man nur sagen Qbasic - Bäääääh! <BR>

Import-Script
03.06.2003, 15:08
dann schau dir doch mal den speicherverbrauch an. <BR> <BR>und qbasic kann man &#40;mit etwas viel gutem willen&#41; auch mit assembler kombinieren. und auch sonst kriegt man h&uuml;bsche grafiken hin...

Import-Script
03.06.2003, 16:49
Ja, 15MB f&uuml;r etwas simples taschenrechnerähnliches sind schon heftig...&#40;hat man aber schnell reigeholt wenn man den unn&uuml;tzen Krampf aus der Statusleiste rausholt ;&#41;&#41; <BR>Daf&uuml;r bekommt man aber mit einem Programm Linux, Apple, Windows &#40;und ein paar unbedeutende&#41; unter einen Deckel&#40;so ziemlich&#41;. <BR> <BR>C&#43;&#43; ist da nicht so speicherhungrig. <BR>Java ist ja noch nicht in einem Endzustand, sondern wird ständig verbessert, mal sehen was draus wird. <BR> <BR>Wenn du nat&uuml;rlich so viel Zeit hast, dich mit QBasic abzuquälen, bitte. Wird aber immer schwieriger werden, die Programme zum Laufen zu bringen. Die &#34;Entwicklungsumgebung&#34; ist auf keinen Fall mehr zeitgemäß. Die Benutzung auch nicht mehr. <BR>&#40;mal ganz abgesehen von &#34;Spaghetticode macht Freude&#34;&#41; <BR> <BR>Assembler: <BR>- Zur Steuerung von Hardware: <BR>Die NT-Betriebssysteme lassen das schon nicht mehr zu, einfach steuerbare Hardware wird auch immer seltener. <BR>- f&uuml;r schnelle Programme: In C &#40;wahrscheinlich auch C&#43;&#43;&#41; kann man noch viel einfacher Assembler integrieren. Assembler macht auch nur solange Sinn, wie der Programmierer sein Programm &uuml;berblicken kann. &#40;Wer programmiert heutzutage unter Windows noch Assembler??&#41;&#40;böse Professoren behaupten ja, C sei nichts weiter als besserer Assembler, keinesfalls eine Hoch-programmier-sprache&#41;

Import-Script
03.06.2003, 22:19
Lange Zeit ist der Thread nun offen, will jetzt auch meinen Senf dazugeben: <BR>Zum eigentlichen Thema: <BR>1. Assembler ist immer n&uuml;tzlich, egal in welcher Sprache!!! <BR>2. Eine &#34;einfachere&#34; Sprache zum Einstieg kann nicht schaden &#40;VB; QBasic, etc.&#41; <BR>3. C/C&#43;&#43;/C# ist dann auf jeden Fall zu empfehlen, wen du kommerziel was machen willst, oder einfach nur den &#34;puren&#34; Windows Style raushängen mags. Ob ihrs glaubt oder nicht, auch heute wird noch oft Assembler in C&#43;&#43; integriert!!! Ich kenne diverse Leutz die DirectX 8/9 bunt &uuml;ber ASMs ansteuern, weils sie meinen das wär schneller &#40;stimmt vieleicht?&#41;; auf jeden Fall ist es kleiner; Quellcodes von Demos die DirectX nutzen beinhalten meißtens Asm {...} Statements in H&uuml;lle und F&uuml;lle. <BR> <BR>Hier poste ich noch ein kleines Beispiel meiner C&#43;&#43; Windows Kunst...f&uuml;r Abst&uuml;rze oder Datenverluste oder was auch immer wird KEINE Verantwortung &uuml;bernommen; Benutzung auf eigene Gefahr!!! <BR>Aber: Nur Mut! JEDER &#40;na gut, FAST jeder ;&#41; kann sowas schreiben, sind ja nur 6149 Zeilen Quellcode &#40;Kommentare NICHT mitgezählt!&#41; <BR>Ach ja: <BR>Beide Dateien in EIN Verzeichnis extrahieren und &#34;Enjoy!&#34; <BR> <BR><!--attachment: TheEdit-7386.zip*mime_zip.gif*application/x-zip-compressed*220.9*Proggy*TheEdit%2ezip --><center><table border=1><tr><td><img src="http://progshop.com/elektronik/diskussion/icons/mime_zip.gif" align=left alt="application/x-zip-compressed">Proggy<br><a href="http://progshop.com/elektronik/diskussion/messages/4285/TheEdit-7386.zip" target="_blank"><b>TheEdit.zip</b></a> (220.9 k)</td></tr></table></center><!--/attachment-->

Import-Script
05.06.2003, 12:19
zum thema hardware-steuern/winnt: <BR>ein weit verbreiteter irrglaube. man kann auch unter nt noch so ziemlich alles ansteuern. nur was nicht bekannt ist, wird nicht zugelassen. aber z.b. die grafikkarte kann man ganz schön verwursteln, dasselbe gilt f&uuml;r parallel/seriell-ports. <BR> <BR>was gesch&uuml;tzt wird, ist z.b. der speicher. <BR> <BR> <BR>zum thema &#34;Spaghetticode macht Freude&#34;: <BR>da stimme ich dir nur halb zu. auch mit qb ist es möglich einigermassen strukturierte programme zu schreiben. es kommt halt auf den programmierer/das programmdesign an. mit c/c&#43;&#43; kann man &#40;meiner meinung nach&#41; viiieeeel mehr rumwursteln und unleserlichen code schreiben. aber pascal ist sowieso am besten :-&#41; <BR> <BR> <BR>&#62;Wer programmiert heutzutage unter Windows noch Assembler?? <BR> <BR>z.b. <a href="http://grc.com" target="_blank">http://grc.com</a> <BR> <BR> <BR> <BR>nur mal so zum bedenken: c/c&#43;&#43; ist in meinen augen nicht der weisheit letzter schluss. ich halte die beiden sprachen f&uuml;r hack-sprachen, also eigentlich ungeeignet, um programme zu schreiben. dazu kommt wie windows-api welche im vergliech z.b. zu beos oder qnx wirklich amateurhaft erscheint. richtig schön wird programmieren mit freepascal unter beos.

Import-Script
05.06.2003, 14:55
Hehe, was lese ich da? BE-OS??? <BR>Also ich als Pascal-Verfechter und auch Basic-Gerne-Benutzer stimme da absolut zu. Jetzt machts mich doch umso neugieriger, wenn ich höre Free-Pascal unter BE-OS. <BR>Ich hab mit dem Gedanken gespielt, BE-OS zu benutzen, aber die Zeta-Leute wollen wohl nichts verkaufen, jedenfalls nicht so wirklich; eine Anfrage meinerseits blieb bis dato unbeantwortet. <BR>Lieber Doktor Teufel, wenn Du da Infos zu hast, schick einem mittlerweile programmiertechnisch zum Masochisten gewordenen, extrem suizidgefährdeten &#34;unter Windows und MAC Pascaler&#34; doch mal eine Mail. Vielleicht kannst Du ein Leben retten - oder mich komplett zum Programmiersatan machen. Nur &uuml;ber die Folgen sei Dir dann bewusst... <BR><a href="mailto:A.Seck@T-online.de">A.Seck@T-online.de</a><img src="http://progshop.com/elektronik/diskussion/clipart/uhoh.gif" border=0>

Import-Script
05.06.2003, 18:20
Also nun blick ich nicht mehr durch: <BR> <BR>&#34;Kann man unter Windows mit C, Turbo-C und C&#43;&#43; denn nun Hardware &uuml;ber z. B. Parallel-Port und Serieellen-Port ansteuern oder nicht???&#34; <BR> <BR>Gruß Winnie

Import-Script
05.06.2003, 20:16
@Wiennie: <BR>Ja klar, man kann! <BR>Wenn es nicht direkt geht, findet man im I-Net leicht Libaries in dll-Form die das können &#40;AUCH unter NT&#41;. Meißt reicht es aber die C-Funktion Out&#40;Port als HEX, bytes&#41; oder so ähnlich zu benutzen.

Import-Script
05.06.2003, 22:31
Qbasic: Soweit ich in Erinnerung habe kann man unter NT die serielle Schnittstelle großteils problemlos ansprechen, die parallele nur &uuml;ber den dazugehörigen Softwareinterrupt. Keine vollständige Kontrolle. <BR>Wenn ich jetzt an meine selbermach-ISA-Karte ran will -&#62; keine Chance. <BR> <BR>Mit Visual C/&#43;&#43;: <BR>Serielle Schnittstelle ansteuern geht problemlos. <BR>Funktioniert mit File-Befehlen, nur das keine Datei aufgemacht wird, sondern ein Gerät. <BR>Zur seriellen Schnittstelle habe ich ein doch recht stattliches Demoprogramm von Microsoft samt Quellcode&#40;VC&#41;, 166 kB in zip. <BR> <BR>Bei Parallelport ist es nicht so einfach, man kann zwar Daten &uuml;ber die 8bits nach außen schicken, aber auf die anderen Leitungen hat man keinen Zugriff. M&uuml;sste man Treiber daf&uuml;r schreiben. Oder runterladen. <BR>Direktzugriff &uuml;ber in / out lassen die NT-Betriebssysteme nicht zu, ist auch keine saubere Lösung&#40;Chaos wenn mehrere Programme die gleiche Schnittstelle verwenden wollen&#41;. <BR> <BR>Dieser FTDI-USB-Chip 245 könnte eine recht gute Lösung sein&#40;virtueller COM-Port&#41;, der sich dann wieder mit den File-Befehlen ansprechen lässt. <BR>Habe aber noch &uuml;berhaupt nicht in dieser Richtung experimentiert. <BR> <BR>

Import-Script
06.06.2003, 09:44
Ganz locker wirds mit Karten, von denen der PC nichts weiss. Was er nicht weiss, macht ihn nicht heiss... <BR>Solange man ihm nicht seine eingenen Schnittstellen und Interna durcheinanderbringt hat wohl keiner &#40;auch ein Betriebssystem&#41; etwas dagegen, an Hardware rumzuprogrammieren. NT und Konsorten mögen es nur nicht, dass man den &#34;User-Mode&#34; hintergeht. Dto. Unixe; man braucht also f&uuml;r diese Operation Supervisor-Rechte, und die kann man sich holen bzw. selbst geben. <BR>Unter Win 95,98 etc. gibts &uuml;berhaupt keinen Ärger, solange man nicht gerade die LPT1 f&uuml;r Prommer, Drucker, und Funkmodem und und und benutzt. Nur, was solls, wer macht das schon? <BR>Ich habe mir eine 0815 2fach Parallelport Karte dazugesteckt &#40;Adressen halt jenseits von 3BC,378,278&#41;, ohne IRQ ohne DMA ohne ohne... und fertig. Der Gerätemanager von 98 zeigt sie auch nicht an. Gut so, sei mir nur Recht. Wenn ich will, dass er es weiss, dann erzähle ich es ihm schon. ICH!!! und nicht dieser blöde Hardwareassistent. Darauf greife ich mit Port-Befehlen zu, respektive in Free-Pascal mit Assembler-Äquivalenten. Dagegen gibt es doch nichts einzuwenden und &#34;unsauber&#34; ist das auch nicht. Ich betreibe ein Gerät XY mit einer Interfacekarte XY und einer zugehörenden Software XY. Das ist doch OK.

Import-Script
06.06.2003, 10:33
In einer Rechnerumgebung, wo nur eine Anwendung läuft, spricht auch &uuml;berhaupt nichts dagegen. <BR> <BR>Allerdings wollten die gierigen Anwender alles gleichzeitig auf ihren Kisten haben. Das war dann halt die Geburtsstunde der sog. Multitasking-Betriebssystem, fr&uuml;her noch QEMM und Konsorten. <BR> <BR>Später kann dann auch noch Windows dazu. Hier machts ja auch Sinn, das nicht jede Anwendung an der Mouse rumzieht, jede Anwendung am Drucker rumdruckt, und der Bildschirm etwas geordnet aufgebaut ist. Da muss es im inneren des BS etwas b&uuml;rokratischer zugehen, sonst könnte man die Vorz&uuml;ge solcher Betriebssysteme gar nicht nutzen. <BR> <BR>Ihr habt es so gewollt. <BR> <BR>Siegfried

Import-Script
01.10.2003, 13:49
Das hier habe ich grad in einem älteren Programm von mir gefunden, sollte genau das tun was du willst, Andreas: <BR> <BR>procedure Wait&#40;Time: LongInt&#41;; <BR>var <BR>Start : LongInt; <BR>begin <BR>Start := GetTickCount; <BR>while &#40;GetTickCount &#60; Start &#43; Time&#41; do <BR>Application.ProcessMessages; <BR>end;<img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0> <BR> <BR> <BR>das zur Erinnerung, kam von Sascha, läuft leider unter Free-Pascal nicht so. An die Windows Funktionen heranzukommen ist und bleibt ein Buch mit Sieben Siegeln oder Compilervergewaltigung oder oder oder; Echt Dreck, dass die ihre Hausaufgaben nicht machen; das Thema hätte die interne DELAY-Funktion von Haus aus erschlagen müssen. <BR>Nun gut, es geht anders: <BR>var Dummy:char; <BR>Schleife mit Tickcount, ob &#34;Repeat until&#34; oder &#34;While&#34; ziemlich egal, ein <BR>DUMMY := Readkey; <BR>in der Schleife tut es sauber hoch drei. <BR>Wie es scheint verbirgt sich in der Funktion eben dieser Process-Messages Aufruf; und es läuft sauberst - mein Programm während ich hier batronixe; kein Thema; kooperativ ohne Ende. Ich kann auch keinerlei negative Auswirkungen feststellen; selbst Musik hören geht zusätzlich nebenbei während mein Akkulader seine Grafik plottet und ich dies hier schreibe. <BR>WIN98 wohlgemerkt, nicht NT, da geht´s &#40;sollte es&#41; ohne solche Tricks. <BR>Werd ich demnächst mal testen...<img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0> <BR>Nur als kleines Feedback mal. <BR>

Import-Script
14.10.2003, 12:05
Die sache mit den &#34;processmessages&#34; ist in Ordnung. <BR>Allerdings sollte man beachten, dass das Programm dann immer noch beachtlich Taktzyklen &#34;verbraucht&#34;. <BR> <BR>Es gibt noch die Möglichkeit, sich eine ISR auf dem Timer Interrupt zu schreiben. <BR>Ich selbst arbeite mit Delphi. Dort gibt es zB auch ein &#34;Timer-Objekt&#34; &#40;weiss nicht, ob es sowas auch unter BPW gibt&#41;.

Import-Script
17.10.2003, 11:23
Das ist genau mein Problem: Ich will diesen Objekt-Rotz nicht. An Sachen wie TimerINT-Routine hatte ich auch schon gedacht, am liebsten wäre es mir sogar, direkt an den Uhrenchip zu gehen und dem &#34;den Wecker zu stellen&#34;. Leider scheitert das dann mit der Portabilität auf andere Rechner, die keinen Wecker-Uhrenchip haben.<img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0>