トップページ⇒tech
1001コメント301KB

VBプログラマ質問スレ(6.0以前) Part46

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/02/03(金) 22:58:33
VisuarlStudio
0152デフォルトの名無しさん2006/02/05(日) 22:21:36
>>148
最初は誰でも知識ゼロなんだから、あせらずゆっくり確実に一歩一歩。
0153デフォルトの名無しさん2006/02/05(日) 23:49:29
>>148カワイソスカワイス
0154デフォルトの名無しさん2006/02/06(月) 00:36:50
俺的WinSock2の良書:
WinSock2puroguramingu (改定第二版)
ルイス・ナッパー著
ISBN 4-7973-3044-9
0155デフォルトの名無しさん2006/02/06(月) 01:04:45
puroguramingu て
0156デフォルトの名無しさん2006/02/06(月) 01:06:03
このタコ普通に変換忘れてるな
0157デフォルトの名無しさん2006/02/06(月) 01:23:43
>>155-156
ちゃんと名前入れなよ
0158デフォルトの名無しさん2006/02/06(月) 01:34:05
Inet コントロールで GetChunk メソッドを使いデータを取得しているのですが、
途中、中断したく Cancel メソッドを実行するものの、タスクは回り続けてるようなんですが、
こういった場合、どう対処すればよろしいでしょうか。ご教授のほどどうぞよろしくお願いします。
0159デフォルトの名無しさん2006/02/06(月) 01:37:25
>>158
仕様です
0160デフォルトの名無しさん2006/02/06(月) 01:40:10
それを言うなら「ご教示」だろ
0161デフォルトの名無しさん2006/02/06(月) 02:21:33
>>141
紙のユーザーズマニュアルは添付しないでCD−ROMやwebで済ます。
0162デフォルトの名無しさん2006/02/06(月) 02:23:47
>>141
顧客の要望でVB使うことになったのなら、
なんとかゴネてプログラム作らない方に仕向ける
これ最凶
0163デフォルトの名無しさん2006/02/06(月) 02:27:07
未だにヴィクトリーベーシックなんかやってんだ?
0164デフォルトの名無しさん2006/02/06(月) 02:28:38
ちなみに猫が800匹でてきます
0165デフォルトの名無しさん2006/02/06(月) 02:31:00
Wicrosoft Victory Basic 6.0
0166デフォルトの名無しさん2006/02/06(月) 02:31:55
勝利宣言w
0167デフォルトの名無しさん2006/02/06(月) 02:41:12
>>160
「教授する」という使い方は正しいよ。
辞書引いてみな。
0168デフォルトの名無しさん2006/02/06(月) 02:50:38
http://www.tt.rim.or.jp/~rudyard/torii009.html

