AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte PC-Lautsprecher direkt ansprechen mit Delphi + Assembler
Thema durchsuchen
Ansicht
Themen-Optionen

PC-Lautsprecher direkt ansprechen mit Delphi + Assembler

Ein Thema von TOC · begonnen am 23. Mär 2006 · letzter Beitrag vom 25. Mär 2006
Antwort Antwort
Benutzerbild von TOC
TOC
Registriert seit: 5. Jan 2005
Hi!

Hey, ich hab da mal im InterNet herumgesucht und bin durch Zufall auf ´ne Seite www.Delphi-Fundgrube.de mit Delphi-Beispielen gekommen. Da wurde erklärt wie man mit ein paar Assembler-Prozeduren die Ports direkt ansteuern und dem PC-Lautsprecher so Töne entlocken kann. Es sind zwei sehr kleine Assembler Prozeduren. Ich habe damit ein wenig herumgespielt und diese kleine unsinnige PC-Speaker-Demo gebastelt.

Allerdings kann so ein Beep schon seinen Sinn machen, zum Beispiel innerhalb einer Komponente wenn ein Fehler auftritt und man nicht auf die HighLevel-Soundfunktionen zugreifen kann oder will. Oder auch beim Testen und Debuggen eines Programmes.

Ihr könnts Euch ja mal ansehen.

Grüsse von TOC!
Angehängte Dateien
Dateityp: zip speakerbeep_f_r_delphi_3.0_213.zip (111,6 KB, 12x aufgerufen)
Dateityp: zip speakerbeep_f_r_delphi_7.0_109.zip (208,2 KB, 28x aufgerufen)
Dateityp: zip speakerbeep_f_r_delphi_3.0_windows_nt_457.zip (110,9 KB, 8x aufgerufen)
Dateityp: zip speakerbeep_f_r_delphi_7.0_windows_nt_214.zip (206,7 KB, 32x aufgerufen)
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
 
Benutzerbild von Loki77
Loki77

 
Delphi XE2 Enterprise
 
#2
  Alt 23. Mär 2006, 15:49
Bekomme leider nur eine Fehler-Meldung (Priviligierte Anweisung) , ebenso beim Beenden des Programms!!!!
^Kann es mit X nicht beenden...
(Oder muss es immer über den Task-Manager beendet werden?).
Falls es mal läuft gebe ich Feedback....
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#3
  Alt 24. Mär 2006, 16:51
Hi!

Zitat von Loki77:
Bekomme leider nur eine Fehler-Meldung (Priviligierte Anweisung) , ebenso beim Beenden des Programms!!!!
^Kann es mit X nicht beenden...
(Oder muss es immer über den Task-Manager beendet werden?).
Falls es mal läuft gebe ich Feedback....
Also, den Fehler kann ich mir nit erklären, ausser das in der HTML-Seite von der ich die Assembler-Befehle habe erklärt ist das es unter Windows NT nich geht. Die Seite findest Du übrigens im Archiv. Aber da gibt es eine Beep-Funktion der man die Frequenz in Herz und die Zeit in Millisekunden angeben kann, in der Windows-Bibliothek von Win NT! Es könnte auch sein das Dein Delphi 2006 diese Assembler-Befehle nicht akzeptiert.

Also unter Delphi 3.0 Pro und Delphi 7.0 Pe hab und Windows 98 SE habe ich es getestet, klappt einwandfrei.

Nein, du must es normalerweise nicht über den Task-Manager beenden. Normalerweise reicht ein klick auf das Schliess-Symbol völlig aus!

Also, ich hab´s grad nochmal runtergeladen und hier im InterNet-Kaffe getestet, selber Fehler wie bei Dir. Dann liegt es wohl daran das unter Windows-XP ein direktes ansteuern der Ein/Ausgabe-Ports mit Assembler verboten ist, sorry !

Grüsse von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#4
  Alt 24. Mär 2006, 16:56
Zitat von TOC:
Also unter Delphi 3.0 Pro und Delphi 7.0 Pe hab und ]b}Windows 98 SE[/b] habe ich es getestet, klappt einwandfrei.
...aber leider (bzw. zum Glück) nicht mehr unter NT-basierten Betriebsystemen. Portzugriffe sind, wie nahezu alle direkten Harwarezugriffe ab NT, nicht mehr vom Usermode aus möglich, und erfordern Treiber. Windows ME wäre somit die letzte Version in der das so ginge.
Fabian K.
  Mit Zitat antworten Zitat
shmia

 
Delphi 5 Professional
 
#5
  Alt 24. Mär 2006, 16:56
Zitat von Loki77:
Bekomme leider nur eine Fehler-Meldung (Priviligierte Anweisung) , ebenso beim Beenden des Programms!!!!
Ganz klar, ab Windows NT und höher kann nicht mehr direkt auf einen Port zugegriffen werden !!
Das geht nur mit Windows 3.x, 95, 98 und evtl. auch ME.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#6
  Alt 24. Mär 2006, 16:59
Hi!

Zitat von shmia:
Zitat von Loki77:
Bekomme leider nur eine Fehler-Meldung (Priviligierte Anweisung) , ebenso beim Beenden des Programms!!!!
Ganz klar, ab Windows NT und höher kann nicht mehr direkt auf einen Port zugegriffen werden !!
Das geht nur mit Windows 3.x, 95, 98 und evtl. auch ME.
Na, dann haben wir das jetzt ja wohl geklärt.

Grüsse von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#7
  Alt 25. Mär 2006, 15:09
Hi!

Ich hab´s mal überprüft. Es gibt in der Windows.pas tatsächlich eine Funktion Beep(Hz,MilliSec). Ausgehend davon hab ich die Speaker-Demo mal auf diesen Befehl umgeschrieben und allen Assembler-Code entfernt. Wenn das stimmt was in der HTML-Seite steht dann läuft diese Version ab Windows NT. Ich hab´s hier im InterNet-Cafe unter Windows XP getestest und es scheint zu funktionieren, das heist es kommt keine Fehlermeldung. Da es hier im InterNet-Cafe aber recht laut ist konnte ich nur ein leises Säuseln hören... Windows 95 und 98 SE ignorieren allerdings die Frequenz und die Zeitangabe wenn eine Soundkarte installiert ist und geben statdessen über die Soundkarte den System-Beep aus, den man unter der "Systemsteuerung/Akustische Signale" einstellen kann.

Das wär´s noch wenn ein Assembler oder C-Programmierer für uns einen PC-Speaker-Treiber schreiben würde... Ich hab mal irgendwo gelesen das man in Delphi leider keine Treiber programmieren kann.

Die ganze Speaker-Demo ist sowieso nur eine unsinnige kleine Spielerei. Heute leben wir ja im Midi- und MP3-Zeitalter. Allerdings hat vor vielen vielen Jahren Techno mal so angefangen: Mit nem Beep aus dem Speaker !

Grüsse von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz