| Autor |
Beitrag |
Flamefire
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mi 13.01.10 22:33
Habe z.Zt. Folgendes vor:
Damit mein Vater über Skype mit seinen Eltern telefonieren kann, richte ich auf deren PC Wake On LAN ein.
Jetzt kann ich mit einem einfach Delphi-Programm den anderen PC hochfahren. Skype wird gestartet, es klingelt, alles super.
Jetzt sind die aber mal nicht da, der PC läuft. Dumm. Also muss ich ihn wieder runterfahren.
Da ich für WOL schon einen Port durchleiten muss, wollte ich jetzt einfach ein Mini-Programm schreiben, dass im Hintergrund läuft und auf einen Schlüssel in einem Paket an dem Port lauscht und dann den PC runterfährt.
Eigendlich sollte dafür doch ein Konsolenprogramm und ein blockierendes UDP-Server-Socket reichen.
Also mit RecvFrom am Socket hängen und alle Pakete abfangen, prüfen, handeln.
Frage ist jetzt: Wie kriege ich es hin, dass kein Konsolenfenster mit der Meldung "Programm reagiert nicht mehr" offen bleibt? Im Hintergrund wäre es schön (man braucht nix sehen), aber wie geht das?
Dann wäre noch: Gibt es Timeouts o.ä. was mir den Spaß vermießen könnte? Und was ist beim normalen Herunterfahren des PCs? Bleibt der dann hängen, weil das Programm blockiert?
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mi 13.01.10 22:49
Vorsichtig geantwortet:
Multithreadening?
|
|
Flamefire 
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mi 13.01.10 23:17
eigendlich nicht nötig. Ich habe ja kein Problem damit, dass er blockiert. Er soll ja nix andres machen, außer horchen ^^
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mi 13.01.10 23:38
Und wozu ein Blocking Socket nehmen? Würde das eher über ein Non-Blocking-Socket regeln ...
Ansonsten Über ein Sockeet-Timeout handhaben und immer beim Timeout App.ProcessMsgs aufrufen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Astat
      
Beiträge: 75
Erhaltene Danke: 1
Windows 2000
D6, D7, D2007, Lazarus
|
Verfasst: Do 14.01.10 10:12
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Do 14.01.10 11:14
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Xearox
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Do 14.01.10 15:54
also, ich kenne mich mit Delphi so gut wie garnicht aus, aber nur so als Idee...
Wie wäre es denn mit einem, hmm...sagen wir mal, idle Programm...
Das Programm, wie auch der Bildschirm schoner, prüft, ob irgendetwas am pc gemacht wird.
Ob die Maus zu bewegen oder eine Taste zu drücken...
Falls nichts dergleichen Passiert, wird der PC einfach herunter gefahren, so wie das auch in der Energie verwaltung steht,...
bspw. nach 20min wird Bildschirm ausgemacht, nach 60min fährt der PC runter.
denn ich sag mal so, wenn man skyped, dann drückt man sicherlich irgendwann mal eine taste, oder berührt die maus...
oder man prüft, ob sich da sound technisch was tut...
also irgend sowas...
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 14.01.10 16:33
naja, ich denke das der PC sozusagen nur als Ausgang ins Internet dient und der PC von dem sein Vater skyped per Netzwerk mit dem Ausgang verbunden ist. Also muss man weder Tasten drücken noch mäuse bewegen.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
|