このスレでは「ご教授〜〜」は禁止になっています
0169デフォルトの名無しさん2006/02/06(月) 02:57:39
教授と教示どっちでもいいがよ、おまえがルールなのは気に入らねぇ。
0170デフォルトの名無しさん2006/02/06(月) 02:59:35
まったく逆の意味じゃないか
0171デフォルトの名無しさん2006/02/06(月) 03:02:23
>>169
いいわけねーじゃん。
0172デフォルトの名無しさん2006/02/06(月) 03:05:02
このスレでは〜は禁止になってます
って言う奴が嫌いなだけ。
他に関しては情報が正しくなくても話題として興味無しです。
0173デフォルトの名無しさん2006/02/06(月) 03:06:17
>>172
馬鹿かおめーは。
0174デフォルトの名無しさん2006/02/06(月) 03:07:39
>>172
俺はお前が嫌いだ
0175デフォルトの名無しさん2006/02/06(月) 03:10:36
お前らこそスレ違いだよバーカ
0176デフォルトの名無しさん2006/02/06(月) 03:12:08
間違いを突っ込まれて逆切れ?格好悪いね
0177デフォルトの名無しさん2006/02/06(月) 03:13:12
ジエン臭につられてやってきますた。
0178デフォルトの名無しさん2006/02/06(月) 03:14:09
あの葡萄はすっぱいって事にしておけよ。
0179デフォルトの名無しさん2006/02/06(月) 03:29:09
ま、質問者は潜在的な回答者を減らさないためにも
とりあえず、ご教示にしておけってこった
0180デフォルトの名無しさん2006/02/06(月) 04:37:06
ところでタブブラウザの人どうなったのよ?
あれから報告ないんで気になって仕方ないんだがwww
0181デフォルトの名無しさん2006/02/06(月) 07:04:36
>>180
自演乙
0182デフォルトの名無しさん2006/02/06(月) 12:05:38
>>180
奴のいってたことが本当だとしたら、俺も、
UserAgentの変更と、お気に入り順序は気になるな
どうやって実現するのか、ソース晒してくれないかね
0183デフォルトの名無しさん2006/02/06(月) 15:46:30
http://zaraba.qp.land.to/up/src/1139076592986.jpg
お前ら良かったな
バレンタインデーなくなるみたいだぞw
0184デフォルトの名無しさん2006/02/06(月) 15:48:27
放流
void scpy(const char* src,char* dst){
//srcからdstにコピー
__asm{
push eax;
mov esi,src;
mov edi,dst;
cld;//DF=0(movsbで+1方向に進む)
lbl:
cmp [esi],0;
je lbl_exit;
movsb;
jmp lbl;
lbl_exit:
mov byte ptr [edi],0;//終端の0をコピー
pop eax;
}
return;
}
0185デフォルトの名無しさん2006/02/06(月) 17:13:48
VB6(SP5) PostgreSQL8(8.01)
VB6とPostgreSQL8をファイルDSNで接続する方法がわかりません
今のコーティングは下記の記述の通りです
「一般エラー:DSN ファイル"が無効です。」となってしまいます
 ファイルDSN名:PostgreSQL(Unicode)
  (どちらが良いのか・一般的なのかわからないので)
  (Unicode/ANSIのどちらも試しましたが両方だめでした)
  ちゃんとファイル C:\PostgreSQL はあります
 データベースのtestテーブルのnameの一覧をList1に表示してみようと思ったのですが
 接続すらできていない状態で困っています

Cn.Open "FILEDSN=C:\PostgreSQL;"
Set rs = Cn.Execute("select * from test")
Do While Not rs.EOF
List1.AddItem rs.Fields("name").Value
rs.MoveNext
Loop

お願い致します
0186デフォルトの名無しさん2006/02/06(月) 17:16:04
DBはDB板へ
0187デフォルトの名無しさん2006/02/06(月) 17:18:12
>>185
ttp://homepage2.nifty.com/inform/vbdb/filedsn.htm
0188デフォルトの名無しさん2006/02/06(月) 18:10:19
VB6を使ってますがString型に250文字以上代入しようとすると250文字で切れてしまいます。
MSDNには
可変長文字列には、約2GB (2^31) までの文字を格納することができます。
固定長文字列には、1 〜 約 2GB (2^31) の文字を格納することができます。
と書かれてますので問題ないと思いますが、可変長、固定長どちらでやっても
やはり250文字で切れてしまいます。
いろいろ調べて見ましたがよく分かりません。
ご教示お願いします。
0189デフォルトの名無しさん2006/02/06(月) 18:11:27
>>188
再現する最小のソースをどうぞ
0190デフォルトの名無しさん2006/02/06(月) 18:18:07
VBプログラムで有名なフリーウェアって何がありますか?
どうか何卒ご教授願います。
0191デフォルトの名無しさん2006/02/06(月) 18:24:06
ありません
0192デフォルトの名無しさん2006/02/06(月) 18:49:11
> 189
ウォッチで値を参照しながらデバッグしてたのですが、もしかしたらウォッチって
250文字までしか見れないんでしょうか。
250文字で切れてると思ってしまいました。
念のためDebug.Printで確認したら問題ありませんでした。
初歩的な質問ですみませんでした。
0193デフォルトの名無しさん2006/02/06(月) 18:51:38
しかしそれだけ文章練ってタイピングする手間は惜しまないのに
当然の確認作業はやり惜しむって俺には理解できんよ。。
M気質の人なのかなあ
0194デフォルトの名無しさん2006/02/06(月) 18:54:35
焦りやすいお方なのでしょう
0195デフォルトの名無しさん2006/02/06(月) 18:57:38
>>188
何の問題もないけど。
Dim Tmp$
Tmp$ = ""
Dim i%
For i% = 0 To 299
Tmp$ = Tmp$ & Chr$((i Mod 26) + Asc("A"))
Next i%
Debug.Print Len(Tmp$), Tmp$
0196デフォルトの名無しさん2006/02/06(月) 18:58:38
>>195
そういうコードは久々にみた
0197デフォルトの名無しさん2006/02/06(月) 21:08:18
起動時に設定値を読込たいのですが、
この場合、Form_Load プロシージャと Main プロシージャでは
どちらが適切と言えるでしょうか?
0198デフォルトの名無しさん2006/02/06(月) 21:10:03
>>197
シラネ。
そんなのいちいち人に聞かなきゃ二進も三進もいかないなら
PGなんて辞めるこった。
自分のためにも周囲のためにもな。
0199デフォルトの名無しさん2006/02/06(月) 21:10:57
厳しいwwwwwwwwwwwwwwwwwwwwwwwwww
0200デフォルトの名無しさん2006/02/06(月) 21:11:15
>>197
それだけの条件ではどちらが適切かは決めかねる。
つーか、「設定値を読込むのにどちらが適してるか」ではなく
ソフトの設計としてどちらを使うか考えるべきだろ。
0201デフォルトの名無しさん2006/02/06(月) 21:33:04
>>197
Sub Main は自分の意志で書かないとデフォルトでは存在しないが。
0202デフォルトの名無しさん2006/02/06(月) 21:33:13
ListViewコントロールって導入すると重いって聞いたんですけど実際どうなんですか!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0203デフォルトの名無しさん2006/02/06(月) 21:33:57
>>196
普段どんなコードを見てるの?
0204デフォルトの名無しさん2006/02/06(月) 21:35:57
>>203
こんなこーど
Dim Tmp as string
Dim i as integer
Dim asc_A as integer
asc_A=Asc("A")
For i = 0 To 299
Tmp = Tmp & Chr$((i Mod 26)+asc_A)
Next
Debug.? Len(Tmp), Tmp
02051972006/02/06(月) 21:38:23
お返事どうもありがとうございます。
言葉不足でしたが、適切と言うよりかは、
読み込みが速いのはどちらかと聞きたかったのですが、
・・・読み込みが速いとかいう低次元の発想で質問をしたこと深く反省しています。
0206デフォルトの名無しさん2006/02/06(月) 21:41:15
>>205
「読み込み」というのはアプリケーションイメージの読み込みか、
その後の設定値の読み込みか・・・
後者だろうなぁ。

後者ならドコに書いても同じだと思われ。
前者なら、Form_Load()はVBから間接的に呼ばれているだろうからちょっと遅い「かも」
数ミリ秒を体感できる人間ならSubMain()でもいいだろうが、そうでなければどっちでも構わない。

個人的にはSubMain()だけど
0207デフォルトの名無しさん2006/02/06(月) 21:42:49
>>202
死んだじっちゃんはVer6のリストビウには手を出すなって言ってた
02081972006/02/06(月) 21:56:38
>>206
ずばり前者も後者もあてはまるような、おみごとです。
さほど大差は無いようですが、>>206様が「個人的にはSubMain()」と
おっしゃってるので、わたしもそうさせていただきます。

