お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"もう一つのBeep音の再生方法"

この発言に対し以下のコメントが寄せられています
#01424 いさやん さん RE:もう一つのBeep音の再生方法

   Windows.Beep や Windows.MessageBeep を使用しないもう一つの Beep音再生方法です。 おそらく確実に再生することが可能です。 function Beep2(nCnt: Integer):Boolean; //成功or失敗 var FTempF:TFileStream;//キー入力ファイル fSuccess:Boolean; //CreateProccessが成功したかどうか si:TSTARTUPINFO; pi:TPROCESSINFORMATION; szCommandPath:string; szSystemPath,szPath,szBuff:array [0..255] of Char; begin Result := False; //TSTARTUPINFOの初期化 FillChar(si,SizeOf(si),0); si.cb := SizeOf(TSTARTUPINFO); si.dwFlags := STARTF_USESHOWWINDOW; si.wShowWindow := SW_HIDE; if IsWindowsNT() then begin //NTなら.... GetSystemDirectory(szSystemPath,SizeOf(szSystemPath)); szCommandPath := StrPas(szSystemPath)+'\CMD.EXE'; end else begin //NTでないなら.... GetWindowsDirectory(szSystemPath,SizeOf(szSystemPath)); szCommandPath := StrPas(szSystemPath)+'\COMMAND.COM'; end; //コマンドラインの作成 StrPCopy(szBuff, Format('%s /c echo %s',[szCommandPath, StringOfChar(#7, nCnt )])); try fSuccess := CreateProcess(nil,szBuff,nil,nil,True,0,nil,nil,si,pi); if not fSuccess then Exit; //失敗したらExit while WaitForSingleObject(pi.hProcess,0) = WAIT_TIMEOUT do Application.ProcessMessages; //終了するまで待つ finally //コンソールの破棄 if Boolean(pi.hThread) then CloseHandle(pi.hThread); if Boolean(pi.hProcess) then CloseHandle(pi.hProcess); end; Result := True; end; 例) procedure TForm1.Button1Click(Sender: TObject); begin Beep2(1); end; みてわかると思いますがECHO コマンドを利用してます。 まぁこんな方法もあるってことで^^; 作成にあたり、十兵衛さんのFormatCom nifty:FDELPHI/mes/16/00558 を参考にしました。感謝_(._.)_ @ノ" いさやん ~~~~~  Original document by いさやん 氏 ID:(YIB02642)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum