>879
SendMessageかmouse_eventでだいたい再現できると思う。
ビットマップにドットを打つ場合、
一番高速に処理できるものってどれなんでしょうか
ScanLine? それともAPIから?
レジストリから REG_BINARY を読み込んで
文字列にして表示する方法はどないすればよかとですか?
ReadBinaryData や
APIの RegQueryValueEx を使ってもどうにもうまいこといかんのです。
バイナリデータを文字列にして表示する方法は知ってるの?
それともレジストリから取るのができないの?
901 :
デフォルトの名無しさん:04/03/05 22:46
誘導されたので、こちらで質問よろしいでしょうか。
バージョン6のパーソナル使ってます。
MP3を鳴らそうとして、コンポーネント、ActiveXからWindowsMediaPlayerを追加しました。
ここで、繰り返し再生させたいのですが、WMPの設定で連続再生のボタンにチェックをいれても
1回しかならずに止まってしまいます。
どのようにすれば繰り返し再生できるのでしょうか。
なお、通常のTMediaPlayerを使用すると富士通のパソコンだと動くのですが、
vaioだと鳴らなかったりしたんで、WMPをインストールしました。
902 :
デフォルトの名無しさん:04/03/05 23:45
D6 Proで組んだプログラムなのですが、
Keybd_eventでキーの模擬をしているのですが、Win2000では何の問題も無いのに
XPではたくさんエラーが出てしまいます。
XPをクラシック表示にしても同じです。
この症状の回避策ってご存じ無いでしょうか?
他のスレが良ければ誘導してください。
とりあえず、「エラーが出ます」って場合は
そのエラーを書くのが(略)
>>903 keybd_eventを使って100回ぐらいキーを入力させているのですが、
Win2000マシンではなんの問題も無いのに、XPマシンだと模擬したキーが抜けるとか、
全くキーコードが送出されないときがあるんですよ。
NT系のOS は何故かキーをロストする妙な現象が昔からあったからね。
(キーボード端子から10mS以内に2つのキーを送ると2つめが無視される)
とりあえず時間を置いてみたら?
keybd_event は物理的なキー押し下げをエミュレートしているわけではないから
関係ないんじゃないかな?
>10mS以内に2つのキーを...
ってのも、単にキーボードが壊れているかドライバがタコか... 906 の思い込みだと思う。
どこかにこの件について公開された資料ある?
釣りではないし、マジな話だよ。
PS2キーボード端子用バーコードリーダのソフト作ってたからね。
ドライバがタコなのか、OSがロスとするのかは判らなかったけどな。
なるほど。キーボード入力をキーボード以外の用途に使う。って話だね?
905 さんは、keybd_event API に関して、MSDN をよく読むこと。
現在の WIndows では、非推奨 API になっている。sendinput か何か代替 API が
あるのでそれを確認。
たぶん、テキストサービスあたりの問題ではないかなと思う。
皆さんレスありがとう。
910殿の書いた代わりのAPIに非常に興味があるのですが、
それはどのようなAPIでしょうか?
解決策が分からないので、今日秋葉を徘徊した時にWin2000の
ライセンスを探し回ってた・・・
APIが分からなかったらOSをVersion Downするしかないのかな?鬱
ListViewをvsReportで表示しているとき、キャプションが表示しきれないと
ぴこっとキャプション全体が表示されるのを止めたい。
だけど、カーソルを合わせたときにはInfoTipを表示したい。
これを実現する方法があったら教えてください。
ん?カラム幅って表示されるもんの長さによって自動的に変わったっけ?
デフォルトで ... になったと思うんだが
カーソル合わせれば内容出るし
質問読み間違えてるのかな
>>914 びろーんと横一本になるのが気に食わないのですよ。
OnInfoTipでテキスト突っ込めばInfoTipで改行表示できるので
カーソル合わせのときのキャプション自動表示だけを切れないかな、と。
ショートカットで使うアイコンと
フォームの左上に出てくるアイコンを
違うのにするのはどうやるの?
ショートカット? ショートカットなら IShellLink::SetIconLocation で変更可能
32x32と16x16でデザインを変えたらいいという話?
918 :
デフォルトの名無しさん:04/03/07 08:58
901なのですが、まだできません。
どなたか教えていただけないでしょうか。
誘導した人が書いてくれるんじゃないの?
920 :
デフォルトの名無しさん:04/03/07 09:04
わかりにくい質問ですみません。
プログラムを起動させるときにクリックするアイコンと、
フォームの左上に出てくる絵を違うものにしたいという
質問なんです。
>>921 プロジェクトオプションのアプリケーションのアイコンと、
フォームのIconプロパティをそれぞれせってー
今はAccessを使ってます。これからDelphiを習得したいのですが、
デスクトップ用データベースを選ぶとするなら何が良いのでしょうか?
DbaseとかParadoxとかバージョンも複数有りますが何が違うのでしょうか?
>>923 何を選んでも、Delphi側のコードは殆ど直さなくても良いので、あんまり考えなくていいと思うけど
目的は何ですか?
>>924 1万から10万件程度のテーブルを検索更新する程度で、作成したプログラムと
ファイルを配布したいのです。Accessだとバージョンが複数あり検証が難しし、
配布先にAccessが無い事もあるのでDelphiで作り直そうと考えています。
927 :
デフォルトの名無しさん:04/03/07 16:39
プログラムが、スタートアップから起動したのか
どうかを知る方法を、教えて下さい。
>>928 ホントに難しい問題だね。
まずスタートアップにショートカットがある事、
そして、GetTickCountが一定値以下である事(ただし49.7日で一周する)
くらいかなあ
>>928 スタートアップのショートカットにそれとわかるような引数を指定すればいい。
ファイルの名前を変えてコピーしたいのですが、
var
Name: String;
FileTo,FileFrom: TFileStream;
begin
(中略)
FileFrom := TFileStream.Create(FilePlaceLE.Text , fmOpenRead + fmShareDenyWrite);
FileTo := TFileStream.Create(Name , fmCreate + fmShareExclusive);
Try
FileTo.Write(FileFrom,FileFrom.Size)
Finally
FileFrom.Free;
FileTo.Free;
end;
とやると、FileTo := TFileStream.Createの行で「定数式が範囲を越えました」とエラーが出ます。
解決策をお教え願いませんでしょうか。
>>931 fmCreate or fmShareExclusive
933 :
デフォルトの名無しさん:04/03/07 20:17
Setforegroundwindowで目的のWindowを表に出したいのですが、
Windows2000だときちんと動作するのにXPだと、該当のソフトのタスクバーが
茶色に点滅するだけで表に出てこないことがあります。
この症状を回避する方法があったら教えてください。
936 :
デフォルトの名無しさん:04/03/07 21:22
>>934 素早い的確なレスありがとうございます。
Cの使い方が分からないので意味半分しか理解していないのですが、
nForegroundID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
nTargetID = GetWindowThreadProcessId(hWnd, NULL );
AttachThreadInput(nTargetID, nForegroundID, TRUE ); // TRUE で結び付け
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,&sp_time,0);
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,0);
SetForegroundWindow(hWnd);
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,sp_time,0);
AttachThreadInput(nTargetID, nForegroundID, FALSE ); // FALSE で切り離し
この中のどの部分にFindwindowで見つけた目的のWindowのHandleを入れれば
良いのでしょうか?
hWndでしょう
938 :
デフォルトの名無しさん:04/03/07 22:46
>>937 今試しているのですがなかなか、うまくいきません。
もうちょっとやってみます。
939 :
933=936:04/03/07 23:09
やっているのですが、どうしてもエラーが回避できません。
nForegroundID := GetWindowThreadProcessId(GetForegroundWindow(), NULL);
未定義の識別子NULLとなってしまいます。
nTargetID := GetWindowThreadProcessId(hWnd, NULL );
指定された引数で呼び出すことのできるオーバーロード関数'GetWindowThreadProcessId'が定義されていません
AttachThreadInput(nTargetID, nForegroundID, TRUE ); // TRUE で結び付け
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,&sp_time,0);
不正な文字が入力ファイルにあります:'&'
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,0);
未定義の識別子 LPVOID
SetForegroundWindow(Wnd);
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,sp_time,0);
'Cardinal'と'Pointer'には互換性がありません
となってしまいます。
たぶんCのソースをDelphiに置き換えられていないのが原因だと思うのですが、
どのようにすれば良いのでしょうか?
NULL → nil
&sp_time → @sp_time (元記事の最後のsp_timeは&sp_timeの間違い)
(LPVOID)0 → nil
ありがとうございます
できました
>>925 ありがとうございます。
もしBDEを利用するのであればどれが良いのでしょうか?レコード件数やデータ容量
の制限等でDbaseとかParadoxの資料が探せませんでした。
>>927 ADOを利用してMDBを使う、と言う事でしょうか?
Access2000のMDBは更新していくとファイル自体が増加し2Gの所でエラーが
発生してしまいす。そこでMDB以外を検討してます。DbaseとかParadoxについては
知識が無いのですがこれらのファイルでも2G位が上限でしょうかね?
943 :
933=936:04/03/07 23:41
偽者まで出てきた。俺って人気者?
>>940 教えていただいた方法で出来ました。ありがとうございました。
>>941 お前ってエスパー?
単純に「質問者はトリップ付けろ」って話。
945 :
デフォルトの名無しさん: