VB初心者質問スレ Part4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1000523122/
0160名無資産
NGNGVBで GPIBの制御をしようと構築中です、
なにか良い雑誌や本などありましたら、教えていただけないでしょうか?
VBでGPIB制御するためには、やはりハード側の命令セットみたいなものも
理解する必要があるとおもうんですが、もし、その命令がわからないばあい
実際に試行錯誤を繰り返しながら、ためさないと いけないんですかねぇ
今 やろうとしているのは、簡単な移動装置です。
顕微鏡なんですが、この装置を遠隔的に、WINDOWSから
操作しようと思っております、
なにかご意見いただける方いらっしゃいますか?
メインから移動してきました よろしくお願いします
0161デフォルトの名無しさん
NGNGGPIB カード(高いよ〜〜)にドライバがついてねーか?
0162名無資産
NGNGその関数やらの使い方はなんとなーくわかるんですけど
結局のところハードに送信する命令自体がわかんないと
どうしようもないかもしれないんです。
GPIBの命令って統一されてるんですかねぇ〜
なんか装置のメーカに問い合わせても
いい反応なさそうだし・・・
(某光学装置orカメラメーカー)
0163デフォルトの名無しさん
NGNGttp://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-0940-1
この本見て計測器をコントロールするプログラムつくりましたが、
やはり命令の載っているマニュアルが提供されていないと辛いですね。
0164デフォルトの名無しさん
NGNG--ここから
はじめまして!この度本MLに登録させていただきました。よろしくお願いします。
で、私はまだ学生ですが勉強も兼ねてVB又はVCをいじっています。
今回はVBでMediaPlayerに表示される画像の静止画のキャプチャを考えていますが、
Bitbltでスクリーンコピーすると動画の部分だけが真っ黒になってしまいます。
また通常のメディアプレイヤーを起動し、何らかの動画を再生しておくと正常にキャ
プチャ
できます。メディアプレイヤーを起動しないでキャプチャする方法はありませんで
しょうか?
またBitblt以外でのキャプチャ法はありませんでしょうか?ご教授お願いいたしま
す。
--ここまで
0165161
NGNG>結局のところハードに送信する命令自体がわかんないと
>どうしようもないかもしれないんです。
どうしようもないす。
つか GPIB で制御出来る顕微鏡なんでしょ?
なのになんでコマンドリファレンスがついてないの?
0166152
NGNGどうもありがとうございました。
直接オブジェクト変数にではなく、変数に代入することでいけました。
あと予約語ばんばん使ってたり、ミスばっかでした…ご指摘ありがとうございます。
質問わかりにくくて済みません、勉強になりました。
0167156
NGNG動的配列やね。さんくす
Dim strHoge() As String
Dim CSVText As String
Do While EOF(1)
strHoge= Split(CSVText,",")
Loop
で、勝手にRedimされるから便利。一個ずつ変数宣言なんて面倒で好かん
まぁどうでもいいんだけど。
0168デフォルトの名無しさん
NGNGWinsockコントロールを使ってTCPやUDPでやり取りして
いるデータのヘッダから、IPなどの情報を取得するには
どうしたらいいのでしょうか。
ご教授のほど、よろしくお願いしますm(_ _)m
0169デフォルトの名無しさん
NGNGRemoteHost
RemoteHostIP
RemotePort
LocalHost
LocalHostIP
LocalPort
上記のプロパティを調べてみそ。
あと、GOOGLEで調べてみれば?サンプル一杯あるよ。
0170カズ
NGNG今、VB6で暗号化アプリを開発しています。そこで暗号化はできるのですが、
復号化がうまくできません。Advapi32.dllが原因ではないかといわれたのですが、
誰かその辺のことについて知ってる方がいらっしゃいましたら、ささいなことでも
かまわないのでおしえてください。よろしくお願いします。
0171aaaaa
NGNG0172デフォルトの名無しさん
NGNG今のところ、Input LineをEOFまでやって、そのカウントを取ることで実現していますが
もっとスマートな方法がありましたらお願いいたします。
0173デフォルトの名無しさん
NGNGInput Lineって改行コードを調べる関数?
だったらそれが一番スマートだと思うけど。
0174168
NGNG例えば、UDPでデータを受け取った時に発生する
DataAraivalイベント中に
RemoteHost
RemoteHostIP
RemotePort
LocalHost
LocalHostIP
LocalPort
これらのプロパティを参照すれば、データを送って
きた相手のIPなどがわかる、ということなのでしょう
か。。。重ねての質問ですいませんが、よろしく
お願いします!
0175デフォルトの名無しさん
NGNGファイルを全部読み込んで改行文字をカウント。
でも多分スマートじゃない。
0176デフォルトの名無しさん
NGNGこれなら元の方がマシだと思う。
いっそ wc 拾ってきてそいつに数えさせるとか。
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG今、以下のよう感じで「名前がwao かつ 年が10」のデータを抽出しています。
Set RS = DB.OpenRecordset(" SELECT * " & _
" FROM Hoge " & _
" WHERE Name = wao AND Age = 10;")
これを分解して、まず名前がwaoのデータを全部抽出して、そのデータベースから
年が10のデータを取り出したいのですが、どうやればいいのでしょうか。
0179デフォルトの名無しさん
NGNG任意の場所にDrag&Dropすることで、
そのコントロールの位置を移動させたいのですが、
FormのDragDropイベントで取得する X, Y を Top , Left に設定しても
見当違いのところに移動します。
どうすればマウスのDrag&Dropで思った場所に
コントロールを移動できるのでしょうか?
0180デフォルトの名無しさん
NGNGなんでそんな事したいか不明だが...
素直にワークテーブルに書出したら?
0181178
NGNGそもそもクエリーの意味を履き違えているんでしょうか。
Set QD = DB.CreateQueryDef("", " SELECT * " & _
" FROM Hoge " & _
" WHERE Name = wao;")
こうやってwaoのデータを抽出して
Set RS = QD.OpenRecordset(" SELECT * " & _
" FROM Hoge " & _
" WHERE Age = 10;")
さらに年が10を探す。
0182172
NGNGとにかく行数だけがわかればいいので、無駄に文字を取ってきているきがして
もっといい方法があるのかなと思ったんです。
0183デフォルトの名無しさん
NGNG固定長のファイルだったら簡単だけどねぇ。
0184新規
NGNGプレーヤーの左右の動かし方のプログラミングがわかんないんです。
わかる方教えていただきたい!!ちなみにプレーヤーはコアファイター
です。敵がザクちゃん
0185デフォルトの名無しさん
NGNG行数だけを調べたくても結局ファイルの中身は
全部調べないと駄目なんで何やっても同じ。
フォーマットを決めてるんなら別だけど。
気持ちは分かるが。(w
0186デフォルトの名無しさん
NGNGRecordsetのFilterプロパティ参照
あまりオススメしないけどね・・・
0187デフォルトの名無しさん
NGNGttp://www.sala.or.jp/~itagaki/vb/kouza.htm
0188デフォルトの名無しさん
NGNGもらえるんですか?
0189デフォルトの名無しさん
NGNGここにソースをUPしたので、どこを直したらよいかアドバイス
お願い致します。
http://www2.makani.to/akutoku/upload/index.html
0190169
NGNG亀レススマソ
>データを送って
>きた相手のIPなどがわかる、ということなのでしょう
RemoteHost → 接続先のホスト名
RemoteHostIP → 接続先のIP
RemotePort → 接続先のポート
だよ。もちろんこの値をDataAraivalイベントで拾えば
送信元の情報になるね。
Winsockコントロールを使ったUDP通信のサンプルは
ここを参考にしてみてくれ。
ttp://www.comel.or.jp/%7Eakira/soft/udp_s1/udp_s1.html
0191168
NGNGお教えいただいた事とサイトで、さらに
通信プログラムを勉強したいと思います。
ありがとうございました!
0192192
NGNGが、変更するたびにリストボックスの高さが縮んでしまいます。
リストボックスの高さを変えずに、画面上でフォントサイズを変える方法を
教えてください。
0193デフォルトの名無しさん
NGNGあんまり件数が増えると、取り出すのにえらい時間がかかって、
ハングしたかと思っちまいます。
そこで、よく市販アプリのインストール時に出るような、
残り処理時間ゲージを付けたいんですけど、
VBでできますでしょうか。
よろしくお願いします。
0194デフォルトの名無しさん
NGNGフォント変えるたびにリストボックスのサイズも設定しなおせば?
でもリストボックスだと勝手に補正されちゃうんだよね。
リストビューだとサイズはかわらんよ。
0195デフォルトの名無しさん
NGNGプログレスバーじゃ不満?
0196デフォルトの名無しさん
NGNGとりあえず、データベースからそこまで沢山のデータを
一気に取り出す必要があるのかという事から考えた方が
いいと思われ。
抽出条件つけるとかして件数を絞り込むとか...
0197デフォルトの名無しさん
NGNGMEの時までは使えてたソフトが使えなくなってしまって困ってます。
通常のバージョンアップでは使えていたんですが、
フォーマットして最初からインストールしたらランタイム系が
軒並みインストールできなくなってたんです。
0198193
NGNGレスありがとうございます。
データの抽出件数に関しては、仕事上、仕方ないのです。
これでも出来る限り不必要なデータ抽出げずったんですよ・・・。
あと、プログレスバーコントロールってのは、どこから
出すんでしょうか。参照設定にそれらしいの無いんですが・・・?
0199デフォルトの名無しさん
NGNG自分で見るだけならステータスバーの使用をお勧め。
SysCmdで文字とかステータスバーのプログレスの
表示を操作出来る。
んで一応、プログレスバーはフォームデザイン画面で
ツールバーのコントロールの選択→MicroSoft Progress Bar
を選んで配置すると使える。
VBAのフォームって個人的に好かんけど。
0200デフォルトの名無しさん
NGNGVBじゃなかったっけ?なら
Microsoft Windows Common Controls 6.0 (MSCOMCTL.OCX)
TextBoxやLabelのなかに一回り小さい色の付いたLabelを配置して
Widthを少しずつ増やしていくだけでも代用できますが。
そんなにレコード数多いの?
何分もかかる様なら%も表示したほうがよさげか
0201198
NGNGありがとうございます。
>んで一応、プログレスバーはフォームデザイン画面で
>ツールバーのコントロールの選択→MicroSoft Progress Bar
>を選んで配置すると使える。
ツールバーってのはツールボックスのことでしょうか(あの「TextBox」とか
のアイコンがある)。デフォルトでは、そのコントロールは無いっぽいです。
うう。
0202デフォルトの名無しさん
NGNGお、ありがとうございます!
>Microsoft Windows Common Controls 6.0 (MSCOMCTL.OCX)
これが何か分かりません。ヘルプでも出ないんですが?
レコード数もさることながら、仕事場のPCの性能がアレで
小一時間かかったりもします。マジでハングったりも。
0203199
NGNGそのツールボックスを右クリックしてコンポーネントをクリック。
もしくはいきなりCtrl+Tで出てくるYO。
インデックス張ったりSQL見直したりは・・したよね(w
>レコード数もさることながら、仕事場のPCの性能がアレで
うちはその点最低でもCerelon400だから助かってます。
0204203
NGNG鬱氏。
0205デフォルトの名無しさん
NGNGほんとうにくだらないことで申しわけないのですが、
Formの縁を無くすにはどうしたら良いのでしょうか。
FormのAppearanceを0にもしたのですが、
やはり外側に3Dっぽい縁が出来てしまうんです。
0206デフォルトの名無しさん
NGNGAppearanceでなくBorderStyle。
0207202
NGNGありました。ありがとうございます。
ちょっと研究してみます。
申し訳ないのですが、分からなかったらまた聞きに来ます。
あと、インデックスも張ってますし、SQLも改良しました。
実は、もともと、他人が作ったもので、その人に
「適当に使いやすくして使って」って言われているものなのです。
僕、初心者なのになー・・・。
0208199
NGNG>ツールバーってのはツールボックスのことでしょうか
>(あの「TextBox」とか のアイコンがある)。
コントロールの選択ってのはツールバーの中にある、
「TextBox」とか、「Label」とかと一緒に、
「コントロールの選択」ってのがあるんよ。
(一番右下。)
分かりにくかったかな?スマソ。
>>204
気にすんな。(w
0209205
NGNGありがとうございます。0にしたら無くなりました。
ちなみに、その状態でタイトルバーだけ表示って
無理ですか?
0210205
NGNGFormの出現位置を画面右上や、画面右下とかには
出来ないでしょうか?
0212デフォルトの名無しさん
NGNG無理。移動したいなら、WM_NCHITTESTを使いましょう。
0213箱入り息子
NGNGを作りたいのでありますが、どんなコントロールを
使えばいいのやら皆目見当もつきません!
ご教授ねがいます!以上っ!(敬礼)
0214デフォルトの名無しさん
NGNGVC か Delphi で「箱入り娘」コントロールを作ってもらって
それを VB に張れば1分で完成。
0215デフォルトの名無しさん
NGNGそれだけでは教えたくてもさっぱり分からん。
もうちょっとこんな感じでこうしたいとか・・・
詳しく書こうぜ。
0216デフォルトの名無しさん
NGNGないでしょうか?
0217箱入り息子
NGNG>>215
すみませんでした。
えーと、現状では、「娘」とか「父」とかいう文字を書いたimageコントロールを
フォーム上でマウスでドラッグアンドドロップで移動させることは
できたんです。でも、きちんと枠内でその一つ一つの「駒」を移動
させ、移動できない方向には移動させない、といった制御が難しくてできません。
でも、なにも制限がなかったらゲームにならない(当たり前ですが)ので、
そのimageコントロールの動きを制御しなければ「箱入り娘」になりません。
214さんの言うように、「箱入り娘」コントロールみたいなものはあれば、
簡単なんですけど・・・。
どうやったらいいのでしょうか?
0218デフォルトの名無しさん
NGNG一応、line inputで一行ずつtxtを文字変数として読み込んで
InStrで場所を特定して・・って感じで考えているのですが
0219215
NGNGその箱入り娘ってのがどんなのかは知らないけど
移動先の枠の座標は分かるよな?
で、移動できる枠と移動できない枠も分かるよな?
そしたら、移動完了の時に判定できるでしょ。
移動できないんなら元に戻す、みたいなかんじで。
0221デフォルトの名無しさん
NGNG将棋やオセロと同じで、マス目を配列変数で用意する。
何もいなければ0、何かいれば1にする。
1点の位置が決まれば、大きさや形にしたがって、
いくつかのマス目も1になる。
もし動き先が1なら、そこには動かせないということになる。
0222デフォルトの名無しさん
NGNGテキストボックスの色を変えたいです。
テキストボックスのMouseMoveイベントに色変えるの書いたのですが、
カーソルが外出た時に色戻すイベントの取り方がわかりません。
お願いしますー。
0223箱入り息子
NGNGどうもありがとうございました。
0224デフォルトの名無しさん
NGNGPictureBoxを使って自前で描画してはどうでしょう。
0225デフォルトの名無しさん
NGNG"Alt+R"を押したら、Retrunを押したというメッセージを送りたいのですが、
上手くゆきません。
keybd_event(vbKeyReturn,0,0,0)を使ってやってるのですが、
フルスクリーン化してしまいます。
どうすればよいでしょうか?
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNGなどと入力してプログラムの起動時に引数を渡す処理を、
VBで行うには、どうすればいいのでしょうか?
0229ヒッキー@プログラミング
NGNGShell関数を使ってはどうでしょうか?
ヘルプで探してみてください。
0230ヒッキー@プログラミング
NGNG0231デフォルトの名無しさん
NGNGCommand()
0232228
NGNGVBで作ったアプリで、他のアプリに引数を渡す方法です。
ご指摘の通り、Shell関数で簡単に出来ました。(汗
ありがとうございます。
0233デフォルトの名無しさん
NGNGFormのMouseMoveイベントで色を戻す処理を書く。
0234デフォルトの名無しさん
NGNG0235ありゃ??
NGNGメニュー画面のフォームからコマンドボタンをクリックし、次のフォームを
表示させるには、どういうコーディングをすればいいのでしょうか??
メニュー画面も次の画面も用意してxxxx.showと指定しているのですが
(参考書にはこれで展開すると・・・)うまくいきません。
0236デフォルトの名無しさん
NGNGただそのときに既にALTが押されているので"Alt+Retrun"でフルスクリーン化
という動作になってしまっているのでしょう。
keybd_event(vbKeyReturn,0,0,0)
の前に
Public Const KEYEVENTF_KEYUP = &H2
keybd_event(vbKeyMenu,0,KEYEVENTF_KEYUP,0)
なんかやってみたらどうでしょう。
(試してませんがうまくいけばめっけものです。)
それかReturn押下時の処理を関数化し、"Alt+R"押下時に
その関数を呼ぶとか。(ベタですが...)
0237デフォルトの名無しさん
NGNGただそのときに既にALTが押されているので"Alt+Retrun"でフルスクリーン化
という動作になってしまっているのでしょう。
keybd_event(vbKeyReturn,0,0,0)
の前に
Public Const KEYEVENTF_KEYUP = &H2
keybd_event(vbKeyMenu,0,KEYEVENTF_KEYUP,0)
なんかやってみたらどうでしょう。
(試してませんがうまくいけばめっけものです。)
それかReturn押下時の処理を関数化し、"Alt+R"押下時に
その関数を呼ぶとか。(ベタですが...)
0238デフォルトの名無しさん
NGNG>xxxx.show
・xxxxの名前が違う。
・showが全角
0239perl2vb
NGNG$date = "2001/12/11";
@job = ("mail","meeting","test","coding","design");## PERLの配列
myfunction( $date, @job);
sub myfunction{
my ($str, @array) = @_;
## 以下省略
}
なんて形にするけど、VB だとどうなるのか教えてください。
ヘルプはたくさん書いてあるわりには検索に時間がかかるばかり
でぜんぜんわかんねー。
0240デフォルトの名無しさん
NGNG配列の先頭アドレスを渡す。
0241デフォルトの名無しさん
NGNGParamArray使う。
0242デフォルトの名無しさん
NGNGそろそろ手をつけるかとプロジェクトを読み込み、デバッガで走らせようとしたら
RDOの関係のモジュールがすべてエラーになってしまうのです。
参照設定では、MSRDO20.DLLはちゃんと指定してあるので困りました。
Win2K(SP2)+VB6(SP4)の環境です。渡された当初は当然ですが問題なかった。
最近やった大きいことはというと、IEを6.0にしたことと、Delphyパーソナルを
入れたことか。
助言を願います。馬鹿ですみません。
0243perl2vb
NGNG参照がわはaramArrayを使えばいいのはわかったけど、
参照元はハードコーディングでなく呼び出す方法はないの?
知ってる人、おしえてくださーい。
0244デフォルトの名無しさん
NGNGこんなんダメ?
private function Job(str() as string) as Variant
Job=str
end function
0245242
NGNGrdoErrorsやrdoConnectionのデータ定義からしてだめ。
オブジェクトブラウザーにRDOは見えているのに。
とりあえず、VisualStudioのSP5を落としながらWebサーチをします。
お心当たりあれば引き続きよろしくお願いします。
0246デフォルトの名無しさん
NGNGエラーNoと内容を見せれ
0247242
NGNGError$を評価すると、
"コンパイルエラーsubまたはFunctionが定義されていません。Error35"
が帰ってくる。
DLLの参照に関するエラーでしょうけど、MSRDO20.DLLは「ある」し「指定されている」
んですよ。悩む。
0250222
NGNGありがとうございます。
でも、すでに試してますが、それダメでした。。。
なんで戻らないんだろう。
てか、なんでMouseOutイベントが無いんだろう。
0251デフォルトの名無しさん
NGNG色がえ
end if
とかじゃだめ?
0252242
NGNG原因は不明ですが ^^;
急がば回れで、こういうときは、すんなりと開発環境のアンインストールと
再インストールをやってしまうのが時間のロスも神経をすり減らすのも少ないか。
知恵はつかないままだが。
0253デフォルトの名無しさん
NGNGNtQuerySystemInformationの宣言とか引数、戻り値を教えてくだされ
海外サイトで
NtQuerySystemInformation (SYSTEMINFOCLASS sic,
PVOID pData,
DWORD dSize,
PDWORD pdSize);
というのを見つけて、自分で書いてみたのがこれ
Public Declare Function NtQuerySystemInformation Lib "ntdll" _
( , pData As Any, ByVal dSize As Long, ByVal pdSize As Long) As Long
↑ここに入るのは分からん
VB自体始めて日も浅いし、上のも間違ってるかも
ダレか教えて下さい
0254225
NGNGありがとうございます。
ご指摘の通りやってみたのですが、なぜか上手くゆかないときがあります。
上手くゆくときもある、というのが謎なのですが、Altキーは押しっぱなし状態で
keybd_event(vbKeyMenu,0,KEYEVENTF_KEYUP,0) とやっても
次回のGetKeyState()呼び出しのとき、Altキーが押されていると認識
されているみたいなので、
keybd_event(vbKeyMenu,0,KEYEVENTF_KEYUP,0)
keybd_event(vbKeyReturn,0,0,0)
この2つの命令の間で、Altが押されたメッセージが送られるてるのでは
ないかと思ってます。
一気に、リターンだけしか押されていないという状態を送るような便利な
関数はないでしょうか?
0255222
NGNGありがとうございます。
しかし、それどこに書けば良いのですか?
つか、マウスオーバーでwidthが変わるんですか?
0256デフォルトの名無しさん
NGNGMouseMoveで、マウスの位置のxはテキストボックスの幅width
を超えることはありえるかなと思ったもので。
確かスプリットバーを作ったときは、できたような気がする。
0257デフォルトの名無しさん
NGNGそれって、ドラッグの最中だけじゃないですか?
>>222
タイマーでGetCursorPosして判定とかは。
0258デフォルトの名無しさん
NGNGForm2.Left = (Screen.Width - Form2.Width) / 2
Form2.Top = (Screen.Height - Form2.Height) / 2
とやってもうまくいかないんです。どうすればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています