v(・∀-)b VBプログラマ質問スレ(6.0以前) Part25

このエントリーをはてなブックマークに追加
936デフォルトの名無しさん:03/06/09 10:16
>>902 >>903
どうもありがとうございます。
コールバック関数はどのように使えばよいでしょうか?
>>783
VBだけでどんなプログラムも作れるからVBで設計しよう、というと
馬鹿にされるどころか嫌われるよ。とくにエンタープライズ系では。

オブジェクト指向言語でやっているところをアセンブラでやれ、と押し付けられちゃたまらんからね。
938狂信的アハァ信者:03/06/09 10:28
関数のアドレスセットして、呼び出されるの待つだけ。
939デフォルトの名無しさん:03/06/09 11:18
すいません、新すれのほうに書き込んでしまいました。

質問内容は以下のとおりです。

ファイル変更をフックしようと思い
ReadDirectoryChangesW API を調べているのですが
なかなか VB でのサンプルが見つかりません。
もしVBで組んだことある方がいましたら
多少の手解きお願いできませんでしょうか?
940_:03/06/09 11:26
>>935
ありがとう。
よく考えたら、(2)の方もVariantにする必然性がないですね。
個別の型指定(String()、Long()等々)で問題なく動作しました。
配列を返すと最初から決まってるなら、Variantにしない方がいいみたい。

Hoge() → Hoge型の配列を受けられる。
Hoge → Hoge型の変数は受けられるがHoge型の配列は受けられない。
Variant → 配列も配列以外のオブジェクトも代入可能。
Variant() → 配列は受けられるが、配列でない変数は受けられない?(未確認)

つうことで、sage
厨な質問ですいません。

datagridオブジェクトは、貼り付けたフォームがロードされたとき、
1行分しか見えてませんよね。それを初期状態だとすると、
いったん何かデータを読み込んだものを、もう一度その状態に
戻すことは出来るのでしょうか?
943デフォルトの名無しさん:03/06/09 14:57
GetMetaFileBitsEx で lpvData に Null 又は 0 を指定しとるのだが
データを格納するために必要なバイト数というのが取得できん
予め大きなサイズを割り当てれば関数自体は成功するが後味悪い
やり方教えてくれ
944直リン:03/06/09 15:13
945デフォルトの名無しさん :03/06/09 15:28
質問です。

ホームページをアップするのに、
どこかの本を参考に下記のコードでやってますが、非常に遅いです。
いくつものファイルを転送するとかなりの時間がかかります。

FTPソフトで転送するととても早いのですが、
何か技があるのでしょうか?

. With objInet
.  .URL = "ftp://*********"
.  .UserName = "******"
.  .Password = "******"
.
.  .Execute , "CD ********"
.  Do While .StillExecuting = True
.    DoEvents
.  Loop
.
.  .Execute , "PUT index.html index.html"
.  Do While .StillExecuting = True
.    DoEvents
.  Loop
. End With
946デフォルトの名無しさん:03/06/09 16:02
DoEvents を全部コメントアウトしてやったらどう?
948デフォルトの名無しさん :03/06/09 16:06
>>946

これでいいんですか?
誤動作しません?

.  .Execute , "CD ********"
.  Do While .StillExecuting = True
.    ' DoEvents  'コメントにする
.  Loop
.
.  .Execute , "PUT index.html index.html"
.  Do While .StillExecuting = True
.    ' DoEvents   'コメントにする
.  Loop
950!
>>945
ファイルを転送するごとにログインしなおしとかしてない?
>>945
マルチスレッドにして5つくらい一気に平行してUPするようにしたらどうよ?
>>946
あんまり意味ないと思われ。むしろCPU使用率が増えて逆に遅くなる可能性も。

>>948
DoEventsで処理が割り込まれる可能性が無いから、こっちの方が誤動作しにくい。
ただし処理速度にはなんの影響も無いか少し遅くなるかも知れない。

.StillExecutngでグルグル待つやり方(ビジーウェイト)はやめて、StateChangedを
使った方法がいいと思う。プログラムの構造が大きく変わりそうで面倒なら、
せめてDoEventsの前に10ミリ秒ぐらいSleepを置いた方がいい。

でも遅い原因は他にあると思われる。
>>952
FTPサーバーにマルチでログインするつもりか?
955デフォルトの名無しさん:03/06/09 20:55
あまり有効なのはないのでしょうか?

FTPソフトだと問題ないのはなぜでしょう?

>>955
余計な処理が入っているからでしょう。
遅いって転送し始めるまで時間がかかるの?それとも転送速度が遅いの?
958デフォルトの名無しさん :03/06/09 21:27
>>957

はっきり調べてませんが
ひとつひとつの.ExecuteからDoEventsを抜けてくるのが遅いです。

ねむくなるスレだ
>>958
StateChanged方式に変えてみたら?
>>959
空回り?(w
962959:03/06/09 21:33
>>961
あっちはケンカがあってねむけがさめる
あっち・・・・あのスレか。
>>962
VB厨がVB厨と言われるゆえん。
Win32システムプログラミングぐらい読めよ。
>>959
あんた、こっちでそんな事言っていると煽りだといわれるぞ。
あっちでいえ。
966デフォルトの名無しさん :03/06/09 21:37
>>960

StateChanged方式を教えてください。
>>964
もういいよ。あっていでやれ。
これ以上ここに書きこするなら荒らしとみなす。
>>967
うぜーよ厨
>>967
もう来るな
>>966
途中まで出いいからやってから分からないことろを書いてね。
たぶんそれじゃレスつかないと思うけど。
あと無駄な空行いれてあげるのもやめたほうがいいよ。
偽者扱いされるのがオチだから。
971デフォルトの名無しさん:03/06/09 21:40
VB初心者スレを質問スレと勘違いして質問してしまいましたので
再度こちらで質問させて下さい。

ファイル名に今日の日付が入ったファイルを作成したいので、
日付から、例えば2003.06.09という文字列を作って
文字列の変数に入れたいのですが、
どのように書けばよろしいのでしょうか?
>>970
はい。がんばります。すみませんでした。
>>971
Format
>>972
駄レス消費すんなゃー?
>>971
Format$(Date(),"yyyy.mm.dd")
976デフォルトの名無しさん :03/06/09 21:45
>>970
StateChanged がなんだかもわかりません。
参考になるサイトを紹介していただければ、勉強してみます。
>>976
MSDNライブラリに書いてある。
>>971
プログラマ向いてない
なんかスレのびていると思ったら粘着煽り厨が出現してるのか。
980デフォルトの名無しさん :03/06/09 21:49
>>977
ありがとうございます。 ^^;
>>980
下げろ厨
埋めるぞコルァ!
983アシュル ◆adhRKFl5jU :03/06/10 08:45
ゴルァゴルァ
984アシュル ◆adhRKFl5jU :03/06/10 08:45
モララララララァ 
おまんこやりたい