どうもありがとうございました。
0209デフォルトの名無しさん2006/02/06(月) 22:04:15
>>202
特に重くない。
>>204
そういう意味か。
突っ込み所は沢山あるが、まぁいっか。
>>205
何処で読み込もうが、読み込み速度は同じだが。
0210デフォルトの名無しさん2006/02/06(月) 22:07:56
>>209
ちゃんと突っ込め
奥までな
0211デフォルトの名無しさん2006/02/07(火) 00:42:16
>>197
2005だとmain()が終了するとプロセスが終了するという仕様らしい。
VB6から2005へ移行する可能性があるなら
ちょっと意識してもいいかもしれない。
0212デフォルトの名無しさん2006/02/07(火) 08:37:14
ひきつづきタブブラウザ、ますます機能充実(*´∀`)
今回は、ブラウザの操作を自動化する機能を実装
アラートや認証ダイアログなどは全部表示前に捕まえて
自分で制御できるので、自動操作しにくいのはFLASHのサイトくらい
実行ファイルもActiveX化して、VBA等との連携も容易になった
ますます進化をつづけるタブブラウザにご期待ください
ところで、エンコードの種類を変える方法がよくわかんないんだけど、どうやんの?

>>182
>UserAgentの変更と、お気に入り順序は気になるな
UA は OnAmbientProperty を VB で実装すれば出来ます
お気に入り順序は、レジストリに並び順がありますが、軽く説明すると
バイナリは {データ長,順番,ITEMIDLIST} という構造体の数珠繋ぎになってます
0213デフォルトの名無しさん2006/02/07(火) 08:47:10
>>212
死ね
0214デフォルトの名無しさん2006/02/07(火) 08:51:03

> ますます進化をつづけるタブブラウザにご期待ください
バイナリには全く期待してない。目新しい機能もないし、WebBrowserコントロールだし・・・
 (VBでWebBrowser使わずに実装しろと言うわけではなく、VBではWebBrowser使うのが最良の手段なのはわかるけど
  最良の手段がWebBrowserコントロールという時点で終わってる)

ソースには目下の者が書いた物でも参考になる部分が無いとは限らないから少しは期待してもいいが、
どうせこの手の子はソース出さないだろうな。
0215デフォルトの名無しさん2006/02/07(火) 09:01:24
>>214
IEコンポってことは言ったけど、一度もWebBrowser「コントロール」だなんて
言ってないんだけど、どこでそういう風に思われたんだろうなぁw
勝手に誤解してVB終わってるって言う前に、自分の頭が終わってることを認識しよう!
0216デフォルトの名無しさん2006/02/07(火) 09:07:19
なぜ前スレで"WebBrowserコントロール"と言われて否定しなかったのに今になって?
あのとき否定しなかったならそう思われても仕方ないと思うが
0217デフォルトの名無しさん2006/02/07(火) 09:07:31
>>212
死ね
0218デフォルトの名無しさん2006/02/07(火) 09:24:03
ソース公開する気がないなら、奴は適当に踊らせて弄る対象でしかないな。
0219デフォルトの名無しさん2006/02/07(火) 09:49:16
ソース公開されても見る気は全くないけどね。
0220デフォルトの名無しさん2006/02/07(火) 10:17:04
>>212
死ね
02211822006/02/07(火) 10:19:50
>>212
キタ―――(・∀・)―――!!
完成したらソース見せてください
0222デフォルトの名無しさん2006/02/07(火) 10:52:22
>>212
死ね
0223デフォルトの名無しさん2006/02/07(火) 11:02:44
>>212
死ね
0224デフォルトの名無しさん2006/02/07(火) 11:05:01
>>212
死ね
0225デフォルトの名無しさん2006/02/07(火) 11:19:09
>>212
死ね
0226デフォルトの名無しさん2006/02/07(火) 11:44:02
('A`) 通報するか・・・
0227デフォルトの名無しさん2006/02/07(火) 11:59:06
シリアル通信プログラムのテストをしているのですが
受信側でReadFileをしたときこのReadFileは
すぐに戻ってきます。
しかし送信データが取れません。
送信側で送信してすぐReadFileをすると受信できました。
ReadFileは送信データをバッファから取得されるのではなく
リアルタイムに送られたデータを取得することしかできないのでしょうか?
というのもデータが送信されてから2秒後くらいにReadFileが
実行されるのでバッファかなにかに溜まってくれないかと思いまして。
0228デフォルトの名無しさん2006/02/07(火) 12:01:30
それはVBの質問ではなくAPIの質問では?
0229デフォルトの名無しさん2006/02/07(火) 12:17:14
>>228
なるほど。それは一理ありますね。
0230デフォルトの名無しさん2006/02/07(火) 12:20:57
>>226
お前は('A`)の間違いに気付け。
('A`)じゃない
('A`)だ
0231デフォルトの名無しさん2006/02/07(火) 12:21:48
('A`) うるせー 殴られたんだよ ばか
0232デフォルトの名無しさん2006/02/07(火) 12:25:14
>>230
AA に間違いも何も・・・w
0233デフォルトの名無しさん2006/02/07(火) 12:32:38
MediaPlayerコントロール(コンポーネント > Windows Media Player)についてなのですが、
動画の現在の再生位置(先頭から何分何秒)を取得する方法と
任意の位置にジャンプ(シーク)する方法を教えてください。

もしMediaPlayerで出来ないならこれらが出来る
Win標準または無料の動画再生コントロールを教えてください。

WindowsXP Pro SP1a、VB6SP6、msdxm.ocxのバージョンは6.4.9.1125です。
0234デフォルトの名無しさん2006/02/07(火) 12:35:03
>>233
そういう重たいコントロールはあんまり使ったことないんでパス
とりあえずMCISendString()でvideoは再生できるはず
02352272006/02/07(火) 12:37:19
なんとなくわかりました。
どうやらWindowsメッセージ処理されるとバッファがクリアされるようです。
クリアされないようにできないでしょうかね〜
0236デフォルトの名無しさん2006/02/07(火) 12:41:16
>>235
・・・??
ReadFile()の非同期モードってそんなんなのか・・・
0237デフォルトの名無しさん2006/02/07(火) 12:50:01
違うよな。
まず、CreateFileのオプションとか見直せと。
APIの場合、確かAttributeか何かの設定関数も必要じゃなかったっけ?シリアル通信のボーレート設定で。
その流れの中で設定があったように思うけど。

つうか、なぜVBでAPIでやるの?
VBならMSCOMM使えばいいし、それで出来ないでAPI必要ならCで作ればいいのに。
0238デフォルトの名無しさん2006/02/07(火) 12:50:06
Media Player SDK 6.4のドキュメントには
MediaPlayer.CurrentMarker
MediaPlayer.GetMarkerTime(lMarkerNum)とある。
けどどうせならDirectShow使う。
0239デフォルトの名無しさん2006/02/07(火) 12:55:04
>>235
まず、データが数秒で消える可能性はバッファサイズを超えた場合だと思う。
シリアルからの通信をリアルタイムで受けたければ、非同期通信でコールバック側で処理。
だけどそれはVBでは難しいはず。

でね、なんでMSCOMMのOnCommを使わないのかと。
02402272006/02/07(火) 13:00:31
MSCOMMを使わない理由ですがVB6.0のアプリをVB.Netに
コンバートするのですがVB.NetにはMSCOMMがなく
まずVB6.0でAPIに変換してからコンバートすればスムーズに
バージョンアップできると思うからでございます。

その既存のアプリはわたくしの作成したものではないので
なるべくロジックはそのままにAPIへの置き換えを企てています。
02412272006/02/07(火) 13:04:22
今は試しに
http://spectrum123.at.infoseek.co.jp/vb/vb_3/vb_3.htm
のサンプルプログラムを試してみています。

このプログラムにタイマーイベントを貼り付けて2秒ごとに
発生させてその中にReadFileだけを実行してみました。

といいますのは既存アプリがこのような構造になっているため
真似をしてみました。
02422332006/02/07(火) 13:11:20
>>234
情報ありがとうございます。

しかしそれは用途に合わないので失礼ながらこちらでもパスです。
常用するプレイヤーを作るわけではなく特殊な用途でたまに使うだけのものだし
ハードが強いのでMediaPlayerより更に重くても結構ですので
>>233で書いた通りコントロール(ActiveXコントロール)として使えるものを希望します。


>>238
CurrentMarkerは動画を読み込みシークバーの位置を中央あたりまで移動しても0を返します。
それとMSDNアーカイブのWindows Media Player SDK Version 6.4 コントロール リファレンス
は見たのですが、結構プロパティやメソッドが違ってたりします。
VB6のコンポーネント参照ダイアログの一番下にあったものを使ってるのですが。
ファイルはC:\WINDOWS\System32\msdxm.ocxです。
0243デフォルトの名無しさん2006/02/07(火) 13:13:26
>>242
> コントロール(ActiveXコントロール)として使えるもの
よくわからん・・MCISendString()を内部で使っているコントロールを作ることも不可?
02442272006/02/07(火) 13:30:58
大発見をしました。
タイマーイベントの中でReadFileの前でWriteFileも実行すると
送信データが受信できました。

はて、これの意味するものはなんでしょう??
でも一歩前進です。
0245デフォルトの名無しさん2006/02/07(火) 13:32:29
ここはお前の日記帳じゃねえんだ
02462272006/02/07(火) 13:39:23
いえ、まだ解決したわけではないので引き続けお力添えお願いいたします。
02472332006/02/07(火) 13:41:03
>>243
不可です。

>>242で書いたように常用するプレイヤーではないので、
目的の機能だけを実装出来れば、あとは重くても低機能でもいいから
とにかく手軽に使いたいので、とりあえず既製コントロール限定で探してます。
どうしても無さそうなら、そのときはちゃんと作ることも考えますが。
0248デフォルトの名無しさん2006/02/07(火) 13:48:18
>>247
ふーん
・・ま、人それぞれだからな。

----------
ふっつーにcurrentpositionじゃだめなの?
0249デフォルトの名無しさん2006/02/07(火) 14:07:11
よくわからんが、家で動いたのを載せておく

Option Explicit
'Windows Media Player 6.4.09?
'MediaPlayer:MediaPlayer1を貼り付ける
'Timer:Timer1を貼り付ける
Private Sub Form_Load()
Const FilePath As String = "" '<-ここにファイルパスを突っ込む
Me.MediaPlayer1.Open FilePath
End Sub

Private Sub Timer1_Timer()
With Me.MediaPlayer1
If .PlayState = mpPlaying Then
Debug.Print Format$((.CurrentPosition - .SelectionStart) / (.SelectionEnd - .SelectionStart), "###.###%")
End If
End With
End Sub
0250デフォルトの名無しさん2006/02/07(火) 14:37:21
>>240
つうか、その根本が間違ってる。
.netはアンマネージドコード(WinAPI)の利用は推奨されてません。
移行の為にVB6側で作り直すぐらいなら、.netに移植した後でそこを作り直せばいいじゃん。

まず、MSの移行ツールの出来に関してなんか情報集めたの?
その上でAPIのほうが良いってどこかに情報あった?
なんか一歩目を大間違いして藪の中突進してるよ、あんた。

で、.netでシリアル通信・・・って.netになってからシリアルなんてやってねーや。w
工場とかの制御機器もソケットでつながっちゃう御時世、シリアル通信ってあまりつかわんよね・・。
0251デフォルトの名無しさん2006/02/07(火) 14:41:01
知らないなら黙ってろ
0252デフォルトの名無しさん2006/02/07(火) 14:41:54
>>250
新規はつかわんが、保守せにゃならん
プログラムは変えられてもハード変えるのはなぁ
■ このスレッドは過去ログ倉庫に格納されています