VB初心者質問スレ Part8 (・∀・)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGPart 1 http://piza.2ch.net/tech/kako/968/968328471.html
Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/test/read.cgi/tech/1010624646/
Part 6 http://pc.2ch.net/test/read.cgi/tech/1013844542/
Part 7 http://pc.2ch.net/test/read.cgi/tech/1015836357/
Win32 API関連スレ
http://pc.2ch.net/test/read.cgi/tech/1017072275/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調てみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG右クリックで「閉じる」というポップアップメニューを出すところまではできたのですが、
どのタブの上で右クリックしたかわかる方法はありませんか?
(例えばタブが3つあって一番左のタブが選択されているとき、
真中のタブで右クリックしたことがわかる方法)
TreeViewコントロールの HitTestメソッドみたいなものもないようですし。
TabStrip1.SelectedItem を見ても、クリック前に選択されていたアイテムが格納されていて
正確に判定できないのですが…。
# Webでは「人気ない」とかかかれてましたが、別のコントロール使うべきでしょうか?
開発環境:
Windows2000 + VisualBasic6.0(SP5)
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGこんなコードが手元にあるけどー。
Private Sub TabStrip1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
If TabStrip1.SelectedItem.Left < (x / Screen.TwipsPerPixelX) _
And (x / Screen.TwipsPerPixelX) < TabStrip1.SelectedItem.Left + TabStrip1.SelectedItem.Width _
And TabStrip1.SelectedItem.Top < (y / Screen.TwipsPerPixelY) _
And (y / Screen.TwipsPerPixelY) < TabStrip1.SelectedItem.Top + TabStrip1.SelectedItem.Height Then
popupmenu mnuHoge
どうやら私もいい方法が思いつかなかったらしく、SelectedItemの領域外を
右クリックした時は無視するようにてる模様。
…腐れてるなぁ。
00063
NGNGどうもありがとうございます。
コードを参考にさせていただきました。
全てのTabに対して領域内にあるかどうかでチェックすると
nSelectedIndex に右クリックされたタブのインデックスが入ります。
Private Sub TabStrip1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Dim tb
For Each tb In TabStrip1.Tabs
If tb.Left < (X + TabStrip1.Left) And (X + TabStrip1.Left) < tb.Left + tb.Width And _
tb.Top < (Y + TabStrip1.Top) And (Y + TabStrip1.Top) < tb.Top + tb.Height Then
nSelectedIndex = tb.Index
End If
Next
End If
End Sub
さーて改造改造…
# 余談ですが、 Dim tb as Tab ってやったら構文エラーでした。入力候補にも出ているのに何故?
0007デフォルトの名無しさん
NGNGFor Each 〜 は、バリアント変数限定。
0008デフォルトの名無しさん
NGNGTab関数と混乱しているから。
Dim tb As MSComctlLib.Tab と書きなされ。
>>7
残念。はずれ。
MSDNの「For Each element In group」のelementの説明
必ず指定します。コレクションや配列の各要素を繰り返す変数を指定します。
コレクションの場合、引数 element にはバリアント型 (Variant) 変数、
総称オブジェクト型変数、または任意の固有オブジェクト型のオブジェクトの
変数を指定できます。また、配列の場合は、引数 element にはバリアント型のみ
指定できます。
0009デフォルトの名無しさん
NGNGIE6のように、CoolBar内にメニューを入れてしまう芸当はVBでできますか?
背景が透明になるコンテナにラベルとか自分で配置しないといけないんでしょうか…
0010デフォルトの名無しさん
NGNGっていうコードきぼんぬ。
0011デフォルトの名無しさん
NGNG自分でやれ。
001210
NGNGテーブルをセルに表示する方法がわからんけど頑張ります。
Do Until rs.EOF
vaSpread1.Row =
vaSpread1.Col =
adoRecordset.MoveNext
Loop
こんなのが入ると思うんだけど
0013デフォルトの名無しさん
NGNGレコード追加、レコード削除を繰り返すとレコード数が少ないにもかかわらず
mdbファイルのサイズがどんどん大きくなるんですが、こういうもんなんですか?
0014デフォルトの名無しさん
NGNGBOCのSPREAD?
0015デフォルトの名無しさん
NGNGそうだよ。
だからあるタイミングで最適化するようにしとかないといけない。
001610
NGNG助けて下さい・・
001710
NGNGPrivate rs As ADODB.Recordset
Private Sub Form_Load()
Set cn = New ADODB.Connection
'データベースに接続
cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=Y:\Sample2000.mdb"
cn.Open
'レコードセット取得
Set rs = New ADODB.Recordset
rs.Open "テーブル1", cn, adOpenStatic
'スプレッドシートにレコードセットの内容を表示します
Set vaSpread1.DataSource = rs
vaSpread1.DataField = "会員番号,会員名"
Do Until rs.EOF
????????????????
adoRecordset.MoveNext
Loop
'接続を閉じる
adoRecordset.Close
adoConnection.Close
End Sub
レコードセットのデータが無くなるまで
スプレッドシートのセルに当てはめていきたいんですけど
わからなくて進まなくて死のうかと思った事もあったりなかったり
0018デフォルトの名無しさん
NGNG考え方は当たっている。
あとはヘルプでスプレッドのプロパティ・メソッドを調べ、
その動作について理解すればおのずと道は開かれるモナー
0019デフォルトの名無しさん
NGNGdim Items() as string
dim Ret as string
dim i as long
dim y as long
'レコードセット取得関数
OpenRst(Res,"select * from TBL")
'---------↓サンプル-----------
'--初期化
ret=vbnulstring
y=1
redim Res(Res.Fields.Count-1)
'--該当件数分、処理を繰り返す
Do Until rs.EOF
'レコード→配列
for i=0 to ubound(items)
items(i)=res.fields(i).items(i).value
next i
'配列→文字列
ret=ret & join(items,vbtab) & chr(13)
y=y+1
adoRecordset.MoveNext
Loop
'文字列→スプレッド
with vaSpread1
.maxcol=ubound(items) + 1:.maxrow=y
.Blockmode=true
.Col=1:.Col2=Res.Fields.Count
.Row=1:.Row2=.maxrows
.Clip=ret
end with
'後始末
erase items
adores.close
set adores=nothing
#テストしてないよ
002010
NGNG途中から変数名間違えてました。死んできます
002110
NGNGありがとう
002213
NGNGさんきゅ。
検索したらJROってのが出てきて試してみた。
そしたら最適化できた。
最適化ボタンでも作っておきます。
0023デフォルトの名無しさん
NGNG最適化時にファイルが壊れる事がタマーにあるんで、保存してからがいいよ。
002422
NGNGさんきゅぅ。
その壊れた時何かエラーが出る?
それとも最適化が完了した事になってて実はファイルが壊れてるっていうパターン?
0025デフォルトの名無しさん
NGNGどうやったらいいのですか?
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGありがとうございます。
じつはそのコマンドの使い方がわからないのです。
よかったら使用例を書いてもらえませんか?
0029ななし
NGNG> CopyFileとKill
以前に別のサイトで、おなじ質問に対して、私もそう書いたんですが、
その方法だと、エラー処理に注意しないと、Copyに失敗しているのに、
コピー元が削除されてトンデモないことになります。
API等使わずに無難に処理するなら、
Name OldName As NewName
が正解かと思います。
0030デフォルトの名無しさん
NGNGOLEドラッグドロップでフォルダをドラッグした場合
フォルダのパスは取得できるのですが、中のファイルがあるかどうか、
あったら中のファイルの名前を取得する方法がわかりません。
どなたか、お願いします。
0031デフォルトの名無しさん
NGNGありがとうございます。今やってみたら移動できました。
↓
Name "c:\1.jpg" as "c:\DOWNLOAD\1.jpg"
0033デフォルトの名無しさん
NGNGVBSなら、以下のようにすればいいことは知っているのですが・・・
------------------------------------------------------------
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
WScript.Echo objArgs(I)
Next
0034デフォルトの名無しさん
NGNG003531
NGNGご丁寧にありがとうございます。
これで今作ってるアプリケーションが完成に一歩ちかづきました。
0036デフォルトの名無しさん
NGNG31はどんなアプリケーションを完成させようとしているんだろう・・・
(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)(・∀・)
003731
NGNG画像を整理するアプリケーションです。
マウスを使わずに矢印キーでフォルダ内の画像を全画面表示で次々表示して
気に入った画像はフォルダへ、
要らないのはゴミ箱へという感じのを作ってます。
フォルダに移す際、押すコマンドボタンによって移動するフォルダが選べるようにしてます。
command1押すとc:\winnt、command2を押すとc:\windowsという感じです。
コマンドボタンはF1とかF2を押すことで同じ効果があるようにしました。
もちろん移動先フォルダは任意に設定できます。
こんな感じです。初心者にはこれが精一杯。あはは。
0038デフォルトの名無しさん
NGNG003931
NGNG0040デフォルトの名無しさん
NGNG先が別ドライブだと、コピーになっちゃうよ。
0041デフォルトの名無しさん
NGNGPrivate Function Ero(Filename As String) As Boolean
みたいな関数作った方がいいよ。
0043デフォルトの名無しさん
NGNG例外処理(エロかグロか区別がつかない、ホモ画像だったとか、・・・e.t.c.)は
ちゃんと書いてください。
0045デフォルトの名無しさん
NGNGコピーに成功したことを確認してから、元ファイルを削除すればオッケー。
Winのドライブ間移動だって、やってることはこれと同じ。
0046質問
NGNG1.紙面へのGDI描画
2.複数枚数
3.フォントを切り替えながらテキスト出力
どんな表現で行うべきなのでしょうか?
0047デフォルトの名無しさん
NGNGその程度はデバイス制御とは言わない、ふつう。
ただの印刷。
まず、MSDNで「印刷」を調べてから、再質問。
0048デフォルトの名無しさん
NGNGVBでデバイス制御、っつってる時点で違うか。
0049デフォルトの名無しさん
NGNGそんだけの説明だと
Printerオブジェクトで十分じゃないのとしか言えない。
0050デフォルトの名無しさん
NGNGせっかくVBにはPritenrオブジェクトという便利なものがあるんだから活用シヨーウヨ。
005150
NGNGタイプミス
0052デフォルトの名無しさん
NGNGstrHtml = WebBrowser.Document.all.innerhtml
ってやってもできないのは何故?
オブジェクトがありません言われるけど、ヲッチするとあるんだよ〜(;Д;)
0053デフォルトの名無しさん
NGNGとりあえずこの辺をどうぞ
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9801/vbprint/
ちなみにディスプレイのテキスト表示でもプリンタの設定変更でも
デバイス制御には変わらない。
『デバイス』って言葉に過敏に反応するのは、いかにも、おもちゃGUIしか
知らないという感じ。別に普通に使う言葉。
そもそもVBなんだからDDのわけはない(見ればそのまま)。
難しい言葉だと思い込んで初心者スレで説教垂れるのは、かなり悲しい。
0054デフォルトの名無しさん
NGNG2行に一度、境界ラインを太く(濃く描画)するという方法をご存知の方、
教えていただけないでしょうか。
いろいろ試してみたのですが、全行が変わったりするので
悩んでます。よろしくお願いします。
0056目指せ脱初心者
NGNGプラグインDLLの存在を確認してメニュー項目を動的に増やす方法は知っているのですが、
いざプラグインを実行しようとするとハテ?となってしまいます。
C++なら関数ポインタを駆使してできるのですが…
(プラグインは全て同じ関数をエクスポートしているという前提です)
なにかうまい方法をご存知の方はご教授くださるとありがたいです。
(おとなしくVCでクライアントを作れという説もありますが…)
こんなん見つけましたが、果たして安全なものかどうか…
members.tripod.com/~masapico/doc_FuncPtr.html
0057デフォルトの名無しさん
NGNG私も特定行のラインを太くすることにトライしたことあるのですが、
残念ながら上手い方法が見つかりませんでした。
仕方がないので、行の高さ変更を不可にして、
特定行の直後の行の高さを凄く細くしました。
こうすると一応太く見えますが、Fixedの部分もちょっと出っ張って見えますし、
なによりセルの操作が非常にやりづらいです…。
Dim i As Integer
For i = 0 To 9 Step 3
MSFlexGrid1.RowHeight(i) = 15'この数は適当です。twipがどうとか…
Next
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGその方法だとキーボードでのカーソル移動にめちゃめちゃ違和感があると思われ。
0060デフォルトの名無しさん
NGNGCommand 関数 ってのがあるから、それをSplitするなりしてがんばれ。
006154
NGNG早速のレスありがとうございます。
なるほど、そういう方法も有るんですね。
そのアイデアも踏まえて、もうちょっとがんばってみます。
ありがとうございます。
0062デフォルトの名無しさん
NGNGサブクラス化について勉強してみると得るものがあるかもしれん。
0063ななし
NGNGサブクラス化って、どんなメッセージがあるか(そして、それがどのWindow相手に
適用できるものなのか)把握しないと、使いこなせないのよね・・・。
(当り前やけど)
と、ツッコんでみるテスト。
0064デフォルトの名無しさん
NGNG関数ポインタは使えないよ。あきらめな。
>こんなん見つけましたが
一応理論上は間違ってないし、俺も似たようなことしてるw
でもVC++使うのが一番正常な人間だと思うぞ。
0065デフォルトの名無しさん
NGNGActiveX DLLを使用して作る。VBのアドインとかもこの方法だ。
適当に説明すると
1.プラグインのインタフェース用クラスを作る
2.インタフェースをImplementsしたクラスを作る。
3.このクラスをActiveX DLLにする。(これが一つのプラグイン)
4.プラグイン対応プログラムからActiveX DLLのクラスのインスタンスを
CreateObjectで作成しプラグインインタフェースにキャストして使用する。
手抜きしたいのなら、インタフェースを作らなくても
実行時バインディングで実装可能。
006656
NGNGないんですか…残念。
>>65
ActiveXは使ったことないので気付きませんでした。
DLLはVCで作ろうと思ってたんですが…
ちょっと調べてみます。
レスくださった方々、ありがとうございました。
0067デフォルトの名無しさん
NGNG俺も知りたい…
006865
NGNGDLLはVCでActiveXでないDLLだったのか?
てっきりVBだけで作るものだと思っていた。
もちろんVCでもActiveXは作れるからさっきの説明の
プラグインの部分をVCで実装すればできる。
どうしてもVCのプラグインをActiveXでないDLLにしたいのなら、
プラグインのDLL名を同じにしてプラグインごとにフォルダを分けて
Declareで宣言して環境変数のPATHを実行時に変更することで出来ないかな?
やってみたこと無いし、変な方法だけど。
006964
NGNGプラグインに対応って、要するにSusieプラグインを使いたいとか、
そういうことじゃないの?
プラグインも作れます、ならVC系で普通のDLL作らせるほうが一般的だと思う。
007066
NGNG既存のプラグインを使いたいというのではなく、
VBで作っているオリジナルのソフトにプラグイン機能をつけられたらいいな〜と
おもって聞いてみた次第です。
途中まで作っちゃったのでVCで作り直すのも面倒だなあと…
0071む
NGNGここにすんでおられるプログラマーの人何か初心者が考えたらわかる程度の
問題作ってください.では
0072デフォルトの名無しさん
NGNG簡単なWebサーバ作ってみるってのはどう?
初心者が考えたら分かる程度か、というとちょっと辛いかと思うけど、
いろいろ応用できて楽しいよ。
自作ソフトのフロントエンドにブラウザ使うって用途にも使えるし。
0073デフォルトの名無しさん
NGNG問題の系統は?
0074デフォルトの名無しさん
NGNGよし!ねぼうしがちなプログラマーにVB6.0かVB.NET目覚まし時計を作ってあげるとよろこばれるぞ
ソースもできれば欲しい
0076デフォルトの名無しさん
NGNGフォルダのパスから中のファイルの名前を取得する方法
サクッと教えてください。
おねがいします。
007734
NGNG0078四七子
NGNGその言葉、そっくりそのままオマエに返してやるさ。
オマエの国じゃ何か?
「ふつうは言わない」=「絶対言わない」なのか?
「不適切表現の指摘」=「説教」なのか?
それじゃ仕方ないな〜
0079デフォルトの名無しさん
NGNG出力したファイルの一行目がテーブルのフィールド名なのです。
これを無くしたいのですが、どうすればよいのでしょうか。
008076
NGNGえっと、俺へのレスでしょうか?
それなら、ありがとうございます。
ちょっとややこしいのですが、フォルダのパスまでがわかっていて、
その中のファイルの名前かパスを取得したいのです。
ややこしくてすいません。
008179
NGNGお騒がせしますた。
0082デフォルトの名無しさん
NGNG逆切れ、かっこ悪い。
0084デフォルトの名無しさん
NGNG>質問お願いしたいのですが。
って表現、日本語として変だから、VB覚える前にデバッグしてね。
んで、アドバイスだけど、Dirって、再帰呼び出しするとパニクると
思うので工夫してねー。
0085Rubyist
NGNG0086デフォルトの名無しさん
NGNGDWORD hoge(UINT argc, char* argv[]);
っていうエクスポート関数があったんですが、これはVBでは
Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, argv As Long) As Long
で正しいでしょうか?(関数の名前が正しいことは確認済み)
1.2番目の引数をどうやって宣言していいのか、
2.宣言があってるとしたらどうやってString()を渡せばいいのかがわかんないのです…
0087デフォルトの名無しさん
NGNGフォームを2つ用意して,メインフォームから.showで2つ目のフォームを呼び出すと
どうやらメインフォームでもForm_Loadが呼び出されているようなのですが
これはなぜなのでしょうか?
初期化処理を2度通過させられて困ってるんですが…。
どうかよろしくおねがいします。
0088デフォルトの名無しさん
NGNGload/unloadとかしてないよね?
今、フォームを2つ用意してそれぞれのForm_Loadに
MsgBox "Form1" '(Form2は"Form2")
って書いてみて、Form1に貼ったコマンドボタンでForm2.showしてみたけど
そんな現象起こらなかったよ?
0089デフォルトの名無しさん
NGNGOpenURLメソッドを使ってデータを取得しているのですが、
404 Not Found や 403 Forbidden を検知するにはどうしたらいいでしょう?
0090デフォルトの名無しさん
NGNGしょうか? 今まで参考書とかに載ってるのをみても全く疑問に思いませ
んでしたが、いざ 自分がプリントアウトしてみようとするとどうすればいいの
か全くわかりません。
分かる方いらしたらお願いします。
0091デフォルトの名無しさん
NGNGInetコントロール使ったこと無いからあてずっぽだけど、
ResponseCode プロパティ と ResponseInfo プロパティが怪しいぞ。
調べてみるといい。
0093デフォルトの名無しさん
NGNGフォームの姿が分かれば良いなら
開発環境の「ファイル」→「印刷」
で表示されるダイアログでの「印刷対象」で
「フォーム」だけにチェック入れて印刷すれば?
画質も適当にセットして
プロジェクト中の全部なら、左側で
「カレントプロジェクト」にチェックを
実行中でないとダメなら
Alt+PrintScreen キーからだろうな。
#つーか、これじゃWin初心者じゃん?
0094デフォルトの名無しさん
NGNGForm2 の Load イベント内のコードで Form1 上のコントロールを操作
しているようなことはないですか?
0095デフォルトの名無しさん
NGNGVB6ですが
IEのように
メニューバーをCoolBar上に置くのは無理でしょうか?
せっかくCoolBarあるのに
VBではサポートしてないのかな…
009687
NGNGはい,Form1のメニュー項目をdisableしているのと,
Form1に張り付けたwinsockのプロパティを読み出しています。
これっていけないことだったんでしょうか…。
0097デフォルトの名無しさん
NGNGInetコントロールはやめときなさい
機能が限定されすぎ
Winsockでおやりなさい
これならTCPレベルなので自由度が高い
ただし各クライアント、鯖機能の実装は 自分でやる
HTTPクライアントでの使い方をいっておこう
1)サーバーに接続要求し、確立する<Connectメソッド
2)そしたら HTTP鯖に対して HTTPメソッド(命令)を送る<SendDataメソッド
単にページ、ファイル要求は"GET"メソッドだ (通常我々がブラウザでやってるもんだ)
GET□ファイルパス□HTTP/1.0[vbCrlf][vbCrLf]
の文字列をSendDataで送ればよい(□はスペース、[vbCrLf]はVB組込み改行コード定数)
おっとファイルパスはトップフォルダ以下相対だ つまり/で始まる
3)HELPにあるとうり、受信データは自分でどこかに保存せよ
4)鯖が閉じたら、こちらも接続を閉じろよ、忘れるな
つまりHTTPやFTP、POP3などTCP上のものは扱えるということだ
ただし!、上記は最も簡単な例だが、HTTPのメソッドや 鯖のレスポンス(返信)の意味に対する
処理を自分で処理しないといけない、HTTP1.0はまだいいが
HTTP1.1はな…大変だぞw
つまりは要求やレスは単なる文字列のやりとりなのだが、それでどう処理するかを知らないとダメなのだ
もちろんプロトコルで全然違う
鯖がjpegみたいなバイナリーデータ送るよって イッテんのに 理解できないで
テキスト処理してるとマヌケ HTTPをまず よく知ることだ
HTTPプロトコルとは言わないように(・∀・)
0098デフォルトの名無しさん
NGNGメンドイ実装してどうするんだ・・・
0099デフォルトの名無しさん
NGNGロードされていない Form 上のコントロールを触ると
自動的にロードされます。
気をつけましょう(w
010087
NGNGそうですか,ただForm1はメインフォームなので,
プロジェクト起動後は1度すでにForm_Loadを通過してるんです。
それでもまた(2度も)Loadイベントが発生してしまうのがよくわからないんですが…。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGそれじゃその前にどこかで Unload してませんか?
0103デフォルトの名無しさん
NGNGデキマシタ━━━━━(゚∀゚)━━━━━!!!!
ありがとうございます、本当に助かりました。
0104デフォルトの名無しさん
NGNGスタートアップちゃんと Form1かい?
逆だと 死ぬよw
010587
NGNGUnloadしていないんです…。
ただ,さきほどの>>94さんのお話を受けて,Form1のwinsockコントロールの
プロパティをForm2から読み出すのをやめてみたら,Form1のLoadイベントの
二重発生はとりあえずなくなったようです。
よくわかりませんが前へ進むことができそうです。ちょっと不安ですけど。
ここへ来てよかったです。どうも本当にありがとうございました。
0106デフォルトの名無しさん
NGNG>>102もねたかい? 解決したよな しないよな もどかしさw
010787, 105
NGNG起きておりますよ。コーディング中。
結局原因は不明のままですが,ちなみにLoadイベントが2度目に起きたときには
グローバル変数もなんだか初期化されていたんです。
ようするにおなじForm1が実際に2つ立ち上がったようなかんじでした。
なんだったんだろうなあ。
0108デフォルトの名無しさん
NGNGどこかにNew From1って書いてないかい?
0110もしもし亀よ亀さんよ
NGNGFileSystemObjectつかうってのはどうよ。
Splitでさくっと分解すりゃいいんじゃない?
0111デフォルトの名無しさん
NGNGFileSystemObjectを使用するならGetFileNameや
GetParentFolderName等の方が便利じゃないかい?
0112デフォルトの名無しさん
NGNG×Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, argv As Long) As Long
○Declare Function hoge Lib "aaa.dll" (ByVal argc As Long, Byval argvStr As String) as long
011376
NGNG失礼しました。
DIR関数はパスからのファイル名やフォルダ名を返すものだと思ってました
フォルダからはファイル名が取得できない、と思ったら、ワイルドカード使えるんですね
ありがとうございました。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGそういわれて何気に最初から読んでたら
34前後のエロ画像整理アプリの話にちょっとワロタ
0116超初心者
NGNGしたいんですけど、どうしたらいいですか
0117デフォルトの名無しさん
NGNG他のフォーム.Show
0119超初心者
NGNGパラメータって意味を
噛み砕いて教えて下さい。
0120デフォルトの名無しさん
NGNGForm_Load にブレークポイントを設定して、呼び出し履歴を確認してみては。
0121デフォルトの名無しさん
NGNG値
012233=58
NGNG>VBで、exeにドラッグ&ドロップしたファイルのパスを得るにはどうすればいいのでしょう?
>>58
>Command 関数 ってのがあるから、それをSplitするなりしてがんばれ。
ありがとうございます。で、流れはわかったのですが、
例えば「"C:\Documents and Settings\Administrator\デスクトップ\foo.txt" "C:\Documents and Settings\Administrator\デスクトップ\bar.txt" 」
を、2つのパスとして取り出すにはどうすればいいのでしょう?
スペースでsplitすると、「Documents and Settings」も分割されてしまうし・・・
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGラリー・エリソンの自伝(w
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGテキストボックスの時間になると音がなります。
STOPにすると音が鳴りません。どうでしょうか。
Private Sub Command1_Click()
With Command1
If .Caption = "SET" Then
.Caption = "STOP"
Timer1.Enabled = False
Else
.Caption = "SET"
Timer1.Enabled = True
End If
End With
End Sub
Private Sub Timer1_Timer()
If Text1.Text = Format(Now, "hh:nn:ss") Then Beep
End Sub
0128デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG>あと、.bmp や .jpg を .gif に変換したいのですが、VBだけでできますか?
UNISYSに高額な料金を払えば可能。
0131デフォルトの名無しさん
NGNGCommand$のパスはOSによって違うのだ。(藁鬱)
自分でやってみた?
確か9x系ならDOS名+スペースで、NT系なら"で区切られてたはず。
>>129
>.png ファイルを扱えるコントロールありますか?
どっかにあった。竹熊公房だっけか。
>あと、.bmp や .jpg を .gif に変換したいのですが、VBだけでできますか?
できる。GIFのフォーマットを知ってればね。
>UNISYSに高額な料金を払えば可能。
フリーライセンス(使い放題)で数千万だったかな。
0132デフォルトの名無しさん
NGNGVB系の初心者向けの本はどれも似たり寄ったり。
タイトルに「VB」「初心者」「データベース」が
付いてる本選んどき。
0133129
NGNGいいのか悪いのかわかりませんが、IrfanView で「.bmp → .gif → .png」と
全部出来ちゃいました(w
.bmp や .jpg から .png を作りたかったので、とりあえず目標は達成できたと(w
あとは VB 側から IrfanView を操作して一連の作業を自動化したいんだけど、できるかな?
0134デフォルトの名無しさん
NGNG仕様書工房シリーズは仕様書作成に時間がかかります(あたりまえか)
関数、変数などの情報から呼び出し順までいろいろ書いてくれます。
関数の仕様やコメントを入力する機能が糞でストレスがめちゃめちゃ溜まります。
全部のフォームのスクリーンショット取るために起動されるVBがかわいそうです。
0135デフォルトの名無しさん
NGNGサブルーチン(関数)呼び出しで、呼び出した側がサブルーチンに渡す情報のことをパラメータという。
例えばタクシーの運転手に「東京駅まで」て言ったきは、その「東京駅まで」というパラメータを運転手に渡している。
こんな説明じゃダメ?w
0136デフォルトの名無しさん
NGNG013874
NGNG動作確認してみたぞ。
基本的な機能を作り終わったという感じだな。
あとは肉付けして人が朝に起きれるぐらいの物に発展させていこうじゃないの。
起きれるは起きられると書きなさい。という突っ込みは無しだぞ。
0139デフォルトの名無しさん
NGNG目的時刻に重たいアプリが1秒以上タスクを占有すると
アラームが鳴らない可能性がある罠。
対策はいろいろバリエーションがありそうね。
0140122
NGNG「"C:\Documents and Settings\Administrator\デスクトップ\foo.txt" "C:\Documents and Settings\Administrator\デスクトップ\bar.txt" 」
という文字列を、「" "」でsplitして、なおかつ最初と最後の要素について、左右の「"」を取り除く作戦で
いこうかと思います。
ただ、以下が本題ですが、「「" "」でsplit」する方法がわかりません。
strArg = Split(Command(), "\" \"")なのかなと思ったのですが、エラーになっちゃうんですよね?
どうすればいいんでしょう?
0141ななし
NGNG板違いな質問(確信犯)ですが、C言語でVBの動的配列(ReDim)に相当するものは作れる
のでしょうか?
もし、できないとすると、別のデータ構造(リスト等)を使うしかないでしょうか?
0142デフォルトの名無しさん
NGNGC:\で取っちゃえば?
0143デフォルトの名無しさん
NGNG""" """と書け。
0144デフォルトの名無しさん
NGNG連続したメモリに置く場合は、メモリの確保→コピーで作れる。
C++とは書いてないのでオブジェクトの動的配列・STL等の使用は考慮外。
0145デフォルトの名無しさん
NGNGまた可能なら方法を教えてください。
0146デフォルトの名無しさん
NGNGなぜリスト構造知っていて動的配列を知らないの。
malloc, reallocは可変長配列を使用するときに使う。
0148デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/win95/prog/se222454.html
こーゆーのはダメでつか?
使ったことはないケド。。。
0149@ ◆Yqz.....
NGNG今までVB5Proを使っていたのですがこの度VB6にしたのです。
が、VB5で既に作ってあったプロジェクトを読み込んで、実行すると
str関数の所「nas.caption = str(reftext.text) & str(refnum.text)」でエラーになる。
「コンパイルエラー:プロジェクトまたはライブラリが見つかりません」と。
VB5Proの時にはちゃんと実行できていたのですが・・・。
そしてStr以外のところは全く問題無くコンパイル、実行できます。
どういうこと??長文スマソ
0150読まずにカキコ
NGNG参照設定開いて頭に「Visual Basic」ってついてる奴を入れる
0152Delフサギコ ◆zE1iiRdQ
NGNG@,,,ミ,,゚Д゚彡 < 質問スマーソ
⊂,,,,,,,,,つつ. \_
VBで、画像を画面に描く事なく
メモリ上で描いて、ファイルに書き込むような
プログラムってどうやってかくですか?
教えてくださいまし。VB6です
0153いちいちレスする男
NGNG0154Delフサギコ ◆zE1iiRdQ
NGNG∧,,∧ / ̄
@,,,ミ,,゚Д゚彡 < 動的にImage1かPicture1を生成して
⊂,,,,,,,,,つつ. \描いてファイルに書いて
破棄しちゃったりしたらよさそうなんだけど…
具体的なコードがかけないの…シクシク
0155127
NGNG改良しました。
デフォルトでコマンドボタンのCaptionは"停止中"、タイマーのIntervalは"500"、
Enabled="True"です。テキストボックスに「時時:分分」で時間を入れると、
停止にするまで5分間なり続けます。これ以上コードが長くなるとウザイですね。
すいません・・・。
Private Sub Command1_Click()
With Command1
If .Caption = "動作中" Then
.Caption = "停止中"
Else
.Caption = "動作中"
End If
End With
End Sub
Private Sub Timer1_Timer()
If Text1.Text <= DateAdd("n", 5, Format(Now, "hh:nn")) And _
Command1.Caption = "動作中" Then Beep
End Sub
0156デフォルトの名無しさん
NGNGデバイスコンテキストじゃん?
0157デフォルトの名無しさん
NGNGVBの範疇でやるには、PictureBoxをVisible=False、AutoRedraw=Trueで
生成して、それにLineとかで書き込み、SavePicture Picture1.Image,"hoge.bmp"
でファイルに保存すればok。
0158Delフサギコ ◆zE1iiRdQ
NGNGミ,,゚Д゚ミ < デバコンテ感じ。
ミ ミ \__
〜ミ,UU_ミ
http://www.aqube.pos.to/fly/vb/graphic2.html
ここ見て勉強中っす。
どやたら、これをメモリ上だけでファイル書き込みなどが出来ますの?
隠れたFormとかは使えないの…(使えるかもしれませんが…)
単なるActiveXDLLのメソッドとして画像ファイル生成処理を
ageなければならんもんでして…
0159デフォルトの名無しさん
NGNGCreateCompatibleDC
CreateCompatibleBitmap
SelectObject
GetDIBits
SetDIBits
BitBlt
DeleteObject
DeleteDC
とか使えばできるのでは?
0160Delフサギコ ◆zE1iiRdQ
NGNGミ;゚Д゚彡 < PictureBoxの生成コードがわからんでし…
,;゙ ミ \_____________
ミ. ミ ゴメンナサイゴメンナサイ
/゛゛゛゛
PictureBoxはFormに貼り付けないでも生成できますか?
ActiveXDLLで、ASPのVBSからコールしたいのです。
だから、普通のFormに依存することが出来なさそうな雰囲気。
(いや、実はよくわかりませんです)
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGForm必要だね。
Formが作れないなら、VBの範疇じゃ無理なので>>159に出てきてるAPI使って
やるしかない。API使えばできるよ。
0164_
NGNGVB6でWINDOWSに貼り付け、を実行させるにはどうすりゃいい?
つまり今Text1にフォーカスがあったら、そこにクリップボードの内容を貼り付けるっていう。
「SendKeys "^V"」とかやればできるか?
調べるの下手なもんで・・・誰か検索テク教えれw
0165デフォルトの名無しさん
NGNGMSDNライブラリをクリップボードで調べれ。
0166デフォルトの名無しさん
NGNGそれ、めちゃめちゃ簡単にできるぞ・・・・
0167デフォルトの名無しさん
NGNGむ、改良版はなんだか目覚ましと言うよりカップラーメンタイマーに近づいてるな。(笑)
目覚ましをつくるには指定の時間になると自動的にパソコンのボリュームをあげる機能も必須だがこの機能の実装もAPIでできるからお願いね。
0168デフォルトの名無しさん
NGNG初期設定ではプロポーショナルになってるけど、等幅の方が何かと便利な気がするのですが。
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG限りなく成功に近いプロジェクトには、そんなもん使わないでも、
それ以上に意味のある仕様書が存在しる。
それ系のツールで仕様書出すプロジェクトほどヘタってるって感
じするよ(w
で、使うときに限ってコーティングがタコで、ロクな仕様書吐い
てくんない(w仕様書出力のためのコーティング修正が始まる
始末・・・・(w
で、仕様書出力のためのコーティング修正時に致命的なバグが・・・(以下略
0171_
NGNGそこまで冷笑されながらわからなかったYo!
何だ!?何なんだ!?GetTextか?
いや、、、もしかしたら俺がやってることが特別なのかもしれん。
どういう事かっていうとだな、俺は今hotmailの垢取りツールを作ってんのよ。
もちろん練習兼ねてだけどな。
んで楽するためにWebBrowserコントロールを使ってる。
そんでWebBrowserの表示URLをhotmail登録のURLにするだろ。
これでWebBrowserコントロール内に登録フォームが表示されてる状態。
SendKeys "{TAB}"で最初の入力欄にフォーカスが行って、
そこであらかじめTextBoxからクリップボードに入れたテキストを
SendKeys "^V"とやって入力欄に貼り付けようとする。
失敗する。
0172_
NGNG0173デフォルトの名無しさん
NGNG仕様書作成ツールってさ。プログラム解析ツールと改名するべきだよな。
もしくは、仕様書捏造ツール。実際の用途はそのように使われているだろ。
仕様書ってなんだよ?
プログラムを作成するための仕様書を作成するためのプログラムを作成するための仕様書を作成するための・・・
0174_
NGNG・WebBrowserコントロール「自体」にSendKeyしてしまって、
入力フォームにキー入力されたことになってない?
って事だけ。
0175168
NGNGテキストボックスに決まった文字数の半角(or 全角)文字のみ入力させるような場合には
等幅にしておくと、Widthをギリギリに設定することが出来る、とかそんな感じですかね。
ラベルの文字とかはプロポーショナルの方が見た目がいいのかな?よくわかんないです。
0176デフォルトの名無しさん
NGNG(VBの)アプリで重い軽いってありますよね
あれって、どのようにしたら、重い軽い、ってなるのでしょうか?
軽いはおいといて
重いほうは、やたらLOOPしたり、&多用、重いファイル読み込んだりしたら重くなるけど
たとえばList20とかCommand40とか、コントロールをやたら増やしたら
重くなるのでしょうか?
お願いします
0177デフォルトの名無しさん
NGNG使い場所によって、等幅の方が利点があると考えたなら等幅をつかい、
プロポーショナルの方が利点があると考えたなら等幅をつかえばよい。
どっちでもいいなら、デフォルトで見た目がよいプロポーショナルを推奨する。
0178名無しさん@そうだ選挙にいこう
NGNGSendKeys "{TAB}",True
SendKeys "^(v)",True
でもダメ?
なんかvは小文字じゃなきゃダメだった記憶(経験)が・・・
0179_
NGNGサンクス178!何故かわからんけどそっちをコピペしたら出来た・・・!
感謝すぃます!
0180デフォルトの名無しさん
NGNG>>95
基本的な方法としては各ボタンにTBSTYLE_AUTOSIZE スタイルをセットしるだけ。
すると文字の幅に合わせてボタンの大きさが変わる。
よって、フラットスタイルにしてクリックしたときの処理を上手くまとめればOK。PopupMenuとか使って。
ただ、漏れにはボタンにスタイルをセットする方法がわからない。いろいろ試したんだけど、どうもうまくいかない。
どうすればいいんだ ヽ(`Д´)ノ ウワァァン
たれか教えてください。Delphiだと簡単なんだけどなぁ。
もしかして簡単だったりして。わるれてるだけかな?
0181デフォルトの名無しさん
NGNGあ、一応ツールバーコントロールをクールバーに載せるって事で。わるれてました。
0182デフォルトの名無しさん
NGNG元のデータはどこにあるんだ?
デバイスコンテキスト?自分のメモリ?PictureBox?
それによって処理が変わるぞ。
018395
NGNGIEの一番上のだよ TEXTだけのやつだよ
VBのツールバーエディタはバカでイメージがなくても、その分の余白つくって
しまう。結局ダミーの1x1のイメージでごまかす こんなの正当じゃないよ
それは 別として
まとれす 最近来ないねw (´∀` )
0184デフォルトの名無しさん
NGNGDelphiだとどーやるの?
0185デフォルトの名無しさん
NGNGツールバーでメニューを作るんだよ、頼ってばっかのバカちん!
0186デフォルトの名無しさん
NGNGんー。名前はどうかね。
しかし、仕様書生成ツールなんて、はっきり言って不要よ。
ツールでちゃんとした仕様書が出力されるように糞なコーティング
ルール作って強制するなら、んなもん使わんでも済むように設計時
にしっかりした仕様書作成するほうが絶対にイイ(・∀・)
まぁ、納品ドキュメントの「格好」として利用する場合もあるかも
しれんが、「格好」だけなんだから、製品を購入する必要はなし。
フリーも多数あるんだから、それで十分でしょ。
0187デフォルトの名無しさん
NGNGだからVBのじゃできないっていってんじゃん、アホチン!
ニッケイ良く読め
0188デフォルトの名無しさん
NGNGん?ツールバーでメニューできんか??
0189デフォルトの名無しさん
NGNGヤッテミナ
テキストだけだと 変だから
エディタの仕様が悪いらしいw
0190188
NGNG確かに、テキストだけは変
だから、ボタンのビトマップを、絵ぢゃなくってテキストにして
作成したりしてたんですが・・・・ダメ?
結論として、VBでもできる・・・・だと思うのだけど、ダメ?
>>187
それって何かの記事?
0191デフォルトの名無しさん
NGNGそれって何かの記事? <いや 意味はない(´Д`;)
0192デフォルトの名無しさん
NGNGttp://www.int21.co.jp/pcdn/vb/onepoint/knvol002.html
ttp://www.int21.co.jp/pcdn/vb/onepoint/knvol014.html
ttp://www.int21.co.jp/pcdn/vb/onepoint/knvol0811.html
この方法でいいのか?よくわからん。
0193デフォルトの名無しさん
NGNGOLEDragDropが有効なコントロールが2箇所あって、
その2箇所とも同じ作業を行いたいのですが、
その一方に
File1_OLEDragDrop
と書いてやっても引数がうまく渡せないので、うまくいきません。
今はコードをコピペしてるのですが、もっとうまい方法ないでしょうか?
0194即レス
NGNG出来るぞ。DataObject渡してるか?
自作の関数で引数にDataObject取ればすむ話だ。
同じコントロールならコントロール配列にするもよし。
0195でい
NGNG知識がついてきたので就職しようと思っているのですが、実はネットワークの知識が
殆どありません。これだとやばいですか?
0196即レス
NGNG就職先による。
時間があるなら勉強しとき。
0197へっぽこ野郎
NGNGプログラムを作りたいと思い、TAPIの資料をあさっているのですが
なかなかよいものがみつかりません。
何かよいサイトなどありましたらご教授おながいします。
0198デフォルトの名無しさん
NGNGネットワークの知識つーても広ぅございますので...
新人として入るなら、小規模LANが組める程度で十分じゃないか。
欲を言えば、セグメント分けたネットワーク構築まで出来るとイイ。
0199即レス(でもないか?)
NGNGhttp://allen-martin-inc.com/
お勧め本
http://216.239.33.100/search?q=cache:iGbWiEG2KPQC:mfc.acty-net.ne.jp/ml/mfc/logTop/logAll/00017027.shtml+TAPI+%8Eg%82%A2%95%FB&hl=ja&lr=lang_ja
俺は専門外なのでこれぐらいで。
0200デフォルトの名無しさん
NGNGTAPI系のコントロールを買ったほうが早くない?
http://www.google.co.jp/search?q=TAPI+OCX&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0202193
NGNG即レスありがとうございます。
自作の関数とは
Public Function DragDropList1(Data As DataObject)
という関数を作って中身をコピペすればいいんですよね?
結果は、うまくいきませんでした。
ありがとうございました。
0203Delフサギコ ◆zE1iiRdQ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < もとデータは自前で描画するのです>>182
UU"""" U U \_______________
レスくれた方々、サンクスコ
とりあえず、
VBS >>呼ぶ>> VBのActiveXDLL >>呼ぶ>> BCBのDLL(描画する機能)
という、世界の終わりっぽい逃げで
一応作ってます…今のところ…
ああ、デスマーチデスマーチ
株価チャートみたいに
Webアクセスしたら動的に画像を見たいだけなのに…
0204デフォルトの名無しさん
NGNGうまくいかないのに、ありがとうございましたか。
なんか違和感あるな。もうどうでもいいのかな?
関数と自分の書いているコードの意味がわかればちゃんとできるはずだが。
0205元即レス
NGNGこーゆーことだ。
Function GetDrop(D As DataObject) As Long
Text3.Text = D.Files(1)
End Function
Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
GetDrop Data
End Sub
Private Sub Text2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
GetDrop Data
End Sub
Text1,2,3を貼りつけてText1,2のOLEDropMode=1に。
>>204
嫌味なんじゃないか?
ちょっとワラタが。
0206193
NGNGレスありがとうございます。
うまくいきました。なるほど、こういう使い方をするのですか。
ところが、また問題が、MSFlexGridにドラッグしたいのですが
型がMSFlexGridLib.DataObjectとなっているのでListBoxと型が合いません。
むむむ、、、
ありがとうございました。
>>204
自分がうまくいかなくても、レスをもらったのだから、その意味で
ありがとうございました。です。まあ、読み返してみたら、確かに変ですが。
0208デフォルトの名無しさん
NGNG0209へっぽこ野郎
NGNGどうにかこうにかTAPIの制御はできて、ダイヤルまでは逝ったのですが
新たな問題が・・・・
Windows98SEの環境でTAPIを呼び出してコールを行うと電話に相手が
出るまで延々とコールし続けてくれるのですが、
Windows2000の環境でダイヤルを行うと3回目のコールあたりで
ブチっときれてしまいます。
98と2000では実装されているTAPIのVerも違うようなのでその当りが
問題なのかなとか思うのですが・・・
0210デフォルトの名無しさん
NGNG終了させてから、そのEXEファイルを
棄てたり移動させたりしようとすると、
「ウィンドウズが使用してます。」
と表示されます。
なにが原因だと思われますか?
0212145
NGNG自分自身で使用ならそれで事足りそうですが、できればVBのみで
netstatの結果を使用したいのです。
DOSコマンドなのでnetstat自信の使用は可能だったのですが、
情報を取得がうまくいかないので・・・
他の方法は何かご存知の方いらっしゃいましたら、ご教授願います。
0213193
NGNGおお、ありがとうございます。
うまくいけました。
これで中身をいじったあと、コピペすることがなくなりました。
うっかりミスもなくなりそうです。
ありがとうございました。
0214デフォルトの名無しさん
NGNG実は今、VBでサウンドプレイヤーを作成しているのですが
再生したい曲の、曲名や、アーチスト名、曲の長さ等を
取得するには、どうしたらいいでしょうか?
0215デフォルトの名無しさん
NGNG0216密男
NGNGどうしたら良いでしょうか?ライブラリーを探してみたのですが判りませんでした。。
又、sendkeysでWindowsロゴキーを送信する事は出来ないでしょうか?
0217デフォルトの名無しさん
NGNGAPIのCloseWindowを使う。
0218デフォルトの名無しさん
NGNG設定のフォームを普通のForm2で作ったんですけど、
普通、設定のフォームは普通のフォームじゃなく、何か別のフォームを使って作るのでしょうか?
おねがいします。
0219デフォルトの名無しさん
NGNG0220218
NGNGありがとうございます。サクっといけました。^^
0221三平
NGNG私が教えていただきたいのは、Formの見出し画面、(プログラムの名前を表示する)
例えば、Netscapeです、起動するときでる。読みこみ中ですとか言う!
を使うプログラムありますよね!
それで、見出し画面を表示して、タイマーを使って一定時間計って、
終わったら、プログラムが起動する、プログラムコード・・・・
よろしくお願いします。
0222デフォルトの名無しさん
NGNG別にタイマー使ってるわけじゃなくて、それだけ処理を実行してる。
進行表示には、時間がかかる処理の中でプログレスバーを使う。
0223デフォルトの名無しさん
NGNGBATファイルを書き出して、NETSTATの結果をファイルにリダイレクトし、
そのファイルを読み込む。あとは証拠隠滅。
ただし、Windowsによって、NETSTATの結果書式は異なるので注意。
0224デフォルトの名無しさん
NGNGタイマーコントロールの使い道?
それとも プログレス表示のアルゴリズム?
どっちが 知りたいねん?
てか タイマーって 聞いてるので こっちと判断
VBのタイマーコントロールは 厳密でないのは 有名
使い道は HELPにあるとおり
一定時間ごとに 何かさせるのに 使う
オレは グラフィック描画と組み合わせたときに 使うかな
わざと 部分的に 描いていって ゆっくり 見せるとき
ウエイト用に使うわけだ
特に ラインでタイマーイベントで1ラインごと描くのに いいだろ
遅い処理が わざと 必要なときだな あいまいで もちろんいいわけだ
タイマーコントロールで 何か正確な 時間を 量るのは ムリ
0225Name_Not_Found
NGNGVBscriptも仕様書を自動生成してくれるツールとかないですか?
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGそんなもん、扱うファイル形式による。
それぞれのファイルフォーマットについて研究せよ。
そもそも情報があるとは限らないよん。
0228デフォルトの名無しさん
NGNGゲームでは、ほとんど使う。
業務系ではあまり使われないが、無人=自動処理をするときは必要。
0229三平
NGNG他の方もよろしければいつでも書いてください
よろしくお願いします。
0230デフォルトの名無しさん
NGNGForm1のボタンで、
From2.Show vbModeless, Me
Form2のボタンで、
From3.Show vbModeledd, Me
From3.Hide
の後に、Form2を閉じると、Form1のウインドウが背面に移動してしまうのですが、
どうしてなのでしょうか?
0231密男216
NGNG有り難うございます。APIですか、、難しそうですね、、
VBを始めたばかりなのですが、避けられないですよね、API、(^^;
よく調べてみます。。
なんとかsendkeysで出来ないものでしょうか、、
0232デフォルトの名無しさん
NGNGVBSは
Vusual Studio6ファミリーの
Visual InterDev6で書けるぞ
JavaScriptももちろんできる
当然ながら今から買うのは お勧めしない
Studioプロ版以上はセットだが?
持ってないのか…
0233デフォルトの名無しさん
NGNGどっちみち起動してるアプリ名を取得するのにAPIが必要になるし、
そもそもSendKeysはWindowキーに対応してない。
IE4以降がインストされてる環境なら、次のコードでもいけるかな。
Dim objShell As Object
Set objShell = CreateObject("Shell.Application")
Call objShell.MinimizeAll
Set objShell = Nothing
RtlMoveMemory の使い方が悪いのか、どうしても WM_NCPAINT メッセージを拾うことができません。
lParam からメッセージを正しく取り出す方法をキボンヌ。
WM_NCPAINT メッセージが間違いなく流れていることは Spy++ を使って確認しています。
Private Type CWPSTRUCT
lParam As Long
wParam As Long
message As Long
hwnd As Long
End Type
Private cwps As CWPSTRUCT
Private Const WM_NCPAINT = &H85
Function CallWndProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Call RtlMoveMemory(cwps, lParam, Len(cwps))
If cwps.message = WM_NCPAINT Then
'ここに目的の処理
End If
CallWndProc = CallNextHookEx(HHook, ncode, wParam, lParam)
End Function
0235莇
NGNGフリーのDLLを呼ぶのはなしで自前のコードを書いてみたいです。
0236デフォルトの名無しさん
NGNGCRC16は、x^16 + x^12 + x^5 + 1 の剰余
CRC32は、長いので省略
VBでやるとたぶん激遅だけど、やってみるよろし。
0237莇
NGNG0238デフォルトの名無しさん
NGNG想像できない?
まず、1バイトのファイルを作って、CRCツールの結果と比較してみる。
次は、2バイトファイル。
そういう探求心が必要。人に質問する前に。
0239莇
NGNG0240デフォルトの名無しさん
NGNG「Documents and
Settings」
みたいに勝手に2行に分かれてしまって困ってます。
Labelにはマルチラインプロパティみたいなものも無いしどういうことですか。
0241デフォルトの名無しさん
NGNGAutoSizeとかWordWrapいじくってみたら?
0242デフォルトの名無しさん
NGNGそこで、プログラムそのものを効率良く・無駄なくしたという前提で、
さらに計算ににかかる時間を少なくしたいのですが、一般方法として
どのようなものがありますでしょうか?
ご教授いただければ幸いです。
0243デフォルトの名無しさん
NGNGC言語やアセンブラで書く
0244デフォルトの名無しさん
NGNGそれ以外で。
なんと言ってもEXCELは使いやすいもので。
業務ではEXCELは欠かせないのですよ。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGEXCELでって言ってんだろーがー!!!
だからこうやってVBスレに書き込んでるんだよ。
ったく人が下手に出てりゃふざけやがってよ。
0247デフォルトの名無しさん
NGNG「プログラムそのものを効率良く・無駄なくしたという前提」なら
これ以上どうしようもないのでは?
本当に無駄がないのかはしらんが。
0248名無し募集中。。。
NGNG0249デフォルトの名無しさん
NGNGマイクロソフトに入社して、もっと効率のいいAPIを開発するか、
あんた自身のスキルアップのために大学院に入ってアルゴリズム
の研究をした方がいいよ。
0250デフォルトの名無しさん
NGNG2chに救いを求めるようなアフォに研究生活は無理だと思われ
0251デフォルトの名無しさん
NGNG無駄をなくす。最終的には速さはこれしか影響しない。
具体的な方法は、
○アルゴリズムの見直し
○Variantを使用しない
○APIが使えそうなら使う。
○ループの中の見直し
こんな感じ。(ホントはもっとあるけど割愛。)
上のものほど速くなる。
>246
2chのネタぐらいで切れるな。2ch初心者かい?
>>248
あれは自前で描画してるが。
どっかにそれ専用のコントロールでもあるかな?
0252デフォルトの名無しさん
NGNG今はどれくらいの時間がかかってんの?
0253デフォルトの名無しさん
NGNGPCそのものが1年くらいの経験年数。
>>250
うるせー
>>251
ありがとう。
ちなみに切れた振りしてるだけ。
最初はボケにつきあってたのさ。
>>252
少なくとも一時間以上。
計算量が多いってのもあるけど。
0254251
NGNGありゃ、そうなのね。
ボトルネックになってるところは分かるか?
コードを貼りつけてみればアドバイスも増えるかもな。
0255デフォルトの名無しさん
NGNG申し訳ないが。。。会社で使ってるんですよ。
貼れない。。。
0256デフォルトの名無しさん
NGNGありがとう。色々試してみます。
0257248
NGNGこっちも自前で描画したい。コントロールは恐くて使えん。
まずメモリに全部描画して、その後ピクチャに...
ってやるんだろうが、具体的にはまったくわからん。
今は1ページ分の拡張メタファイルを作ってピクチャに描画してる。
当然画面には1ページしか表示できず、メニューなどで切り替えている。
ここから何とかならんものか?
0258デフォルトの名無しさん
NGNGそんなに初心者だったのか。ならいろいろアドバイスすることはありそうだね。
0260デフォルトの名無しさん
NGNGとりあえずなるべくメモリに展開してから計算すると速くなることがあるね。
最近のPCのメモリはたくさんあるからフルに利用しよう!
0261デフォルトの名無しさん
NGNG繰り返し演奏をしようと思いまして、そこで
"C:\My Documents\My Music\okuyasu.mp3"
のファイルパスをString型のMp3fileという変数に格納しました。
そこでVBのソースコード中でMp3fileがEOFになるという
条件文の書き方はどのようにすればよいのかしら。
0265(261)デフォルトの名無しさん
NGNG>文字列型のEOFと言う意味が分からん。
ここに誤りがあったか。
ではMP3ファイルを演奏して、終了したときに出される
EOFを検地するには,VBコード中で
どのように書けばよいか?
0266即レス
NGNGああ、そういう方法使ってたのね。
つまり自前で描画ってのはDC(PictureBoxでもいいけど)を2つ用意して、
1,2ページをそれぞれに描画して、BitBltなりStrechBlt(だっけ?)で
表示させたい所に転送する、って感じになるんよ。
スクロールは転送位置を操作、ズームはStrechBltでいけるでしょ。
#ちょっちめんどくさいかも。
>>264
どうなんだろう。
0267デフォルトの名無しさん
NGNGVBで ダブルな引用符 ---> " を文字列の中で使うにはどうすればいいのでしょうか?
いまは、 & chr(34) & で書いていますが、何か他の書き方が絶対にある気がしているのですが。
0268デフォルトの名無しさん
NGNG無いよ
0271248
NGNG既存のコードを生かすとすると、
拡張メタファイル DC をページ分作って
そこから更に表示域のビットマップをこしらえる、
ってことでイイのかな?
うまくできるかどうかはわからんがやってみるよ。
ありがとう!
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGPrint "ゴルァ"
End Sub
0276268
NGNG0277即レス
NGNG原因の可能性がありすぎ。
>276
藁
気にすんな。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG普通のパスって?
0280デフォルトの名無しさん
NGNGとかです
0281即レス
NGNGif left$(Path,2)="\\" then path="c:\" & mid$(path,3)
こんなんでいいのか?お勧めせんが。
それともローカルのパスだったらローカルパスに直す、とか言う処理か?
0282デフォルトの名無しさん
NGNG\\server\に対するM:\が存在しないことがあるのは知っているか?
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGWNetAddConnection2で\\Serverに接続しよう
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGどういう機能がほしいんだい?
0287デフォルトの名無しさん
NGNGgoto?
0288デフォルトの名無しさん
NGNG脱却ってのがなんだかわかんない。
0290デフォルトの名無しさん
NGNG要するに、処理がForに集中してフリーズ風になるのを避ける
方法を伺っておるのです。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGいや、DoEventsで十分なんですが、これではループに時間が・・・
for〜next処理をdo〜loop内に入れてして数千回回したら一回forを抜ける。
ここでDoEvents。
ってのはどう?
0294デフォルトの名無しさん
NGNG自分は
If Rnd<0.001 Then DoEvents
見たいなのも考えてみたのですが、条件判断にもいちいち時間かかり
そうだったので気が引けてました。
>>293さんの方法でやてみます。ありがとうございます。
0295デフォルトの名無しさん
NGNGForm_1.Name.Text
というテキストボックスに
ユーザーに文字を入力してもらった後、
Docmd.Close
でForm_1を閉じ、
Module1
を呼びました。
Module1内から
Form_1.Name.Text
内にユーザーから入力してもらった文字が参照できるのですが
なぜ、閉じてるのに参照できるのでしょうか??
参照は確実にできるのでしょうか???
VBのUnloadとはどう違うのでしょうか???
以上、お教えいただけませんでしょうか・・・・・
0296デフォルトの名無しさん
NGNG重い処理をアウトプロセスサーバにして非同期で動かすとか...
0297デフォルトの名無しさん
NGNGすみません、意味わかんないっす(w
0298デフォルトの名無しさん
NGNGできない
0301即レスになってないけど
NGNGSleep使え。
>>295
DocmdのCloseはVBのHideと似たような動作になるんだったかな。
>Sleep使え。
それも手か。
0303デフォルトの名無しさん
NGNGSleep 使ったらスレッド止まっちまわね?
スレが止まるのかw
0306デフォルトの名無しさん
NGNGCall Sleep(1)
DoEvents
みたいに組で使えってことだろ、たぶん。
一見良さそうだよね。
0308デフォルトの名無しさん
NGNGそれどういう意味があるの?
0309(・∀・)
NGNG小さくするコツなどありましたらご教授お願いします。
P-CODEコンパイルってアリですか?(いまいちメリットがわからん)
なるべくネイティブコードコンパイルにしたいのですが…
0310デフォルトの名無しさん
NGNGデカイってどれくらいなのサ?
0312デフォルトの名無しさん
NGNGTabSplitとFrameを置いただけじゃそんなにならないよね。
その他のコードに無駄はないかい?
最適化をいじくるのはそれからだよ。
0313デフォルトの名無しさん
NGNGあかんやろ。
>>292 で「いや、DoEventsで十分なんですが、これではループに時間が・・・」
って言ってるぐらいだから。
そもそも >>290 で...
> 要するに、処理がForに集中してフリーズ風になるのを避ける
> 方法を伺っておるのです。
の意味があいまい。
1. 他のプログラムの動きがのろくなる
→ プライオリティ設定すべし。もしくは、SMP マシンでも買え。
2. 自分のプログラムのコントロールが反応しなくなる
→ ちゃんとやるなら >>296 の方法。簡易的には DoEvent しかないよ。
プライオリティは具体的には
Private Declare Function GetCurrentProcess Lib "KERNEL32" () As Long
Private Declare Function SetPriorityClass Lib "KERNEL32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
で宣言してどっかに
SetPriorityClass GetCurrentProcess, &H80
を組み込む。&H80で十分っしょ?
>>311
1:頑張ってコードを最適化(最適化の術はGoogleで検索してみ)←推奨
2:UPXで潰す。
3:コンパイルされるときに強制的に
/MERGE:.data=.text /MERGE:.idata=.text /SECTION:.text,erw
を付加する。これ超裏技。
Link.exeにこのコマンドが渡されるのであらかじめVBでLink.exeをリネームしたものに
このコマンドを渡すプログラムを作っておく。
更に/ALIGN:4096をつけるのもよし。
VB側では『サイズの最適化』にしとく。
0315デフォルトの名無しさん
NGNGDoEventsの変わりの関数を作って決められた回数もしくは一定時間を
超えた場合のみDoEventsを行う用にすればいいのでは。
決められた回数はCPUに比例してDoEventsの回数が増えるから
一定時間ごとDoEventsがよさそう。
固まりかけてるような重いプログラムで一定時間が判定できるのかな?
0318_
NGNGごーぐるさんでも出ないのですが。
0319デフォルトの名無しさん
NGNGヘルプを見よ。
0320デフォルトの名無しさん
NGNGListView に直接追加するんじゃなくて、ListView.ListItems コレクションに
追加しる。
0321デフォルトの名無しさん
NGNG送信元を[email protected]としたメールを送信したいときのソースは
どう書けばいいですか?
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG悪用はいたしませぬ。
教えてケロ
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGそもそも、人に聞くような問題じゃないし。
0328デフォルトの名無しさん
NGNG教えてくれい>>327
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGタグっていうかとにかくエクセルにメールアドレスを登録している人達に
メールを送りたいんだーーー!
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGずっと早いと思うよ。
あ、俺わかんない。ごめんな。
0334デフォルトの名無しさん
NGNGまず努力。ヘルプ見て自分でやってみて、わかんないとこが出てきたら、
自分でやったことを書いてから質問する。
0335デフォルトの名無しさん
NGNGつーか、ネタだろ。ネタじゃなければバカ
0336即レス
NGNGWinSockを使う。VBのサンプルコードはあんまり見かけんが。
めんどくさいならフリーのDLL、OCXを使うかOutLookのVBAを使ってみれ。
0337デフォルトの名無しさん
NGNGまったくもうっ。ここで質問する位の初心者だと理解しろYO!!
0338318ですが
NGNGのカタチでちゃんとアイテム追加できましたです。
サンクスっす。
ところがもひとつ質問が増えました(w
複数カラムがある場合に、それぞれのカラムにテキストを入れますよね?
カラムが3つある状態のListViewコントロールにAddで追加しても、
1つ目のカラムにしかテキストを入れれないんですが。
2つ目、3つ目のカラムに入れるテキストはどう指定すればいいんでしょう?
0339>>321
NGNGSMTPサーバのIPをリモートIPに設定。リモートポートは25。
winsock1.connect で接続
winsock1.Winsock1.SendData "〜〜〜" で直接データを送れる
あと向こうからの反応の感知は DataArrivalだ。
感知したらgetdataで向こうからの反応を取得できる。
あとはTELNETでのSMTPの構文をVBでやらせりゃいいだけ。
その際送り元を"mail from: [email protected]"ってやれば[email protected]からになる。
ソースじゃないがこれで書けるだろ>>321
これ以上は俺説明する気ないぞ
0340即レス
NGNGListItemのAddの戻り値であるListItemオブジェクトのSubItemを使う。
MSDN見れ。サンプルコードが確かあった。
0341訂正
NGNG↓
winsock1.senddata "〜〜〜"
(ちなみに〜〜〜はSMTPに送るデータだ。
わかってるだろうがデータの最後にChr(10)を付けないとだめだぞ)
0342デフォルトの名無しさん
NGNGありが玉金(私、いちお女、ね)
0343おながいします
NGNG質問します。分かる方教えてください。ここを見ろでも結構です。
当方EXCEL2000です。
TEST01.XLS(名称は都度変わります)のマクロから
TEST02.XLS(名称は都度変わります)内部のB1:C2のセルを
TEST01.XLSのA1:B2のセルにコピーして
TEST02.XLSを自動で閉じたいのですが?
−−−−−−−−−−−−−−−−−−
Sub a()
Dim boCheck As Boolean
boCheck = Application.Dialogs(xlDialogOpen).Show
If boCheck = False Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
End If
Range("B1:C2").Copy
ActiveWorkbook.Close SaveChanges:=False
Range("A1:B2").Select
ActiveSheet.Paste
End Sub
−−−−−−−−−−−−−−−−−−−−−
上記マクロでは、A1:B2になにも入りません。
ご存知の方、助けてください。 おながいします。
0344デフォルトの名無しさん
NGNGフォームに貼り付けてもフリップしまくりで見えないんですけど・・・。
誰か教えてください。
0345デフォルトの名無しさん
NGNGSub a()
Dim boCheck As Boolean
Dim filename As String
boCheck = Application.Dialogs(xlDialogOpen).Show
filename = ActiveWorkbook.Name
If boCheck = False Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
Else
ActiveSheet.Range("B1:C2").Copy
Workbooks(filename).Close SaveChanges:=False
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
End If
End Sub
0346343
NGNGありがとうございます。大変助かりました。
もう1つだけお願いします。
B1:C2と書きましたが、コピーエリアはもっと大きくて
>Workbooks(filename).Close SaveChanges:=False
ここで、下記メッセージが出ます。
クリップボードに大きなデータがあります。他で参照する場合はYESを
参照しない場合はNOを選択してください。
↑
これを出なくすることは出来ますか?
0347デフォルトの名無しさん
NGNGElseの次の行に
Application.DisplayAlerts = False
を追加
0348343,346
NGNGありがとうございます。解決しました。助かりました。
0349デフォルトの名無しさん
NGNGそんな感じでVBAでセルからアドレスを取得してメールを送る方法を
教えてよー
0350デフォルトの名無しさん
NGNG態度を
改めろ
0351デフォルトの名無しさん
NGNG教えてほしけりゃ、>>343のように自分がやったことを示せ。
お前のような奴に教える奴はいねぇよ。
初心者未満には何を教えても理解できないだろうし。
0352343,346,348
NGNG大変申し訳ありませんが、分かる方お願いします。
Sub Macro6()
Dim boCheck As Boolean
Dim filename As String
boCheck = Application.Dialogs(xlDialogOpen).Show
filename = ActiveWorkbook.Name
If boCheck = False Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
Else
Application.DisplayAlerts = False
ActiveSheet.Range("BF6:BI105").Select
Application.CutCopyMode = False
Selection.Copy
Workbooks(filename).Close SaveChanges:=False
ActiveSheet.Range("BF6:BI105").Select
ActiveSheet.Paste
End If
End Sub
上記を実行すると、クリップボード内でセルの値をまとめてしまいます。
例:BF6セル BG6セル BH6セル BI6セル
100 200 300 400
が 元のBOOKにペーストすると BF6セルにまとめて『100・200・300・400』
となります。対処法ご存知の方よろしくお願いします。
0353デフォルトの名無しさん
NGNGDeclare Function SendMail Lib "bsmtp" _
(szServer As String, szTo As String, _
szFrom As String, szSubject As String, szBody As String, szFile As String) As String
Sub MySendMail()
Dim ret As String
Dim szLogfile As String
Dim szServer As String, szTo As String, szFrom As String
Dim szSubject As String, szBody As String, szFile As String
Dim flBody
Dim i As Long
Dim fs, a As Object
On Error GoTo Err_Handler
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\log.txt", True)
' メール送信結果を記録するファイル名を指定します。
szServer = Worksheets("本文").Cells(11, 1) ' SMTPサーバ名
'
With Worksheets("宛名及び置換文字")
If .Cells(1, 3) & .Cells(1, 7) = "" Then
MsgBox "タイトルとFROMを入力してください"
GoTo Exit_sub
Else
0354デフォルトの名無しさん
NGNGvbOKCancel, "確認") = vbCancel Then
GoTo Exit_sub
End If
End If
szSubject = .Cells(1, 3) ' 件名
szFrom = .Cells(1, 7) ' 送信元
i = 3
Do While .Cells(i, 1) <> "END"
If .Cells(i, 1) = "○" Then
szTo = .Cells(i, 5) ' 宛先
szBody = .Cells(i, 6) ' 本文
szFile = ""
ret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)
If Len(ret) <> 0 Then
a.WriteLine (Date & " " & Time & " " & ret & "−" & szTo & "−" & szBody)
'MsgBox "エラー" & ret & "−" & .Cells(i, 4)
.Cells(i, 1) = "エラー"
Else
.Cells(i, 1) = "完了"
End If
End If
i = i + 1
Loop
End With
' パラメータエラーのときは、戻り値にエラーメッセージが返ります。
MsgBox "終了"
GoTo Exit_sub
Err_Handler:
MsgBox Err.Description, vbCritical, "Error"
GoTo Exit_sub
Exit_sub:
a.Close
End Sub
・・・で解決できたもんね!!ぶひーだ
0355デフォルトの名無しさん
NGNGINIファイルにInteger型の数値を書き込みたいのですが、
もし、INIファイルがないorその項目がないとき
””
が戻ってくるので、エラーが出てしまいます。これを回避する方法はないのでしょうか?
よろしくお願いします。
0356343,346,348,352
NGNGマクロを実行するBOOKがEXCEL形式なら問題なしのようですが
今回必要なのは、CSVを開いてそこからの実行だと
>>352のようになるようです。
もし分かる方いらっしゃればお願いします。
0357355
NGNG0358デフォルトの名無しさん
NGNGWritePrivateProfileString使ってんの?
項目が無ければ作るはずだよ。
0359355
NGNGレスありがとうございます。
すいません、書き間違えました
本来はWritePrivateProfileStringでかきこんで
GetPrivateProfileStringで、読みにいってるんですが、
何かの拍子にINIファイルがなくなったり、項目がなくなったりしたとき
GetPrivateProfileStringで読みに行くと
””
が返ってきますよね?そうなると、型が合わないとエラーが出てしまいます。
何かよい回避する方法はないでしょうか?
0360359
NGNGIntegerで宣言すると
””
が戻ってきたとき、型が合いません
何かいい方法はないでしょうか?おねがいします。
0361デフォルトの名無しさん
NGNGGetPrivateProfileIntがあるよ。
0362_
NGNGGetPrivateProfileStringでも、
項目が見つからない(≒ファイルが見つからない)
ときに返す値を決めれたはずだけど・・・?
GetPrivateProfileString(section,key,"",value,length,file)
とあったら、""のトコじゃないの?それを"0"とかにすればOKかと・・・。
0363361
NGNGそれダメじゃない?宣言はString型なんだから。
0364_
NGNG普通ならメニューから参照設定で「Microsoft Internet Controls」
にチェックを入れてOKすると、WebBrowserコントロールがリストに入りますよね
なんか今やったら追加されてないんだよ・・・。
何度かチェックを外したり入れたりしてみたけど変化なし・・・。
バグなのか?対処方法とかないのかねぇ
0371343,346,348,352,356
NGNGPERSONAL.XLSのマクロから
TEST02.XLS(名称は都度変わります)内部のBA6:BI105のセルを
TEST01.XLSのBA6のセルにコピーして
TEST02.XLSを自動で閉じたいのですが?
Sub Macro1()
Dim strFileName As String
Dim wbTargetBook As Workbook
Dim mySheet As Worksheet
Set mySheet = ActiveSheet
strFileName = Application.GetOpenFilename()
If strFileName = "False" Then
MsgBox "キャンセルが選択されました。処理を中止します。"
Exit Sub
End If
Set wbTargetBook = Workbooks.Open(strFileName)
With wbTargetBook
.Worksheets(1).Range("BF6:BI105").Copy
mySheet.Range("BF6").PasteSpecial xlValues
Application.CutCopyMode = False
.Close SaveChanges:=False
End With
End Sub
先ほどコードの記述は変わりましたが、上記で解決しました。
お騒がせしました。
0372240
NGNG>>241サン
ありがとうです。両方Falseになっていました。
Trueの動きはかなり嫌なので、他に方策はありませんでしょうか。
0373デフォルトの名無しさん
NGNGDataArrivalが意味をなす単位ごとに発生
しないことを留意しておいてくださいです。
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGXxxx_Timer()の中でMsgBoxを使っているんですが、MsgBoxで入力が無いままだと、タイマー割り込み
が溜まるって事あるんですかね?
なんかデバッグで動かしているとそんな感じになるんですが・・・
タイマー処理の頭で、タイマー.Enabled=Falseにして抜ける時にTrueにするのが
普通??
0378デフォルトの名無しさん
NGNGVBのMsgBoxは出ている間しっかり処理がとまる。これ仕様(だった筈)。
0379デフォルトの名無しさん
NGNGVB.NETプログラミング第7章「データアクセス」p280のコード
(ASP.NET)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objCustomerOrders As New CustomerOrders()
Dim MyDataSet As DataSet
MyDataSet = objCustomerOrders.FillPurchaseOrdersDataSet()
DataGrid1.DataSource = MyDataSet
' 明示的にコントロールとデータを結合するために必要
DataGrid1.DataBind()
End Sub
を実行して、Button1を押すと、
'/WebADO1' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
IListSource に、データ ソースがありません。
例外の詳細: System.Web.HttpException: IListSource に、データ ソースがありません。
ってなって、
DataGrid1.DataBind()
がエラーになります。ダウンロードしたコードそのままなんだけど?
よろしくお願いします。
0380初心者のつもり
NGNGタブをコードから移動させることはできますか?
どうやればいいのか調べてもわからないんです・・・。
0381デフォルトの名無しさん
NGNG.NETは漏れにはわかりません!!
0382デフォルトの名無しさん
NGNGMsgBoxを表示している間はタイマーカウントされません。
>>379
コードがあってもデータがないというオチだったりして…
>>380
tabs(index)のselectedプロパティをtrueにする。
TabStrip1.Tabs(index).Selected = True
で、index番目のタブが選択されるよ。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGデスクトップにある***.txtをテキストボックスに表示するの?
0385デフォルトの名無しさん
NGNGAPIビューアが見つかりません。
そもそも\Microsoft Visual Studio\Commonの下に\Toolsというフォルダが
無いのですが、ラーニングエディションではAPIビューアは使えないと
いう事なのでしょうか?
閲覧できる過去ログやヘルプを見ましたが該当する記事が見つかりませんでした。
どなたか分かる方がいらっしゃいましたらお願いします。
0386仕様書無しさん
NGNGLearningには付属していません。
>閲覧できる過去ログやヘルプを見ましたが該当する記事が見つかりませんでした
英語は読めますか?国内だけじゃだめだよ。
0388383
NGNGそうなんです。
お願いします。
0389即レス
NGNG目的のパス調べてOpen,Getとか使う。
0390デフォルトの名無しさん
NGNG自作ソフトのバージョン情報を追加のフォームモジュールから行ったのですが、
バージョン情報を出している間メインフォームをロックしたいんですけどどうす
ればいいでしょうか?
メインフォーム側をロックしただけではALT+TABでアプリを切り替えたときなど
バージョン情報がメインの後ろ側に回ってしまい操作できなくなってしまいます。
0391390
NGNGメインフォーム側をロックしただけでは
↓
メインフォーム側の EnableをFalseにしただけでは
0394393
NGNG0395390
NGNG即レスサンクス
これでおkですわ
0396デフォルトの名無しさん
NGNGVB5.0 ってWINXP で使えますか?
0398デフォルトの名無しさん
NGNGInetコントロールでWeb上のファイルを取得できると聞き、
調べてやってみたんですが、TextBoxに取得した文字列データ(htmlのソース)
を入れると改行されてません。横にめちゃくちゃ長くなっています。
そしてその文字列をコピーして、メモ帳に貼り付けてもそのままなんですが、
秀丸に貼り付けるとちゃんと改行されてきれいに表示されます。
どういうことなのでしょうか?またどのように対処すればいいですかね?
0399即レス
NGNG改行の文字コードの違い。
ReplaceでVbCrLfに変換すれ。
0400デフォルトの名無しさん
NGNG漢字コードは、シフトJIS決め打ちでいいのかな。
JISやEUCのサイトもあるから、バイト配列で受信して、
変換するのが汎用的。その時、改行コードも変換。
0401398
NGNG早速のレスありがとうございます!
やってみた所
Text1.Text = Replace(Text1.Text, Chr(10), vbCrLf)
で見事に改行されました。
0402377
NGNG>>378さん、>>382さん
レスありがとうございました。
って事はタイマー処理を抜ける時、タイマー.Enabled=Falseにしてしまえば、
それ以降、タイマー処理は起動されないんですよね<くどいって?(^^;汗
0403デフォルトの名無しさん
NGNGテストコード書いて試してみれば?
手元にVBが無いんだったらスマン
0404デフォルトの名無しさん
NGNGクライアント側を終了させると再接続ができなくなってしまいます。
鯖側ではクライアントのクローズを感知したあと、
再びListen状態で待機しています。
再起動時のクライアント側でConnectしているんですが、
鯖はConnectionRequestイベントが発生していないみたいです。
何が原因何でしょう。
Win2KSP2、VB6SP5です
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNGCでの経験でローカル変数は宣言直後はゴミが入っているような
感覚があっていままでずっと初期化コードを書いていたんですが…。
0408デフォルトの名無しさん
NGNG変数宣言時に以下にのように初期化される。
関数名も暗黙の変数のようなものなので同様。
Byte CByte(0)
Boolean False
Integer 0%
Long 0&
Single 0!
Double 0#
Currency 0@
Date #1899/12/30 00:00:00#
Object Nothing
String vbNullString
String * n String$(n, 0)
Variant Empty
0409デフォルトの名無しさん
NGNG1つの小さい画像をいくつも並べて表示ってできますか?
いろいろ検索しても出てこなかったのですが…
0410デフォルトの名無しさん
NGNGVBは自動的に初期化されるよ。
0411デフォルトの名無しさん
NGNGストレージモードでグリッドにデータを表示していますが、
行番号を識別する方法がわかりません。
rowプロパティでは画面に表示されている行しかカウント
してくれません。
グリッド全ての行を識別する方法を知ってる方は是非
教えて頂きたいのですが。よろしくお願い致します。
ちなみにVB6(SP5),Win98SE。
0412デフォルトの名無しさん
NGNGVBのSampleコードにそのものずばりがあるよ。
0413デフォルトの名無しさん
NGNG実は同じテキストをたくさん必要とするようなコードを書いているんですが
デザイン時ではなくて実行時にオブジェクトを作成できると聞き、調べた所
SetとかNewとかいうのを使うとわかったのですが、具体的なやり方が・・・。
Text1を100個複製するにはどうやればいいのでしょうか?
具体的なソースを一部書いていただけると幸いなのですが。
欲を張りすぎですね(w やり方だけでもお願いします。
0414デフォルトの名無しさん
NGNGコントロール配列でHELP見よ
この場合
最低ひとつ 用意しないとだめ
例 text1(0)を 貼っておく
コントロールは コンテナが必要なため(単独で存在できない)
何か(まあ フォームか)に貼りつけておかないダメだからだ
あとは 自分でどぞ
HELPにあるぞ
0415407
NGNG勉強になりました。ありがとうございました。
0416がいしゅつ?
NGNG3万件越えたら、じきにパンクするぞ。
それと、せっかくSQL文使ってるのに、SELECTだけかよ。
なんでSUMとかBETWEENとかじゃなくてVBのコードでやってんだよ。
0417デフォルトの名無しさん
NGNG谷尻本は読んでないのでわからんが、
入門者向けだから、mdb使ってるんでない?
>3万件越えたら、じきにパンクするぞ。
だったら、この心配はいるまい。
>なんでSUMとかBETWEENとかじゃなくてVBのコードでやってんだよ。
VBの説明がメインなんではないだろうか。
だから、いちいち説明するのが面倒なんじゃないかな。
とか言ってみるテスト。
0418416
NGNGMDBだけど、ADOでSQL文投げてる。変数名もmySQL。
Public cn As ADODB.Connection
Set rsAll = New ADODB.RecordSet
rsAll.Open mySQL, cn
いちおうソートはSQLでやってた。
合計のやり方は、こんな感じ。
Do Until rsAll.EOF
If (rsAll!日付 >= DateValue(ss) And _
(rsAll!日付 <= DateValue(es) Then
nyuuko = nyuuko + rsAll!入庫数
End If
rsAll.MoveNext
Loop
0419VBA歴3ヶ月。。
NGNGVBAで非表示のセルを対象外にするには、どうしたら良いでしょうか?
朝までにツール作らないとならないので、よろしくお願いします。
0420デフォルトの名無しさん
NGNGSQL側にロジックを偏重させるのは嫌いだが、
rs!FieldName
なんて書き方してる時点で糞本決定。
rs.Fields("FieldName").Value と書け。
0421デフォルトの名無しさん
NGNGSUMとかBETWEENはSQLでやるべきだろ。パフォーマンスにかかわる。
mdbレベルならたいして変わらんかもしれんが。
0422デフォルトの名無しさん
NGNG自作しようと思うがどうだ。
ソース上げてもいい?
0424デフォルトの名無しさん
NGNGどなた様かリストボックスに羅列したものから選んだ任意の数字を
整数値として抜き出す方法を教えてくださいませ(泣)
しくしく。
0425デフォルトの名無しさん
NGNGclng(List1.List(List1.ListIndex))
0426デフォルトの名無しさん
NGNGDim lngRet As Long
Dim fdRead As fd_set
Dim tv As timeval
'タイムアウトの設定
With tv
.tv_sec = TimeOut \ 1000
.tv_usec = TimeOut Mod 1000
End With
'fd_set構造体
With fdRead
.fd_count = 1
.fd_array(0) = m_hSocket
End With
lngRet = apiSelect(0, fdRead, ByVal 0&, ByVal 0&, tv)
m_hErrNo = apiWSAGetLastError()
If lngRet = tcsocSocketError Then
Err.Raise tcsocErrSelect, , mcstrErrSelect
End If
SelectForRead = lngRet
End Function
Public Function SelectForWrite(ByVal TimeOut As Long) As Long
Dim lngRet As Long
Dim fdWrite As fd_set
Dim tv As timeval
'タイムアウトの設定
With tv
.tv_sec = TimeOut \ 1000
.tv_usec = TimeOut Mod 1000
End With
'fd_set構造体
With fdWrite
.fd_count = 1
.fd_array(0) = m_hSocket
End With
lngRet = apiSelect(0, ByVal 0&, fdWrite, ByVal 0&, tv)
m_hErrNo = apiWSAGetLastError()
If lngRet = tcsocSocketError Then
Err.Raise tcsocErrSelect, , mcstrErrSelect
End If
SelectForWrite = lngRet
End Function
0427デフォルトの名無しさん
NGNGCastLongToInt = CInt("&H" & Right$(Hex$(lngVal), 4))
End Function
Public Function Send(ByRef bBuff() As Byte, _
Optional ByVal Start As Long = 0, _
Optional ByVal BytesToSend As Long = -1) As Long
'BytesToSendの確認
If (BytesToSend < -1) Or (UBound(bBuff) - Start + 1 < BytesToSend) Then
'負の値が指定されている、またはデータ長より大きい
Err.Raise tcsocErrInvalidDataLen, , mcstrErrInvalidDataLen
ElseIf BytesToSend = -1 Then
'省略時はデータ長に等しくする
BytesToSend = UBound(bBuff) - Start + 1
End If
Send = apiSend(m_hSocket, bBuff(Start), BytesToSend, 0)
m_hErrNo = apiWSAGetLastError()
End Function
Public Function Recv(ByRef bBuff() As Byte, _
Optional ByVal Start As Long = 0, _
Optional ByVal BytesToRead As Long = -1) As Long
'BytesToReadの確認
If (BytesToRead < -1) Or (UBound(bBuff) - Start + 1 < BytesToRead) Then
'負の値が指定されている、またはデータ長より大きい
Err.Raise tcsocErrInvalidDataLen, , mcstrErrInvalidDataLen
ElseIf BytesToRead = -1 Then
'省略時はバッファ長に等しくする
BytesToRead = UBound(bBuff) - Start + 1
End If
Recv = apiRecv(m_hSocket, bBuff(Start), BytesToRead, 0)
m_hErrNo = apiWSAGetLastError()
End Function
'非同期接続
Public Function IOCTL(ByVal cmd As TcsocIOCtlCommand, ByVal arg As Long) As Long
Dim lngRet As Long
lngRet = apiIoctlsocket(m_hSocket, cmd, arg)
m_hErrNo = apiWSAGetLastError()
If lngRet Then
Err.Raise tcsocErrIoctlSocket, , mcstrErrIoctlSocket
End If
IOCTL = arg
End Function
0428デフォルトの名無しさん
NGNGm_hSocket = apiSocket(AF_INET, SocketType, 0)
m_hErrNo = apiWSAGetLastError()
If m_hSocket = INVALID_SOCKET Then
Err.Raise tcsocErrSocket, , mcstrErrSocket
End If
End Sub
Public Sub CloseSocket()
Dim lngRet As Long
lngRet = apiCloseSocket(m_hSocket)
m_hErrNo = apiWSAGetLastError()
If lngRet Then
Err.Raise tcsocErrCloseSocket, , mcstrErrCloseSocket
Else
'ソケットが閉じられたことを明示的に示すため、
'ハンドルにINVALID_SOCKETを代入しておく。
m_hSocket = INVALID_SOCKET
End If
End Sub
Public Function Connect(ByVal RemoteAddr As String, _
ByVal RemotePort As Long) As Long
Dim lngIPAddr As Long
Dim sain As sockaddr_in
'ドット区切りアドレス文字列を4バイト整数に変換する。
lngIPAddr = apiInet_addr(RemoteAddr)
If lngIPAddr = INADDR_NONE Then
'アドレス文字列として認識できなかったので、ホスト名として解決を試みる。
lngIPAddr = InternalGetHostByName(RemoteAddr)
If lngIPAddr = INADDR_NONE Then
Err.Raise tcsocErrGetHostByName, , mcstrErrGetHostByName
End If
End If
'ポート番号の確認
If RemotePort < 1 Or RemotePort > 65535 Then
Err.Raise tcsocErrInvalidPortNo, , mcstrErrInvalidPortNo
End If
'パラメータをセットしてconnectを呼び出す
With sain
.sin_family = AF_INET
.sin_port = apiHtons(CastLongToInt(RemotePort))
.sin_addr = lngIPAddr
End With
Connect = apiConnect(m_hSocket, sain, LenB(sain))
m_hErrNo = apiWSAGetLastError()
End Function
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGDim lngAddr As Long
Dim lpChar As Long
Dim strBuff As String
Dim nBuff As Long
'gethostbynameの呼び出し
lngAddr = InternalGetHostByName(HostName)
If lngAddr = INADDR_NONE Then
Err.Raise tcsocErrGetHostByName, , mcstrErrGetHostByName
End If
'戻り値はネットワークバイトオーダーの4バイト整数なので、
'ドット区切り文字列に変換する
lpChar = apiInet_nta(lngAddr)
'lpCharが指す文字列の文字数を調べ、バッファを確保してコピー
nBuff = apiLstrlen(lpChar)
strBuff = String$(nBuff, vbNullChar)
apiMoveMemory ByVal strBuff, ByVal lpChar, nBuff
GetHostByName = strBuff
End Function
Private Function InternalGetHostByName(HostName As String) As Long
Dim lphe As Long
Dim he As HOSTENT
Dim lngAddr As Long
Dim pAddr As Long
lphe = apiGethostbyname(HostName)
m_hErrNo = apiWSAGetLastError()
If lphe Then
apiMoveMemory he, ByVal lphe, LenB(he)
apiMoveMemory pAddr, ByVal he.h_addr_list, 4
apiMoveMemory lngAddr, ByVal pAddr, 4
InternalGetHostByName = lngAddr
Else
InternalGetHostByName = INADDR_NONE
End If
End Function
0431デフォルトの名無しさん
NGNG'プロパティに値を代入するときに、代入式の左辺で使用します。
'Syntax: X.test = 5
m_hErrNo = vData
End Property
Public Property Get hErrNo() As Long
hErrNo = m_hErrNo
End Property
Private Sub Class_Initialize()
Dim lngRet As Long
Dim wsad As WSAData
'Winsock初期化:&H101でバージョン1.1を要求する。
lngRet = apiWSAStartup(&H101, wsad)
m_hErrNo = apiWSAGetLastError()
If lngRet <> 0 Then
Err.Raise tcsocErrWSAStartup, , mcstrErrWSAStartup
End If
'ソケットハンドル初期値
m_hSocket = INVALID_SOCKET
End Sub
Private Sub Class_Terminate()
'Winsock終了処理
apiWSACleanup
End Sub
Public Function GetHostByAddr(ByVal strIPAddr As String) As String
Dim lngIPAddr As Long
Dim he As HOSTENT
Dim lphe As Long
Dim strBuff As String
Dim nBuff As Long
'ドット区切りアドレス文字列を4バイト整数に変換する。
lngIPAddr = apiInet_addr(strIPAddr)
If lngIPAddr = INADDR_NONE Then
Err.Raise tcsocErrInvalidIPAddr, , mcstrErrInvalidIPAddr
End If
'gethostbyaddrの呼び出し
lphe = apiGethostbyaddr(lngIPAddr, 4, AF_INET)
m_hErrNo = apiWSAGetLastError()
If lphe = 0 Then
Err.Raise tcsocErrGetHostByAddr, , mcstrErrGetHostByAddr
End If
'戻り値のポインタが指す先の中身をheにコピーする。
apiMoveMemory he, ByVal lphe, LenB(he)
'h_nameの文字数を調べ、バッファを確保してコピー
nBuff = apiLstrlen(he.h_name)
strBuff = String$(nBuff, vbNullChar)
apiMoveMemory ByVal strBuff, ByVal he.h_name, nBuff
GetHostByAddr = strBuff
End Function
0432デフォルトの名無しさん
NGNGPrivate Declare Function apiWSAStartup Lib "wsock32.dll" Alias "WSAStartup" ( _
ByVal wVersionRequired As Integer, ByRef lpWSAData As WSAData) As Long
Private Declare Function apiWSACleanup _
Lib "wsock32.dll" Alias "WSACleanup" () As Long
Private Declare Function apiWSAGetLastError _
Lib "wsock32.dll" Alias "WSAGetLastError" () As Long
Private Declare Function apiGethostbyaddr Lib "wsock32.dll" Alias "gethostbyaddr" ( _
ByRef addr As Long, ByVal lenAddr As Long, ByVal typeAddr As Long) As Long
Private Declare Function apiInet_addr Lib "wsock32.dll" Alias "inet_addr" ( _
ByVal cp As String) As Long
Private Declare Sub apiMoveMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef lpDest As Any, ByRef lpSrc As Any, ByVal nBytes As Long)
Private Declare Function apiLstrlen Lib "kernel32" Alias "lstrlenA" ( _
ByVal lpString As Any) As Long
Private Declare Function apiGethostbyname Lib "wsock32.dll" Alias "gethostbyname" ( _
ByVal Name As String) As Long
Private Declare Function apiInet_nta Lib "wsock32.dll" Alias "inet_ntoa" ( _
ByVal inaddr As Long) As Long
Private Declare Function apiSocket Lib "wsock32.dll" Alias "socket" ( _
ByVal af As Long, ByVal soctype As Long, ByVal protocol As Long) As Long
Private Declare Function apiCloseSocket Lib "wsock32.dll" Alias "closesocket" ( _
ByVal s As Long) As Long
Private Declare Function apiConnect Lib "wsock32.dll" Alias _
"connect" (ByVal s As Long, ByRef Name As sockaddr_in, ByVal namelen As Long) As Long
Private Declare Function apiSend Lib "wsock32.dll" Alias "send" ( _
ByVal s As Long, ByRef buf As Any, ByVal lenbuff As Long, ByVal flags As Long) As Long
Private Declare Function apiRecv Lib "wsock32.dll" Alias "recv" ( _
ByVal s As Long, ByRef buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Declare Function apiHtonl Lib "wsock32.dll" Alias "htonl" ( _
ByVal hostlong As Long) As Long
Private Declare Function apiHtons Lib "wsock32.dll" Alias "htons" ( _
ByVal hostshort As Integer) As Integer
Private Declare Function apiIoctlsocket Lib "wsock32.dll" Alias "ioctlsocket" ( _
ByVal s As Long, ByVal cmd As Long, ByRef argp As Long) As Long
Private Declare Function apiSelect Lib "wsock32" Alias "select" (ByVal nfds As Long, _
ByRef readfds As Any, ByRef writefds As Any, ByRef exceptfds As Any, _
ByRef TimeOut As timeval) As Long
Private mcstrErrSelect As String
Private m_hSocket As Long
Private m_hErrNo As String
0433デフォルトの名無しさん
NGNGConst mcstrErrWSAStartup = "WSAStartupが失敗しました。"
Const mcstrErrSocket = "socketが失敗しました。"
Const mcstrErrCloseSocket = "closesocketが失敗しました。"
Const mcstrErrGetHostByAddr = "gethostbyaddrが失敗しました。"
Const mcstrErrGetHostByName = "gethostbynameが失敗しました。"
Const mcstrErrIoctlSocket = "ioctlsocketが失敗しました。"
'ユーザー入力値のエラー文字列
Const mcstrErrInvalidIPAddr = "アドレスが不正です。"
Const mcstrErrInvalidPortNo = "ポート番号が不正です。"
Const mcstrErrInvalidDataLen = "データ長が不正です。"
'GetHostByAddr用(API)定数
Const AF_INET = 2
'WSAData構造体用定数
Const WSADESCRIPTION_LEN = 256
Const WSASYS_STATUS_LEN = 128
'その他定数
Const INADDR_NONE = &HFFFFFFFF
'_/_/_/_/_/_/_/_/_/_/_/_/構造体宣言部_/_/_/_/_/_/_/_/_/_/_/_/
Private Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription(WSADESCRIPTION_LEN) As Byte
szSystemStatus(WSASYS_STATUS_LEN) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo(1) As Integer
End Type
Private Type sockaddr_in
sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero(7) As Byte
End Type
Private Type HOSTENT
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type
Private Type fd_set
fd_count As Long
fd_array(FD_SETSIZE - 1) As Long
End Type
Private Type timeval
tv_sec As Long
tv_usec As Long
End Type
0434デフォルトの名無しさん
NGNGtcsocFIONREAD = &H4004667F
tcsocFIONBIO = &H8004667E
End Enum
Private Const FD_SETSIZE = 64
Public Enum TcsocErrorConstants
'SOCKET_ERROR定数
tcsocSocketError = -1
'Winsock API呼び出しのエラー
tcsocErrWSAStartup = vbObjectError + 1000
tcsocErrSocket
tcsocErrCloseSocket
tcsocErrIoctlSocket
tcsocErrGetHostByAddr
tcsocErrGetHostByName
tcsocErrSelect
'ユーザー入力値のエラー
tcsocErrInvalidIPAddr = vbObjectError + 1100
tcsocErrInvalidPortNo
tcsocErrInvalidDataLen
End Enum
Public Enum TcsocSocketTypeConstants
tcsocSockStream = 1
tcsocSockDgram = 2
End Enum
Const INVALID_SOCKET = Not 0&
0435デフォルトの名無しさん
NGNGPublic Enum TcsocWSAErrorConstants
tcsocWSABASEERR = 10000
tcsocWSAEINTR = tcsocWSABASEERR + 4
tcsocWSAEBADF = tcsocWSABASEERR + 9
tcsocWSAEACCES = tcsocWSABASEERR + 13
tcsocWSAEFAULT = tcsocWSABASEERR + 14
tcsocWSAEINVAL = tcsocWSABASEERR + 22
tcsocWSAEMFILE = tcsocWSABASEERR + 24
tcsocWSAEWOULDBLOCK = tcsocWSABASEERR + 35
tcsocWSAEINPROGRESS = tcsocWSABASEERR + 36
tcsocWSAEALREADY = tcsocWSABASEERR + 37
tcsocWSAENOTSOCK = tcsocWSABASEERR + 38
tcsocWSAEDESTADDRREQ = tcsocWSABASEERR + 39
tcsocWSAEMSGSIZE = tcsocWSABASEERR + 40
tcsocWSAEPROTOTYPE = tcsocWSABASEERR + 41
tcsocWSAENOPROTOOPT = tcsocWSABASEERR + 42
tcsocWSAEPROTONOSUPPORT = tcsocWSABASEERR + 43
tcsocWSAESOCKTNOSUPPORT = tcsocWSABASEERR + 44
tcsocWSAEOPNOTSUPP = tcsocWSABASEERR + 45
tcsocWSAEPFNOSUPPORT = tcsocWSABASEERR + 46
tcsocWSAEAFNOSUPPORT = tcsocWSABASEERR + 47
tcsocWSAEADDRINUSE = tcsocWSABASEERR + 48
tcsocWSAEADDRNOTAVAIL = tcsocWSABASEERR + 49
tcsocWSAENETDOWN = tcsocWSABASEERR + 50
tcsocWSAENETUNREACH = tcsocWSABASEERR + 51
tcsocWSAENETRESET = tcsocWSABASEERR + 52
tcsocWSAECONNABORTED = tcsocWSABASEERR + 53
tcsocWSAECONNRESET = tcsocWSABASEERR + 54
tcsocWSAENOBUFS = tcsocWSABASEERR + 55
tcsocWSAEISCONN = tcsocWSABASEERR + 56
tcsocWSAENOTCONN = tcsocWSABASEERR + 57
tcsocWSAESHUTDOWN = tcsocWSABASEERR + 58
tcsocWSAETOOMANYREFS = tcsocWSABASEERR + 59
tcsocWSAETIMEDOUT = tcsocWSABASEERR + 60
tcsocWSAECONNREFUSED = tcsocWSABASEERR + 61
tcsocWSAELOOP = tcsocWSABASEERR + 62
tcsocWSAENAMETOOLONG = tcsocWSABASEERR + 63
tcsocWSAEHOSTDOWN = tcsocWSABASEERR + 64
tcsocWSAEHOSTUNREACH = tcsocWSABASEERR + 65
tcsocWSAENOTEMPTY = tcsocWSABASEERR + 66
tcsocWSAEPROCLIM = tcsocWSABASEERR + 67
tcsocWSAEUSERS = tcsocWSABASEERR + 68
tcsocWSAEDQUOT = tcsocWSABASEERR + 69
tcsocWSAESTALE = tcsocWSABASEERR + 70
tcsocWSAEREMOTE = tcsocWSABASEERR + 71
tcsocWSAEDISCON = tcsocWSABASEERR + 101
tcsocWSASYSNOTREADY = tcsocWSABASEERR + 91
tcsocWSAVERNOTSUPPORTED = tcsocWSABASEERR + 92
tcsocWSANOTINITIALISED = tcsocWSABASEERR + 93
tcsocWSAHOST_NOT_FOUND = tcsocWSABASEERR + 1001
tcsocWSATRY_AGAIN = tcsocWSABASEERR + 1002
tcsocWSANO_RECOVERY = tcsocWSABASEERR + 1003
tcsocWSANO_DATA = tcsocWSABASEERR + 1004
End Enum
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGMAPIを使ってメールの配信をするソフトなんですが、
サーバーではじかれてエラーになります。
原因としてどんな事が考えられますか?
0439424
NGNG感謝至極であります(感涙)
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG使い方分からん。
全部コピペして、新規クラスに貼り付けた。
エラーが出るので、Private Const FD_SETSIZE = 64 の行を
一番上のほうに持ってきた。
とりあえずGetHostNameは動いた。
HTTPでページをとってきてDebug.Printするサンプルか何か欲しいなあ。
どういう順番でメソッドを呼び出すかだけでも。
0442424
NGNG0443デフォルトの名無しさん
NGNGインテリマウスのホイールが効くのにエディタ画面で効かないのですが
何か設定があるのでしょうか?
隣の机の人がエディタでも使えるので一寸気になりまして・・・・
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGTabキーでフォーカスがオプションボタンに飛んでしまいます。
これを回避する方法を教えてください。
0446デフォルトの名無しさん
NGNGIntelliPoint入れてるかい?
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGIntelliMouseなら動くよ。
ただし、ドライバのバージョンは3.1以上な。
0449デフォルトの名無しさん
NGNGほんとだね。TabStopがTrueになるようなので、
Option1.Value = True
Option1.TabStop = False
でどうかな。うちではOKだったYO!
>>447
OK.
0450445
NGNGフォームロード時にコードで指定するということでしょうか。
最初はOKでしたが、一回オプションボタンをクリックすると
元に戻ってしまいます・・。
なんとなく解決したので報告を。
テキストボックスを一個置いて、
Private Sub Text1_GotFocus()
Option1.TabStop = False
End Sub
と書くと大丈夫っぽいです。
0451hebogrammer
NGNGVB 6.0 を用いてボタンをクリックしたら Windows2000 の PC を
ShutDown (完全にパソコンが停止した状態)にしたいのですが、
どうすればよろしいでしょうか?
市販の本の ShutDown プログラム (ExitWindowsEx を使うやつ)
を試したのですが、パソコンに電源が残ったままログイン画面に
なっています。
何か解決方法はありますでしょうか?よろしくお願い致します。
0452447
NGNGVBPファイルの関連付けは、やっぱり後から入れた方になっちゃうんですか?
0453デフォルトの名無しさん
NGNG.NETの拡張子はsln だから大丈夫。
つーか C# にしる。
0454デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGExitWindowsExだけですむのは、Win9x系。
NT系の場合、InitiateSystemShutdown を使う。
特権を要求して、自プロセスに設定する必要がある。
0457デフォルトの名無しさん
NGNG一般的には出来ない。
インターネット・トランスファー・コントロールでダウンロードするしかない。
0458デフォルトの名無しさん
NGNGVB6で
文字列のHTMLソースをHTMLドキュメントとしてWebBrowserオブジェクト(IEでもいいけど)
に表示させる手が見つかりません
Winsockで鯖からHTMLソースを取得はできましたが、これをブラウズするには?
一度 HTMLファイルで保存して このファイルを 読むしかないでしょうか?
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGプロジェクト−コンポーネントからMicrosoft Internet Controlsをえらんで
WebBrowserコントロールを貼り付けてあとは適当に。
0461458
NGNG英語のMSDNの手引きでは
すでにあるHTMLドキュメントに対して
WebBrowser1.Document.body.innerHTML = "タグなど"
などで あとづけ書き込みは 分かります
空白(about:blank)を作っておいて BODY内だけは できますが…
そうではなくて HTMLソース文字列から HTMLドキュメントを 純粋に作る法
これを IEなどに 表示させるには?
MSHTML 読んでも… VCじゃないと だめなの?
0462458
NGNGWebBrowserコントロールは わかりますが…
セキュリティに徹したものを 目指すために
まず HTMLを解析するために ソースで取得してるのです
0463デフォルトの名無しさん
NGNG何をしたいのかわからん。
>HTMLソース文字列から HTMLドキュメントを 純粋に作る法
HTMLソース=HTMLドキュメントだぞ。
>これを IEなどに 表示させるには?
そのままOpenするだけ。
それとも、最終的にはIEで表示するが、その前に
危険なタグをフィルタ処理したいとか?
0464458
NGNGそうです
<IMG>や<OBJECT>など チェックしてから IEのブラウズ機能を使いたのです
例えば s="<HTML><HEAD></HEAD><BODY>テスト</BODY></HTML>"
と VBで文字列で持っていて これをそのままブラウズしたいわけです
WenBrowserのプロパティDocumentは 読み出しONLYで
そもそも このDocumentオブジェクトをソースから どうやって定義すんだろ?
いやん 英語がイタイ もう イヤン
0465デフォルトの名無しさん
NGNG0466458
NGNGできたら報告する
気長に待ってテネ
0467デフォルトの名無しさん
NGNGその手のツールがどうやってるか考えればわかると思うけど、
プロクシになって、HTMLを加工してからIEに渡してる。
0468デフォルトの名無しさん
NGNG串!
なりほど
せっかくWinsock使ってるんだから
串になればいいのか
そか WebBrowserのナビゲートで ダミー串通せばいいのか
その手も 考えてみます!!
0469デフォルトの名無しさん
NGNG英語MSDN行ってきます(古い記事もあたってみよ)
0471デフォルトの名無しさん
NGNGどこかにありますか?VB仕様書工房だと.vbpが拡張子のやつじゃないと
駄目みたいなので・・・
0472デフォルトの名無しさん
NGNG加工したHTMLドキュメントを適当なフォルダに保存して、
WebBrowser1.Navigate "file:///" & ファイルへのフルパス
じゃダメなの?
>>471
聞いたことない
0473デフォルトの名無しさん
NGNG思っています。
そこで、メールヘッダのFromに表示されるメールアドレスと、Return-Pathのアドレスを違うものにして
送りたくて、四苦八苦しています。
また参考になるページとかあったら教えて下さい。宜しくお願いします。
0474デフォルトの名無しさん
NGNG0475_
NGNGタスクバーに常駐させるプログラムを書いたのです
これを終了するときに、
ちゃんとサブクラス化を終了して正常にEndさせてるのですが
タスクバーにアイコンが残ったままになってます。
でもそれにカーソルを合わせるとパッと消えます。
プログラムが終了した時点でアイコンをタスクバーから消せないのでしょうか?
よろしくお願いしますです。
0476デフォルトの名無しさん
NGNG消してから終わらないとだめだよ
0477デフォルトの名無しさん
NGNGEnd
0478473
NGNGSPAMになるんですか!?
用は宛先不明のメールを送信者とは別のアドレスに送りたいんです。
いろいろ調べてたら、SMTPの仕様とかで出来ないとかってどっかで読んだんですが...
0479デフォルトの名無しさん
NGNGのに、
>メールヘッダのFromに表示されるメールアドレスと、Return-Pathのアドレスを違うものに
する必要あるのか?
0480デフォルトの名無しさん
NGNGちゃんと、Form_QueryUnloadで
Shell_NotifyIcon(NIM_DELETE, NoftyIconData)
を呼ばないと駄目よ。
>>478
ふつう、その技はSPAMに使う。i-mode宛にFromとToを同じにして送るとか。
自力だけで解決できないなら、あきらめてこの質問はしない方がいい。
0481473
NGNGエラーメールを任意のReturm-Pathに返したいということなんですが...
VBSじゃ無理かなぁ
0482473
NGNG0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG言い方が悪いw
その場合は「宛先不明で戻ってきたメール」といわなきゃ。
0485475
NGNGまず常駐させて、終了させる前にちゃんと
Dim NotifyIcon As NOTIFYICONDATA
'タスクトレイのアイコンを削除------------------------
With NotifyIcon
.cbSize = LenB(NotifyIcon)
.hwnd = Me.hwnd
.uID = 10
End With
Call Shell_NotifyIcon(NIM_DELETE, NotifyIcon)
DoEvents
'-------------------------------------------------
'サブクラス化の終了
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, lpOldWndProc)
とやっています。483さんのようにForm_QueryUnloadで。
それで確かに常駐は解除されてますし、ちゃんと終了されてるんです。
なのにアイコンが消えてない・・・
終了されてるのにアイコンが残る っていう現象です
(ウィンドウは既に消されているのに表示だけ残るあれみたいなものかと)
0486デフォルトの名無しさん
NGNGEndで終了させちゃったりしちゃったりしてたりしないの?
0487デフォルトの名無しさん
NGNGRFC 見れ。Return-Path は、送信側でつけるもんじゃねーぞ、ヴァカ。
> エラーメールを任意のReturm-Pathに返したいということなんですが...
そんなもん SPAM か ML しか必要ねーだろうが。何したいのか、書けるもんな
ら書いてみ。
0488デフォルトの名無しさん
NGNGShutdown させたいのですが、やり方が分かりません (ToT)
誰か教えてください
0489デフォルトの名無しさん
NGNGExitWindowsExつかったら?
0490デフォルトの名無しさん
NGNG既知の問題。
解決法は、Formにフォーカスを当てるんだったかな。ああ、ど忘れ。
FormのVisibleをTrueにするか、HideのままNormalSizeに戻すかしてみたら?
0491デフォルトの名無しさん
NGNGせっかくヒント出したのに、それはないだろう。
検索しろよ。ヒットするから。
0492デフォルトの名無しさん
NGNG>>456 見てねーのか ?
0493デフォルトの名無しさん
NGNGフォローどうも。
再質問を明記しなかった488が悪いんだけど。
WinNT系では、特権の取得は避けて通れないから、きっちり押さえないと。
と思ったら、今度はV友で質問か。
人のヒントを自分で調べたかのように書いて。
0494デフォルトの名無しさん
NGNGこれだけは読んどけって言う教本ありますか?
Javaしか扱ったことない。
0495デフォルトの名無しさん
NGNGPicture1.Enabled = True
Picture2.Enabled = True
Picture3.Enabled = True
〜
Picture9.Enabled = True
のPicture.Enabledを一つにまとめるにはどうしたら良いですか?
0496デフォルトの名無しさん
NGNGコントロール配列にしる!!
0497デフォルトの名無しさん
NGNGすいません、何すかそれ
0498デフォルトの名無しさん
NGNGヘルプ見ろ! コントロール配列は基本だから。
もっと簡単にしたかったら、コンテナ使う。1行ですむ。
0499デフォルトの名無しさん
NGNG何でも聞くんじゃなくて、MSDNのヘルプ見ろよ…。
for i=0 to 9
Picture(i).Enabled = True
next
Indexプロパティに値を設定すればできる。
0500デフォルトの名無しさん
NGNG変数の配列すらわからなかったら、
コントロール配列を理解するのはむずかしいかも。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGで自機のIPを表示させようと思ったのですが、二枚イーサネットカードを差していて、いらん方のIP(192.168.0.*)が表示されてしまいます。どうやったらもう一枚のカードに割り当ててあるIPを取得できるでしょう
0503デフォルトの名無しさん
NGNGイーサを逆に挿す。PCIスロットの若いほうが取得されるから。
ってことじゃない?
それなら、どういうネットワークなのか書かないと。
IPHLPAPI.DLL を叩けば、IPテーブルは取得できるけど。
ざっと100行ぐらい。
0504デフォルトの名無しさん
NGNG新規作成画面で"ActiveX DLL"と"ActiveX Document DLL"という2種類があるのですが、
VC++で言うところの"Win32 Dynamic-Link Library"にあたるのはどちらでしょうか?
0505デフォルトの名無しさん
NGNGVBでは"いわゆるDLL"は作れないと聞いたが。
0507デフォルトの名無しさん
NGNG確かVBは中間コードまでしか書き出さないんじゃなかった?
Javaみたいに。
だからだと思う。
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGそれはVB4まで。
VB5とVB6はネイティブコードを吐く。
0510hebogrammer
NGNG一応いろいろと検索してみて、作ってみたりしました。
しかし、InitiateSystemShutdown の第1引数にどのように
設定してよいのやら分からず困ってます。(-_-;)
0511デフォルトの名無しさん
NGNG0512ぷっちんぷりん
NGNGTreeViewの背景色を自由に変えたいのですが
プロパティが無いです。API調べてみたけどわかりません。
優秀なみなさん、教えて下さい。
0513デフォルトの名無しさん
NGNG色じゃなくて画像だけど…
http://www.users.gr.jp/ml/archive/vb/VB24.asp
サブクラス化するしかないのでは?
0514デフォルトの名無しさん
NGNGうそつくでねぇ。VBからはDLLもActiveX DLLも使える。普通のDLLが作れないだけだよ。
VCからVBのDLLが使いたければActiveX DLLを使うようにコーディングすればいいだけ。
0515まとれす ◆mato/KTI
NGNG>>504
無理だ
>>507
関係ない
>>510
つか、ExitWindowsEx()の方がいいぞ
>>513
ツリービューのメッセージでできなければ、>>513のいうとおりサブクラス化だな
>>514
>>508の言いたいのは、そういうことじゃないと思うぞ
0516デフォルトの名無しさん
NGNGおお、まとれすだ
0517デフォルトの名無しさん
NGNGPrivate Sub Form_Load()
WinsockServer.Close
WinsockServer.LocalPort = 1229 'ポートを設定
WinsockServer.Listen
End Sub
Private Sub WinsockServer_ConnectionRequest(ByVal requestID As Long)
WinsockServer.Close '接続を閉じて新しい接続を受け付ける
WinsockServer.Accept requestID 'requestIDをパラメータにしてAcceptメソッドを呼び出す
lblServerStatus.Caption = "Be connected from " & WinsockServer.RemoteHostIP '接続が成功したことを知らせます
WinsockServer.SendData "hello, again"
End Sub
としたのですが、個のサーバが 192.168.0.255 のブロードキャストアドレスに
反応しません。どうしてですか?
0518517
NGNG[Buz]
Foo=Bar
みたいな形でやりたいんですけど、定石のアルゴリズムってありますか?
っていうか、もしかして関数かコンポーネントありますか?
0519デフォルトの名無しさん
NGNG1行読み込んではsplit…
0520デフォルトの名無しさん
NGNGAPI使うだ。
標準モジュールにしたものや
クラスモジュールにしたものが
あちこちで配布されてるだ。
おらWinsockは使ったこと無いだ。きっと他のエライ人が教えてくれるだ。
0521517
NGNGCじゃなくPerlでもないので面倒くさそうですけど。
0522デフォルトの名無しさん
NGNGUDPとTCPの区別はついていますか?
0523デフォルトの名無しさん
NGNGGetPrivateProfileStringAPIをしらないのですか?
0524デフォルトの名無しさん
NGNGおら田舎もんでしらねがったけど、都会のネットワークじゃ
ブロードキャストアドレスに投げたパケットをTCPで拾えるんだべが?
同一ネット内に複数サーバがあったらどないすんだべがな。
0525ディフォルトの名無しさそ
NGNG大量にいくつもの処理を平行して行いたい事がありまして、
調べているとマルチスレッド、ということにたどり着きました。
さらにそれについて調べるとAddressOf、CreateThread API等がキーのようです
質問はここからなのですが
・VB6環境でマルチスレッドは実現可能でしょうか?
・それによって本当に高速化するのでしょうか?
・具体的にマルチスレッドとはどのようなものなのでしょうか?
多分ヘタレなこと聞いてると思うんですがお願いいたします〜。
0526デフォルトの名無しさん
NGNGありがとうございます。一応、それでしのげました。
後一つ、ダイアルアップ接続でつないだ時のIPはどうやって拾うのでしょうか?
どなたか教えてください。
0527デフォルトの名無しさん
NGNG高速化されるかどうかは、具体的にどういう処理をするか、
何が理由で遅くなっているか、による。
ムダな空ループとかは論外として、CPUが100%占有される処理なら、
わざわざマルチスレッドにするだけの意味はない。
高速なハードに替えるとか、専用鯖を立てて分散処理するほうが確実。
0528デフォルトの名無しさん
NGNGテキストなんかに1レコードずつ表示するのはできるのですが
グリッドにまとめて表示するというのができません。
つまり、上のテキストで現在のレコードの表示に対して、
下のグリッドそのレコードが選択反転させたいのですが、教えてください
よろしければ詳しく乗ってるページとかってないですか?
0529デフォルトの名無しさん
NGNGグローバルIPの取得ね。
VBから利用できるDLLがベクターとかでも公開されてるけど、
ipconfig の結果をファイルにリダイレクトするほうが
2枚挿しの時は確実かも。
0530まとれす ◆mato/KTI
NGNG基本的に、マルチスレッドにしたからといって速くなるわけじゃない。
SMPなら別だが。
んで、VBからだが、はっきり言ってお勧めできない。まだ、マルチ
プロセスのほうがいいだろう。
>>528
ミドルウェアは何だ?
ADO、DAOならデータコントロールを使って、グリッドのDataSourceに
設定するだけだ
反転云々については、Bookmarkを使えばできる
0531デフォルトの名無しさん
NGNGフレキシブルグリッドを使っているのですか?
それとも別のコントロール?
ああいう感じのリスト表示をさせたいのですが。
0532親子
NGNG親ウインドウに設定したいんですけど、何か良い方法ありませんか?
WIN32APIの“setparent”を使うかと思ったんですけど、MSDNを
見ると、親ウインドウと子ウインドウは、同一アプリケーション上に
なければならないと書いてありました。
無理ですかね・・・
0533まとれす ◆mato/KTI
NGNG今、手元にOutlookがないので確認できないけど、リストビューとかじゃないのか?
>>532
確かに、MSDNにはそのように書かれている。が、可能だったりする。どんな不具合
がでるのかはわからんが
0534デフォルトの名無しさん
NGNGOutlookはVBで作られていない。
Spy++ では、キャプション: "表" クラス: SUPERGRID
0535デフォルトの名無しさん
NGNGまとれすだ (´∀` )
0536デフォルトの名無しさん
NGNGDim OBJ_EX As Object 'エクセルファイルを操作する為の変数
〜〜省略〜〜
OBJ_EX.Workbooks.Add "シート名"
と書くとき、OBJ_EX. 以下のプロパティーを
Intellisenseテクノロジーで楽するってことは可能なのでしょうか?。
今までずっと手打ちしてたのですが、ふと思いまして。
みなさん、どうされてますか?。
ご回答、よろしくお願いします。
0537デフォルトの名無しさん
NGNG作りたいのですがそんなAPIないでしょうか。
0538デフォルトの名無しさん
NGNGあったらイベントを発生させるみたいなことは自分でも書けるレベルだと思います
0539525
NGNG質問が抽象的だった為、高速化するかどうかの判断が難しくなってしまったようで
申し訳ありませんです。
実は作っているのはWebを自動巡回してページのリストを取得する、
みたいなものなのです。トップページを指定するだけでその下にあるページを
"<A href="などをキーに検索してリスト出力します。
これは現時点で完成できているのですが、とても処理が遅いのです。
多分私の見解はInetでOpenURLをしてそのアドレスのソースを取得するときに、
OpenURLするのに大体1秒ほどはかかってしまうのです。
順にページのソースを取得しようとする時などは
for Nextでコントロール配列のTextに順にソースを入れていくので
ひとつひとつの処理に1秒かかってしまうのです。
これをInet(0)〜Inet(10)まで同時に読み込ませるようなことができれば
解決するのです。Inetで時間がかかるのはネット接続のための遅延であって
CPUなどの負荷はとても小さいものです。なので同時進行にできないか、と。
めちゃくちゃ長文で迷惑かけますが何かいい方法ありませんでしょうか?
0540デフォルトの名無しさん
NGNGDim oExcelApp As Excel.Application
Dim oExcelWorkBook As Excel.Workbook
Dim oExcelWorkSheet As Excel.Worksheet
Dim oExcelRange As Excel.Range
開発時はアーリーバインディングで、納品時はレイトバインディングにしたりする。
0541536
NGNGおおおっ!。
そういうことができるとは、気づかなかったです。
ノーミソのシワが一個できた気分です。ありがとうございます。
引き続き、ノーミソ・シワのできるアイデアを募らせて頂きたいです。
よろしくおねがいします。
0542デフォルトの名無しさん
NGNGMSサイトにあるよ。
http://support.microsoft.com/default.aspx?scid=kb;JA;q178491
VBのバージョンによって、ひょっとしたら挙動が変わるかも。
VB6ではノードの背景色が個々に設定できたと思うので。
>>539
別の言語にする。
従来のVBでマルチスレッドはお勧めできないから。
(というよりできないと思ってもらってよいかと)
VB.NETならOK。.NET移行ならお勧めかもね。
0543537
NGNGBSMTPってDLLはわかったのですが
問題はPOPでなくIMAPでもやれるようにしたいのです。
0544デフォルトの名無しさん
NGNGsocketとかconnectとかsendとかrecvを組み合わせていけばできると思うYO!
0545デフォルトの名無しさん
NGNGそういう用途なら、InetつかわないでWinSock使って
http手書きで通信した方がいいと思うよ。
WinSockコントロールならノンブロッキング型なので、
コントロール配列でも作って、片っ端からconnectさせて
イベント来たらSendDataしてGetDataして内容読んで、
ってやれば効率良くできるかと。
0546デフォルトの名無しさん
NGNGpop3ですけどこんな感じじゃないですか?
Option Explicit
Dim gCommand As String
Dim gPassword As String
Private Sub Command1_Click()
If Winsock1.SocketHandle > 0 Then
Winsock1.Close
End If
gPassword = Text1.Text
Winsock1.RemoteHost = "pop.mai.server.ne.jp"
Winsock1.RemotePort = 110
Winsock1.LocalPort = 0
gCommand = "connect"
Winsock1.Connect
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Winsock1.GetData strData, vbString
Select Case gCommand
Case "connect"
Winsock1.SendData "USER yamada" & vbCrLf
gCommand = "user"
Case "user"
Winsock1.SendData "PASS " & gPassword & vbCrLf
gCommand = "pass"
Case "pass"
Winsock1.SendData "STAT" & vbCrLf
gCommand = "stat"
Case "stat"
Winsock1.SendData "LIST" & vbCrLf
gCommand = "list"
Case "list"
Text2.Text = strData
Winsock1.SendData "QUIT" & vbCrLf
gCommand = "quit"
End Select
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox Number & ":" & Description
End Sub
0547まとれす ◆mato/KTI
NGNGこれからもよろしくな
>>536
無理だ。なので、開発時だけ、参照設定してアーリーバインドし、
配布時に例とバインドに切り替えろ
>>537
SMTPはCDOみたいなオブジェクトが用意されているんだが、POP
はないな。自作するしかない
>>539
それなら、非同期で複数処理すればいいだけだ
0548デフォルトの名無しさん
NGNGすみません。ちょっと質問なのですが、>>536 の件で配布時にレイトバインドに
するメリットって何なんですか?
まともな質問じゃないんで sage ときます。
0551537
NGNG>>546,547
まともなレスばかりで感動です。
winsockについて詳しく書かれたサイト、書籍でよいもの
ないでしょうか?
pop3ではできてもIMAPでやるのはどうしたら・・・。
英語サイトでもよいのでお願いします。
0552デフォルトの名無しさん
NGNGひとつお願いしたいのはVBでWinsockを使うは結構簡単だと思います。
でも、それでOKというわけではないのがネットワークプログラミングだと思います。
取り急ぎ作らないといけないものができたらじっくり勉強してもらいたいと思います。
0554デフォルトの名無しさん
NGNGCOBOLerは全角命です
0555デフォルトの名無しさん
NGNG例えば、Excelのオブジェクトを使うのに参照設定してしまうと
そのバージョン限定になってしまう。
レイトバインドなら、Excel.Applicationという名前で実行時に、
使うオブジェクトが決まるので、Excel97、2000、2002のどれが
実行環境にあってもOK。
もちろん、その場合は、使用できるオブジェクトやらメソッドやらは
Excel97、2000、2002のどれでも使えて同じ結果になるものでなければならんけどね。
0556まとれす ◆mato/KTI
NGNGSokectについて知りたいのか、WinSockについて知りたいのか、WinSockコントロール
について知りたいのか、IMAP4について知りたいのか、そもそもやりたいことはなんだ?
単に実現したい、ということなら、迷わずコンポーネントを勧めとくぞ
で、勉強したいってことなら、まず、RFCを読むことだなIMAP4だとRFC2060か?
0557525=539
NGNG>>547ことまとれすさん
お答えありがとうございます。
ところが私の知識不足と腐ったカニ味噌のせいでどちらもうまく理解できません・・・
545の方のwinsockはwinsockでメール送信とかやったことあるのでそれ自体は使えるのですが
HTTPのコマンドをまったく知らないので困ってます。
547での「非同期で複数処理」ってのはもう全然わかりませんです(汗
具体的にどういうことなんだろ。
もうちっと勉強してきますか・・・。
0558まとれす ◆mato/KTI
NGNG0559まとれす ◆mato/KTI
NGNG要するに、OpenUrlして、結果が戻ってくるまで待機してるわけだ。これを同期という。
そうじゃなくて、待機せずにすぐ次の処理を行うことのが非同期だ。
ヘルプが手元にないので、Inetコントロールでできるのかはわからんが、少なくとも
WinInet API のInternetOpenで、INTERNET_FLAG_ASYNC を指定してやれば、非同期
処理ができるようになるぞ
0561デフォルトの名無しさん
NGNG許さん。
0562デフォルトの名無しさん
NGNGInetコントロールなら、OpenUrlではなく、Executeメソッドを使う。
Executeメソッドでサーバに接続し、GET要求を出すのだけど、
結果は受け取らず、Executeメソッドは実行後すぐ終了してしまう。
これが非同期って意味ね。
んで、データは、Inet_StateChangedイベント内で受け取る。
State=12になったら、GetChunkメソッドを呼び出してデータを
受け取る。
この2つの操作の間には別のことをしていてもいいし、別のInet
コントロールを使って別のサイトを取得していてもいい。
(Inetコントロールを、コントロール配列にして使うのが普通。)
0563525=539=557
NGNG最初>>559の方法で作っていて、やっと同期しないで動くのを確認して
よかった〜できた〜と思ってまたここ開いてみたら562さんの書き込みが(w
ちなみにそっちでもできました。
なんだか一石二鳥的な感じに2つも知識をつけさせてもらいました。
本当にどうもでした。
0564536
NGNG私の疑問に答えていただきありがとうございます。
一度、試してみます。
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568即レス
NGNG串規制うんぬんはクリアーしたんかな。
>565
頑張れw
0569デフォルトの名無しさん
NGNGおお、即レスだ
0570デフォルトの名無しさん
NGNGトリップ検索のプログラム(「見知らぬ国のトリッパー(w」 みたいな)
を作りたいんですが、perlによるcryptってのはVBでどう再現すればいいんでしょう?
トリップの仕組みはわかってるのでそれがわかれば作れるんですが・・・。
どなたかわかる方いませんでしょうか?
0571デフォルトの名無しさん
NGNGこの中のひとつにJSVBrowser OLE Control moduleというActiveXコントロールがあります
MSのWebBrowserコントロールと同じようなものです。
JustViewというジャストシステム製のブラウザで使われていますが
ActiveXなのでVBでも扱えるようです。
でも、プロパティやメソッドの使い方が一切ない…
ナビゲートの仕方すらわからん(笑
パラメーターの意味が…不明なの
本家ジャストシステム見てもナイ!
検索してもナイ!
機能的には最新のMSHTMLにはおよばないんだけど
シンプルなところがいいのです(一応JavaScriptサポートしてる)
さて
資料はあるのか????教えて君でした。
教えてだけじゃ悪いので
http://support.microsoft.com/default.aspx?scid=kb;JA;q183235
WebBrowserの動作改造法 サンプル以外にやるにはVCが必要
これで、ActiveX、Script、Javaや画像のON,OFF、読み込まないなどIEにではなく
WebBrowserのみに設定できる
これをMSはあまり、教えたくないらし(藁
じゃあ お願いします
0572デフォルトの名無しさん
NGNGCrypt完全互換をVBで実現することはできないことは確かだけど、
はたしてActivePerlとか使っても出来るかどうか…。
総当たり方式で、トリップ解析するつもり?
>571
同じく探したことあるけど、見つかりませんでした。
JS製品自体持ってる人が少ないし、どんなバグがひそんでるか
わからないし…。
まあ、そんなこと言ったら、VBについてるサードパーティの
ActiveXだってバグあるけど。
0573570
NGNGん〜やはり無理ですかね。
Googleで検索して出ないあたりから諦めかけてたんですけどね・・・。
だとすると今ある総当りトリップ検索は言語何でつくられてるんだろ。
やっぱCとかC++になるのかな。とにかくサンクスですた。
0574デフォルトの名無しさん
NGNG使おうとするとエラーになるように出来て無いかい?
JustSystemのも機能が使えるかは保証できないと思うけど…
0576デフォルトの名無しさん
NGNGたしかにJSのはエラーが出た。
>575
JS限定で、動作サンプルきぼん。
0577まとれす ◆mato/KTI
NGNGうるせーバカ
>>568
こちらこそよろしくな。串規制は結局駄目だったんで、ID買った。海外鯖
だからしょうがないな
>>570
Crypt API じゃ駄目か?
>>571
本家に聞いてみて、駄目なら無理じゃないか?開発ツールとしては配布
しない、ってスタンスのところも多いぞ。で、どうしても、というなら、オブジェクト
ブラウザでメソッド、プロパティを見て、適当にやるしかない
ハックしてるような気分になって、結構楽しいぞ。おれも、いくつかのActiveX
コントロールを試してみたことがある
>>574
つか、きちんと使ってあるなら、開発環境で開いたときに、「開発ライセンスが
ねーぞゴルァ」とかって出すと思うんだけどな
0578デフォルトの名無しさん
NGNGインストールしようとすると、いきなり一般保護エラーが出るんですよ。
もちろん、常駐物は全部切ってあります。
インストーラにバグがあるような事は聞いていたんですけど、
このエラーを回避する方法ありませんか?
使用OSは、WindowsXP Professionalです。
0579まとれす ◆mato/KTI
NGNGEnterprise版だと、何の問題もなくインストールできたぞ。互換モード
とか使っても駄目か?
0580デフォルトの名無しさん
NGNGだめれす。
インストーラのバグの原因がわかれば解決できると思うんですが。。。
誰かバグについて情報持ってる人いませんか?
0581デフォルトの名無しさん
NGNG管理者IDを半角英数字にしてる?
0582571
NGNG開発に使うのはできるらしい
ただ配布については記載なし(笑
VBで扱う際のごくわずかな記述がある(笑
VBで扱えない変数型もありますのでそれはあきらめて使わないとの事(笑)
JSVBrowserはオブジェクトブラウザで見ればわかると思うけど、VBで扱えない変数型はほとんどない
でもナビゲートわかんねーw
エラー出すとVBが落ちるんだよね(大汗
資料☆ー欲しー
解明した方がいたら情報あげキボンヌ
JSなんとかのコンポーネントでいっぱいの人 他にもいるでしょ?(笑
0583578
NGNGえーと、管理者IDっていうと、Administrator権限のあるユーザ名のことでしょうか?
それなら、半角英数字になっています。
http://www05.u-page.so-net.ne.jp/gf6/tadaei/diary_bk02.html
には、
「WindowsNT4.0にORACLE8がインストールしてある時に、
ORACLEのサービス(OracleStartORCL)が起動されていないと
Visual Studio6.0のセットアップでアプリケーション・エラーが発生」
と書いてはあるんですけど、OracleStartORCLなんかインストールしてもいないし。。。
0584デフォルトの名無しさん
NGNG違ってたか。
上のOracle云々はEnterprise版で起きそう。
あと、可能性としては、tmpフォルダに日本語を使ってるとか、
インスト先に日本語使ってるとか。
VBで作ったEXEがWinXPにインストできないトラブルは多いけど、
VB自体がインストできないのは、例が少なそう。
Officeがらみかなあ。
0585578
NGNGシステム関連のフォルダには日本語使ってなかったです。
Officeも入れてないんですよね。。。あー。。。
http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fJAPAN%2fsupport%2fkb%2farticles%2fj046%2f7%2f41.asp
コレを試してみてもダメでした。
他にも同じ現象の人がいたのか。。。
http://pc.2ch.net/test/read.cgi/tech/994129650/135
http://pc.2ch.net/test/read.cgi/tech/994129650/684
0586即レス
NGNGHDDからインストールするとエラーになることがあると聞いたことがある。
まあ、違うだろうけどさ。
0587デフォルトの名無しさん
NGNGどうやってWinのソフトウェアを作ればいいのか全然わからない。
Visual C++を使ってなんか作りたいんだけど、
どのように勉強したらいいでしょうか?
お勧め本とかホームページ教えてくれますか?
0588892
NGNG0589デフォルトの名無しさん
NGNGVBで作れ
0590即レス
NGNG一通り勉強したんならあとはやりながら勉強するのがいいと思うぞ。
俺の勉強方法は「とりあえずやってみる」だし。
どの言語でもそうだけど初心者の読む本なんて何読んでも
一緒だと思うんだが。お勧め本とか聞かれてもなあ。
俺の持ってるのは「猫でも・・」と「初心者・・」ぐらいかな。
#スレ違い。
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG難しくはない。ただ、仕様がクソ汚い。
0593デフォルトの名無しさん
NGNG0594即レス
NGNGまあ今更だが、暇なんで。
ここにCryptをCで再現してるソースがあるよ。
http://www.coms.ne.jp/~paz/mktrip/
で、そのufccrypt.dllを使わせてもらったサンプルコードがこれ。
Private Declare Function ufccrypt Lib "ufccrypt.dll" (ByVal Key As String, ByVal Salt As String, ByVal retStr As String) As Long
Function MakeTrip(ByVal Key As String) As String
Dim ret As String * 13
ufccrypt Key, Mid$(Key, 2, 3), ret
MakeTrip = Mid$(ret, 6)
End Function
cそのまんま移植するのはめんどいのでパス。
>591
そうなん?俺専門外なんだけど。
0596デフォルトの名無しさん
NGNG文法の勉強より手本を見ながらいきなり作るのが好きなんです
探したけどC++ばかりでなかなかありません・・・
0597デフォルトの名無しさん
NGNGTextBoxをMultiLineで貼り付けるか、
自分でDCに描画するか好きなほうを選べ。
0598デフォルトの名無しさん
NGNG処理が単純で速いほうがいいですが、
どちらでもかまいません
0599デフォルトの名無しさん
NGNGぇ、いやどっちか選んでやってみろってことだろ、597は。
0600デフォルトの名無しさん
NGNGListViewで新しい項目追加するときに
項目を更新させないようにして
追加するのってどうやるんだっけ?
いちいち画面書き換えるんではチラついてうざいので。
0601即レス
NGNGDoEventsやSleepを入れなかったら追加するたびに更新されないはずだけど。
Refreshとか使ってないよな?
>>596
ちょっと探してみたがホントに無いな。
いまどきテキストエディタってのも流行らんからなあ。
簡単でいいならRichTextBoxを貼りつけりゃ完成だが。
0602570
NGNGトリップ検索ためしに作ってみたのはいいが
1500trip/s・・・(w
これがVBの遅さですか?
それともトリッパーはマルチプロセスとかで高速化してんのか。
0603即レス
NGNG普通のってどれぐらい?
0604570
NGNG「見知らぬ国のトリッパー(w」
は俺がやって16000trip/sぐらい出る。
俺のやつの10倍速と。w
0605即レス
NGNGちょっとやってみるから待ってろ。
0607597
NGNG処理が単純で速いほうか、なるほど茨の道を選ぶのだな。
答えはは既におまえが手にしたC++のソースの中にある。
まずはこれから始めようか。
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (
ByVal dwExStyle As Long,
ByVal lpClassName As String,
ByVal lpWindowName As String,
ByVal dwStyle As Long,
ByVal x As Long,
ByVal y As Long,
ByVal nWidth As Long,
ByVal nHeight As Long,
ByVal hWndParent As Long,
ByVal hMenu As Long,
ByVal hInstance As Long,
lpParam As Long) As Long
0608即レス
NGNGとりあえず前方完全一致の単純検索で試してみた。
結果
見知らぬ国の・・・ 13000 trip/s
文字列操作、比較 9000 trip/s
バイナリ操作、比較 16000 trip/s
参考
ufccryptの呼び出しだけ 18000回/s
っつーわけで、1500trip/sって何なんだ。
まあもちろん部分一致だの正規表現だのに対応すれば
その分遅くなるが、それでも1500trip/sは遅すぎだろうな。
0610600
NGNGDoEventsを入れてやってました・・・
でもDoEventsを抜いてしまうと、Do Loopの中にあるので
固まってしまうんですが?DoEventsをいれずにも固まらないようには
どうやったらできるんでしょう?
0611即レス
NGNG1.Doeventsを呼び出す頻度を少なくする
2.非表示にする
3.サブクラス化
4.ListViewのDCをゲット、オーナーに同じ物描画、ListView非表示。
とか。1がお勧めかな。
>608
別に大したことしてないが・・・
ソースはあとで気が向いたらうpするよ。
0612デフォルトの名無しさん
NGNGListViewコントロールのヘッダをクリックしたら、ListItemオブジ
ェクトを文字順ではなく数字順でソートされるようにしたいんです。
リストビューのSortOrderプロパティを使うと文字列でソートしちゃ
うんです。
こんな感じにソートしたいです。
0
1
2
3
4
…
今こうソートしてる。これはイヤ。
0
10
100
1000
1001
…
.....ヒントでもいいです。
0613
NGNGni = InStr(1, Text1.Text, "に")
If ni > 1 Then
Dim a1 As Byte
a1 = Left(InStr(1, Left(Text1.Text, ni - 1), 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0), 1)
Text1.Text = a1
End If
これだと 0 でますが、どこがちがいますか?
0614デフォルトの名無しさん
NGNGこうするのが一番てっとり早いかと。
0000
0010
0100
1000
1001
0615612
NGNGありがとうございます!助かりました!この方法で行きます!
実は半日くらいWWW検索しまくっちゃって悩んでたんですけど、
全然解決しなくって。。
てっとり早くない方法っていうのは、ソートの関数(?)みたい
なのを自分で作るはめになるんでしょうか?
0616デフォルトの名無しさん
NGNGAPIを使ってそうすることになると思う。<自前ソート関数
詳しくは MSDN あたりで ListView_SortItems というキーワードを調べてみるべし。
0617デフォルトの名無しさん
NGNG>>616で正しいね。
正確にはSendMessage APIのMsgパラメータにLVM_SORTITEMSを指定して
リストビューにメッセージを送信することによってコールバック関数を設定し
そんでコールバック関数の中で独自のソートを作ればok。
0619即レス
NGNGPrivate Declare Function ufccrypt Lib "ufccrypt.dll" (Key As Any, Salt As Any, retByte As Any) As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Function a()
Dim T#, st$, i&, T1#
Dim ret As String * 13
Dim by(20) As Byte
Dim a1&, a2&, C&
Dim s$
Dim Chars(52) As Byte
Dim SearchChar(3) As Long, SearchLen As Long
Dim KeyChar(7) As Byte
For i = 0 To 25
Chars(i) = (Asc("a") + i)
Chars(i + 26) = (Asc("A") + i)
Next
SearchChar(0) = 26
SearchChar(1) = 33
SearchChar(2) = 40
SearchLen = 2
T = timeGetTime
For a1 = 0 To 7311615
For a2 = 0 To 7311615
C = C + 1
0620即レス
NGNGKeyChar(1) = Chars((a1 Mod 140608) \ 2704)
KeyChar(2) = Chars((a1 Mod 2704) \ 52)
KeyChar(3) = Chars(a1 Mod 52)
KeyChar(4) = Chars(a2 \ 140608)
KeyChar(5) = Chars((a2 Mod 140608) \ 2704)
KeyChar(6) = Chars((a2 Mod 2704) \ 52)
KeyChar(7) = Chars(a2 Mod 52)
ufccrypt KeyChar(0), KeyChar(1), by(0)
If by(5) = Chars(SearchChar(0)) Then
If by(6) = Chars(SearchChar(1)) Then
If by(7) = Chars(SearchChar(2)) Then GoTo OK
End If
End If
Next
Next
OK:
DoEvents
Sleep 1
T = timeGetTime - T
s = KeyChar
s = StrConv(s, vbUnicode)
MsgBox (s & vbCrLf & vbCrLf & C & "個を" & Int(T / 10) / 100 & "秒で検索。" & vbCrLf & "1秒あたり" & Int(C / T * 1000) & "個。")
End Function
コマンドボタンくっつけてa呼び出すなり。
#一応最適化全チェックでコンパイルしてちょ。
0621即レス
NGNG0623608
NGNGわーい!
でもやってることがあんま理解できない罠。
俺がやはり如何に低レベルだったかと納得させられるw
今からがんばって解読すんぞ〜。
サンクスコです >>即レスサソ
0625まとれす ◆mato/KTI
NGNGないからいいけどね。しかし、わかるもんなんだなー。
>>607
そこからやるのは無謀だと思うぞ
>>612
すでに回答がでているように、リストビューのソート関数を定義する。
日付型のソートをするサンプルが、KBにあったぞ
>>613
何がしたいんだ?とりあえず、アスキーコードとか、ShiftJISとか、その
辺から確認してみろ
0626デフォルトの名無しさん
NGNG0627即レス
NGNG#PG界の人名なんてぜんぜん知らんもん。
0628まとれす ◆mato/KTI
NGNG別に有名じゃない。たまたま、知り合いが見て、気づいただけだ
>>627
せいぜい、一度くらいはMLとかで見かけたことがある、ってレベルだと
思う。俺も、PG界の人名なんて知らんし
0629デフォルトの名無しさん
NGNGhttp://www1.plala.or.jp/uz/
にハイレベルなサンプルがある。
が、このソースを見ればわかるが、VBでテキストエディタを
作っても苦労は報われないと思われ。
>>613
俺も何がやりたいのかさっぱりだが、
a1 = Left(InStr(1, Left(Text1.Text, ni - 1), 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0), 1)
の中の「1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 0」は
間違ってるだろうな。
s = "123"
For i = 1 To Len(s)
ret = InStr("0123456789", Mid(s,i,1))
If ret = -1 Then Exit For
Next
If i = Len(s)+1 Then Debug.Print "sは数字だよ"
みたいなことがしたいのだろうか・・・とふと思った。
0630Mr.DoEvents
NGNGここはすごい!
http://www.domaindlx.com/e_morcillo/
VBとしてはかなり上級テクばかり
自作のタイプライブラリをVBに提供!!それを使ってVBの機能をUPするテクを公開してる
なんていい人なんだ!
でも英語だよ(・∀・)
あせらないようにな でも厨も、もらっておけ!
0631デフォルトの名無しさん
NGNGめんどくさいのが嫌なら、ColumnHeaderを右寄せにしたうえで、
数字の左に半角スペースを桁数分詰め込むと楽。
Li.SubItems(1)=Format(intHoge,"@@@@") みたいな感じで。
#独自にソートさせた場合、面倒があった気がする…。コードが腐ってた
#だけかもしれんけど。
0632Mr.DoEvents
NGNGDim s As String, a As String, l As Long, r As Long
s = "おまえ厨だろ?"
l = Len(s)
Randomize
Do
r = Int(l * Rnd + 1)
a = InputBox(String(r - 1, "*") + Mid(s, r, 1) + String(l - r, "*"))
If Len(a) = 0 Then Exit Sub
Loop Until s = a
End Sub
いつも聞いてばかりなのでちょっとしたゲームサンプルお礼
上記は標準モジュールのみで動かしてね
Formはいらないよ(解放していいよ)
スタートアップ設定はSub Mainね(プロジェトのプロパティ)
どう?
0633Mr.DoEvents
NGNG文字列あててね
毎回1文字だけ表示されるから 全体の文字列ね
何も入力しないと 即終了〜
当てる回数はまっどうでもいいでしょ
糞コードあげんなって?(´∀` )
0634デフォルトの名無しさん
NGNG0635517
NGNGで、WInsockのプロトコルをUDPに下のですけどエラーが出てしまいます。
サーバを作るときは、
Private Sub Form_Load()
txtRemoteHost = "192.168.0.2"
txtRemotePort = 1229
WinsockServer.Protocol = sckUDPProtocol
Rem WinsockServer.Close
WinsockServer.LocalPort = 1229 'ポートを設定
WinsockServer.Listen
End Sub
じゃだめなんでしょうか?
0636デフォルトの名無しさん
NGNGbindがねーしlistenなぞいらん
0637517
NGNG調べたら解りました。逝ってきます。。。
0638デフォルトの名無しさん
NGNG一気に設定って何だ?RecordSourceとか値リストの事?
0639ショック
NGNG0640634
NGNG0641ショック
NGNG0642デフォルトの名無しさん
NGNG2005年までっしょ
0643デフォルトの名無しさん
NGNGソース希望。
MSサイト覗いてもそんな記述はなかった。
もしかしてネタってやつですか?(w
0645644
NGNG0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648ショック
NGNG0649ショック
NGNG0650643
NGNG>>641
疑ってすまぬ。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGあおりごくろうさん。
くだらんからsageじゃ。
0653デフォルトの名無しさん
NGNGDBコンボって同じ事出来なかったっけ?
未確認sage。
なんだ、2005年まで猶予あるんだ。
ちょっと意外。
0654デフォルトの名無しさん
NGNGどういうものでしょうか。
教えて欲しいんですけど…
0655デフォルトの名無しさん
NGNG強制的にVB自体が落ちてしまいます。
メモリ不足かと思い他のアプリケーションを全て終了したり
再起動したりしたのですが全く同じ現象になってしまいます。
デバッグモードでは動作しています。
他のプログラムではEXEを作成することが可能なので
このプログラム単体の原因があると思うのですが
理由がさっぱりわかりません。
他の人に聞いてもこのような現象は聞いたことがないと言われたのですが、
このようにメッセージも無く落ちる原因になりうるものって何かありますか?
環境はWIN2000でVB6(SP4)、メモリは256Mです。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGマルチ
0658デフォルトの名無しさん
NGNG漏れもなったことあるぞ。VB入れなおせ。SP5入れるのも手か。
0659デフォルトの名無しさん
NGNGとりあえず SP5 でてるから、当ててみれば。
0660デフォルトの名無しさん
NGNG解説サイトなどありましたら教えてください
0661659
NGNG0662655
NGNG「メモリが”READ”になることが出来ませんでした」との
エラーメッセージは出るようになりました。
まぁ、落ちることに変わりはないのですが…
皆さんの助言通りSP5にバージョンアップしてみます。
0663デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666即レス
NGNG0667デフォルトの名無しさん
NGNGそうなの?
0668デフォルトの名無しさん
NGNGいや、初心者スレだし...
>655
Windows2000のSPは...?
0669即レス
NGNGhttp://page.freett.com/hachikou/
一応同名でまじめな技術があるかも、と思って検索したけど
無かったのでこれで間違い無いよ。たぶん。
0670デフォルトの名無しさん
NGNGNSにコネクションを張ってればメールの着信をGETできる、って
教えてもらった(http://pc.2ch.net/test/read.cgi/tech/1006154451/486)
んですけど、全く分かんないんです。
winsockかなんかで繋いどくんですかね?
やり方教えてもらえませんか。よろしくお願いします。
0671612
NGNG>>631
ありがとうございます。 (一括でごめんなさい。)
>>612を解決するためのサンプルコードをここ↓で発見しました。
(callback関数使う方です。)
http://www.mvps.org/vbnet/
....今度からもっと調べて質問します。
0672デフォルトの名無しさん
NGNGKeyChar(0)〜(3)への代入を外側のループに出せば、約4割速度アップ。
SearchChar(0)〜(2)を単純変数に代入すれば、約1割速度アップ。
0673即レス
NGNGま、そういうことだね。
0674まとれす ◆mato/KTI
NGNGできない。どうしてもやりたければ、そういうユーザーコントロールを作るしかないな
>>654
懐かしいネタだな
>>660
CreateFileMapping、MapViewOfFileExあたりをキーに検索してみれば、サンプルが
見つかるぞ
>>670
なんだNSって?メッセンジャーの話か?
0675デフォルトの名無しさん
NGNGどもありがとうございました。
0677デフォルトの名無しさん
NGNGフォーム上に置いたFlashに、ドラッグ&ドロップでFlashムービーを再生させたいのですが、
VB上でドラッグ&ドロップしたときに、ドラッグ&ドロップされたファイル名を取得するにはどうすればいいのでしょうか?
よろしくお願いします。
0678デフォルトの名無しさん
NGNGファイル名は、OLEDragDropイベントプロシージャの
Data.Files に格納される。
0679まとれす ◆mato/KTI
NGNGOLEDragDropイベントで、DataObject引数の中から取得すればいいぞ
0680677
NGNG下記で試してみたのですが、だめでした…。
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Flash1.Movie = Data.Files
End Sub
0681デフォルトの名無しさん
NGNGFlash1.Movie = Data.Files(1)
ちなみに複数選択してドロップすると2,3,4...となる。
0683677
NGNGこれで完成です。
0684 ◆.9BqZfqQ
NGNG0685デフォルトの名無しさん
NGNG大体想像つくけど、まずそのソース示せや。
openったって、書き方ひとつじゃないでしょ?
0686即レス
NGNGLine Input使うか、ReplaceでVbcrlfに変換すれ。
0687 ◆.9BqZfqQ
NGNGOpen strFilePath For Input As #LngFNum
こんな感じで開いてます。
0688デフォルトの名無しさん
NGNGtabスペースの部分が来たら改行させたいのですがどうすればいいですか?
0689即レス
NGNGText1.text=Replace(str,vbtab,vbcrlf)
こういうことか?
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
とありますが、「Declare」「Lib」「gdi32」ってなんですか。読めません。ヘルプもありません。
0691即レス
NGNGDeclare=宣言
Lib=Library(たぶん)
gdi32=DLLの名前
つまり、gdi32っていうライブラリのGetStockObjectっていう
関数を宣言する、ってことだ。
0692688じゃないんだが
NGNGってあったっけ?
0693即レス
NGNG無いよ。
自前で宣言しとく?
0694688じゃないんだが
NGNGReplace(str, ,vbcr)とかになんの?
それとも
Replace(str," ",vbcr)とかになんの?
それとも両方間違いですか?
アフォな質問かもしれんがたまたま気になったからさ・・・
0696即レス
NGNGDeclare〜Libはその名の通り、他のDLLの関数を宣言すること。
Dim〜はVB内での変数の宣言。
スゴく簡単に言うと
通常の宣言=Dim
APIの宣言=Declare〜
かな。
>>694
後者。
Replace(str,chr(32),vbcr)
でもいいよ。
ありがとうございます。おつかれさまです。
0698 ◆.9BqZfqQ
NGNGDo While Not EOF(LngFNum)
Line Input #LngFNum, strRecData
Text1.Text = Text1.Text & Replace(strRecData, Chr(32), vbCrLf)
1行読み込むと改行としたいのですがうまくいきません。
バカ初心者の私に愛の手をお願いします。
0699即レス
NGNG×Text1.Text = Text1.Text & Replace(strRecData, Chr(32), vbCrLf)
○Text1.Text = Text1.Text & strRecData & vbCrLf
・・・まさかとは思うがMultiLine=Trueにしてるよな?
0700デフォルトの名無しさん
NGNGiniFile_Load() でいいですか?
#くだらない質問ですみません。変数名と関数名決めるのがいちばん苦痛なんです。
0701デフォルトの名無しさん
NGNG処理を間違えたりVB自体が落ちたりします。仕様ですか?
SP5はあてててます。
0702デフォルトの名無しさん
NGNGネタですか?
0704デフォルトの名無しさん
NGNGIE終了時にVB側も一緒に終了させる方法はあるでしょうか?
---------------------------
Option Explicit
Dim IE As Object
Private Sub Form_Load()
Set IE = CreateObject("InternetExplorer.application")
IE.FullScreen = False
IE.ToolBar = True
IE.MenuBar = False
Call IE.Navigate("localhost")
IE.Visible = True
Me.Visible = False
End Sub
Private Sub IE_OnQuit()
Unload Me
End Sub
-----------------------------
フォームに上記のように書いたのですが、
_OnQuit()ではだめなのでしょうか。
IEオブジェクトの終了イベントの受け取り方法を
教えてください。
0705デフォルトの名無しさん
NGNGよく言われるのは動詞+名刺やね。
それに拘らずとも、プログラム内で命名方法が統一されていれば問題なし。
よく使う動詞をまとめておけば名前決めも楽〜
0706デフォルトの名無しさん
NGNGTextBoxの文字を中央に揃えたいのですが、どうしたらいいでしょうか?
右揃え、左揃え、中央揃えではなく、
デフォルトでは、上に揃えられてる文字を中央におきたいのですが、
Alignment
か何かのプロパティでいけないのでしょうか?
お願いします。
0708706
NGNGレスありがとうございます。
EM_SETRECTで調べてみました。
うっ、SendMessage()API、、、
これは難しそうだ。水平方向なら簡単なのに、、、
ありがとうございました。
0709デフォルトの名無しさん
NGNGMSDNディスク?
0710デフォルトの名無しさん
NGNG何それ?VBのベーシック言語?MSDNディスク?
0711デフォルトの名無しさん
NGNG俺は、普通 LoadIniFile() だけど、iniFile_xxx() が色々ある
(例: iniFile_Save(), iniFile_Print(), iniFile_Export()...) なら、
そっちの方がいいかも。要は、>>705 の言う通り統一していることが重要だと
思う。
0712デフォルトの名無しさん
NGNGこの2つの違いって何ですか?
0713デフォルトの名無しさん
NGNG>Property Set プロシージャは、オブジェクトへの参照を設定します。
>Property Let プロシージャは、プロパティに値を設定します。
0714712
NGNGすばやい返答ありがとうございます。
MSDN見ても両者の文面が同じにしか見えなかったんで戸惑って
いたんですが、おかげさまでなるほど納得です。
0715デフォルトの名無しさん
NGNG値を代入するのに 2 種類のプロパティ プロシージャがある理由は、
Visual Basic では、オブジェクト参照をオブジェクト変数に代入する
場合、特別な構文を使うためです。
0716
NGNGでは、文字を改行するにはどうしたらいいでしょうか。
Label1.Caption = "a + b = " & Format(wa, "######.######") & " です。" & 改行 _
"a - b = " & Format(sa, "######.######") & " です。"
0717デフォルトの名無しさん
NGNGクイズみたいな文面ですね。(w
vbCrlfとかじゃダメなの?
0718
NGNGそれはどのように使いますか?
0719デフォルトの名無しさん
NGNGMSDN見るなり、全部聞くんじゃなくてやってみろよ…
"あいうえお" & vbCrLf & "かきくけこ"
ありがとうございます。それだけで助かりました。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNGToumeiColor = Picture1.Point(0,0)
とするも戻り値は-1
msdnをみると-1はobjectの外側にあるからだとか。
意味不明です。助けて・・・。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNGPicture1 の ScaleMode, ScaleTop, ScaleLeft, ScaleHeight,
ScaleWidth をチェックしてみなされ。
0726デフォルトの名無しさん
NGNGShortPath, ShortName あたりを調べてみなされ。
0727デフォルトの名無しさん
NGNGありがとうございました。これで解決できそうです。
0728@
NGNGどんなんがありますか?
100 200と指定したらデスクトップ上でのX=100 Y=200の位置の
色を取得できるような・・・。
0729デフォルトの名無しさん
NGNGGetPixelってAPIがあるぞ。
昔それにチャレンジして失敗したが(--;
がんばれ。
0730デフォルトの名無しさん
NGNGWin32API の GetDesktopWindow() と GetPixel() を調べてみなされ。
0731デフォルトの名無しさん
NGNGデスクトップのウィンドウハンドルは取得できてるの?
0732731
NGNG0733723
NGNGScaleTopは0
ScaleLeftも0
ScaleWidthもHeightも適当な値になってます。
原因は・・・。
0734デフォルトの名無しさん
NGNG出来れば初心者さんに聞きたいです。
0736723
NGNGその可能性は無きにしも非ず。
あたってみます!
0737723
NGNGところでPicture1.Point(0,0)
の戻り値が毎回違うのはどうしてでしょう?
色は同じはずなのに。
0738デフォルトの名無しさん
NGNGもしかして BorderStyle が 1 になってね?
0739738
NGNGさっきサンプル書いてみたんだけど問題無く動くんだけどなぁ...何が悪いんだろ。
一面的に、要点が並んでるって感じ。しかし、それほど重要でなさそうなことにも平ぺったくページを割く。
全体的に平ぺったい本。でも文法やプログラミングの枠的なところはしっかりと身につけられると思う。この本からは、
私はあまり元気は得られなかったが、実際に書きながらすると、確かに基礎は身に付く。文法的な知識書、かな。
初めてのプログラミング Visual Basic
http://www.amazon.co.jp/exec/obidos/ASIN/4881357182/ref=sr_aps_d_1_1/250-3193683-3728223
マイクロソフト公式解説書 この辺がいいという人もいる。
http://www.amazon.co.jp/exec/obidos/search-handle-form/ref=br_ncs_/250-3193683-3728223
0741デフォルトの名無しさん
NGNGとんでもございません。
でもやっぱり取得する値は毎回違う・・・。
Versionは8176
違いますか?
0742デフォルトの名無しさん
NGNGうん ? >>723 では、-1 って言ってたような気がするがのう。
どういう値が返って来てるんじゃ ?
ちなみにわしんとこの Version は、VB 6.0 (SP5) だから 8988 じゃ。
環境が心配なら、ピクチャボックスだけをフォームに貼り付けて Point(0,0)
してみて切り分けたらどうじゃ。
0743738
NGNGVersion 8988 だった。
後、漏れがさっき書いたサンプルって、下記の様なものです。
1) Form に PictureBox を一個貼り付ける。
2) PictureBox の MouseMove イベントに下記のコードを追加する。
Debug.Print X,Y,Picture1.Point(X,Y)
参考になるとは思えないけど、とりあえず。
0744734
NGNGサンクスです。参考にします。
失礼ですが、初心者ですか?
0745723
NGNGTextBoxもつけて
FormLoadに
a=Point(0,0)
Text1.text=a
とすると
aは-1です。
バージョンの違いですか・・・。
0746即レス
NGNGPointの前にMe.Showを追加すれ。
PictureBoxのAutoRedraw=Falseの時は
フォームが表示されてない時は
(フォームの上に別のウィンドウがある時も)
どこにも情報がないので範囲外で-1が返ってくる。
0747デフォルトの名無しさん
NGNGVERSION 5.00 ってなってるんですけど、VB 6.0 を使ってても
これで正常ですか?
もしかしたらプロジェクトを 5.0 からアップグレードする時に、
失敗したんじゃないかと心配になったもので・・・。
0749デフォルトの名無しさん
NGNGそれで、正常みたいじゃ。わしんとこも VERSION 5.00 となっておる。
正直しらんかったぞ。で、>>746 の Me.Show は追加したのか ?
プログラミングにそまりきったら、今のプログラムは自分で作るのだし、今のパソコンはまだ生きてませんから、
そまって自分を失ったら、失いっぱなしです。我を失ったら、自然なものは作れません。私は、
自分の基礎(自然)を忘れないようにして、つくっていきたいです。パソコンも生き生きしてほしいですね。
まだ、パソコンも、できたばかりです。自然もそうであるように、これから、少しずつ、
角がとれていくのでしょう。
0751デフォルトの名無しさん
NGNG>>746 の言う通り、フォームが表示されていない段階で Point() を実行したため
じゃろ。心配なら、ボタンを一つくっつけて、そのボタンのクリックイベント中で
やれば良いぞ。わしは、テストの時はいつもそうやってるんじゃよ。
0752723
NGNGおそらくどっかに致命的なものが・・・。
Sub main()
Dim tmp As Long
Load Form1
Form1.Show
'tmp = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 500, 500, 0, 0, SWP_SHOWWINDOW)
Byouga
End Sub
Public Sub Byouga()
'リージョンのハンドル
Dim hRgn As Long
'Combine用リージョンハンドル
Dim hRgnTmp As Long
'CreateRectRgnの戻り値を格納
Dim modoriRgn
'透明にしたい色を指定。
Dim toumeiColor As Long
'For文用
Dim i, j As Integer
Form1.Show
toumeiColor = Form1.Picture1.Point(0, 0)
hRgn = CreateRectRgn(0, 0, 0, 0)
For i = 0 To 31
For j = 0 To 31
If Form1.Picture1.Point(i, j) <> toumeiColor Then
hRgnTmp = CreateRectRgn(i, j, i + 1, j + 1)
modoriRgn = CombineRgn(hRgn, hRgn, hRgnTmp, RGN_OR)
modoriRgn = DeleteObject(hRgnTmp)
End If
Next j
Next i
modoriRgn = SetWindowRgn(Form1.hwnd, hRgn, True)
End Sub
お願いします!
0753デフォルトの名無しさん
NGNGなんか、怖い...。
0754デフォルトの名無しさん
NGNGVB 6.0 でも VERSION 5.00 で正常ですかー。
これで安心しました。さんきゅ〜です。
0756723
NGNGif文のあたりに入る前にbreakかけると
画面に1ドット程度の
ウィンドウが表示されていました。
どこでこんなに小さくされてしまってるの??
0757デフォルトの名無しさん
NGNGVB は、Form1.Show とやってもコードが実行されているとフォームを表
示しないじゃ。だから、Point() の値がおかしくなるんじゃろ。
> Form1.Show
> Byouga
の間に、DoEvents を入れて、フォームを表示させればいいと思うぞ。
あと老婆心ながら言っておくと、Dim i, j As Integer と書くと、i は
Variant になるから、気をつけたほうが良いぞ。
0758即レス
NGNGあー、つまりこのコードは、
「左上のピクセルと違う色を元にリージョンを作成して
ウィンドウに設定する関数」
ということでいいか?
サイズからしてアイコンを読み込むんだろうが。
PictureBoxはScaleMode=VbTwipsなんだよな?
じゃあ
PictureBoxのAutoRedraw=Trueにして、
適当なアイコンをPictureBoxに読み込んで、
×If Form1.Picture1.Point(i, j) <> toumeiColor Then
○If Form1.Picture1.Point(Form1.ScaleX(i, vbPixels, vbTwips), Form1.ScaleY(j, vbPixels, vbTwips)) <> toumeiColor Then
だ。
>>756
分からんな。他のコード見直してみな。
0760デフォルトの名無しさん
NGNGScaleMode を vbPixel にすることを検討してみてはどうじゃ...。
なお、こういう処理をやるならラスタオペレーションを勉強すると良いか
もしれないぞ。
http://homepage1.nifty.com/CavalierLab/lab/win/transparent.html#sprite
0761即レス
NGNGえ?俺?
俺は普段画像処理にVBの標準関数は使わないので、、、
0762723
NGNG先のソースでCombineRgnしたリージョンは
どーーーしてもSetWindowRgnの後表示されないのです。
普通にCreateRectRgnしたやつやCreateEllipticRgn
でつくったやつは表示されるのになぜゆえなのでしょう。
Delphiのソースまで読んだのに・・・。
0763デフォルトの名無しさん
NGNGどうしたらいいですか。
ワケあってVB4なんですけど。
0764デフォルトの名無しさん
NGNGコントロールによくあるToolTipTextプロパティの文字列は改行できませんね?
vbCrLfダメ vbNewLineもダメ もちろん chr(13)やchr(10)もダメ
使えネー そう思わない?
0765即レス
NGNG結構みんな起きてんだね。お疲れ。
>>762
上記のサンプルコードでは俺の所では動いたぞ。
他のところが間違ってるんじゃないか?
君はC系出身みたいだからVBの仕様で
とまどうところが多いかもな。
>>763
SendToフォルダとCommand。
VB4でも使えるだろう。たぶん。
>>764
まじめにTip作りたいならCreateWindowExを使う。
VBらしくFormで代用してもいいな。楽だし。
0767デフォルトの名無しさん
NGNG長いファイル名にしたかったらFindFirstFile APIでも使え。
0768デフォルトの名無しさん
NGNGNT系だとロングファイルネームで取得される。
汎用性を保ちたいなら、そのへんも注意してや。
0769デフォルトの名無しさん
NGNG0770763
NGNGこのへんも参考にしました。
ttp://www.vbvbvb.com/jp/index.html
ttp://homepage2.nifty.com/sak/index.htm
0771デフォルトの名無しさん
NGNG手抜きしたかったら、Dir(strShortPath)ってやってファイル名だけ
ロングファイル名を取得する手もある。パスは取得できないが。
まぁ、1階層ずつ全部DirすりゃOKだけど。
0772723
NGNG起きてすぐCombineRgnの引数を
RGN_ORから2に変えたら難なく成功。
VBだと定数って使えないのでしょうか・・・。
0773デフォルトの名無しさん
NGNG自分で定義しないと使えない。
その場合なら
Const RGN_OK = 2
かな?
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNGCommand1のキャプションを変更する際に、
FN = "Form1"
CN = "Command1"
PN = "Caption"
Value = "TESTCaption"
Forms(FN).Controls(CN).Properties(PN) = Value
というようにはできないもんでしょうか?
0776723
NGNGどこを見て実際の数値を調べればよいのですか?
0777デフォルトの名無しさん
NGNGFormsにForm1が複数あったらどうするんだい?
0778デフォルトの名無しさん
NGNGVCのヘッダーファイル
0779デフォルトの名無しさん
NGNGすばやいレスありがとうございます。
>FormsにForm1が複数あったらどうするんだい?
同じ名前のフォームが造れることは知りませんでした。
コントロールを指定するところまではできるんですが、
プロパティを指定する方法がどうしても見つかりません。
0780デフォルトの名無しさん
NGNGCallByName
0781デフォルトの名無しさん
NGNGありがとうございますぅぅ!!
できました。感謝いたします。
ついでに質問なんですけど、
CallbyNameで任意のプロシージャを起動できますか?
0782781
NGNG0783デフォルトの名無しさん
NGNGちょっと待て、それまで未定義でやってたのかよ。悪いこと言わんから、
全部のソースの頭に Option Explicit 入れろ。(ついでに、ツール(T) -
オプション(O)... の編集タブの「変数の宣言を強制する(R)」のチェックを
入れとけ。
>>773, >>776
API ビューアー使え。でもたまに間違えてるらしいから、MSDN で確認した方が
良い。(つーか、あんまり VB で API 使うな。)
0784デフォルトの名無しさん
NGNG確かなリファレンス本ぐらい買えよ
情報の信頼さを考えれば決して高くない
0786デフォルトの名無しさん
NGNGナニカ問題があったんですか。
ビットマップ転送なんかどーしても頼らんとムチャかと。
0787デフォルトの名無しさん
NGNG厨には危険な割には速度は大して出ない
DirectDraw7を使え
DirectX 7 for Visual Basic Type Libraryを参照すること
Option Explicit
Dim ObjDX7 As New DirectX7, ObjDD7 As DirectDraw7
Dim PrDDSurf7 As DirectDrawSurface7, OffDDSurf7 As DirectDrawSurface7
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Sub Form_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.BorderStyle = 0
End Sub
Private Sub Form_Resize()
Set ObjDD7 = ObjDX7.DirectDrawCreate("")
Call ObjDD7.SetCooperativeLevel(Me.hwnd, DDSCL_NORMAL)
Dim ddsd1 As DDSURFACEDESC2, ddsd2 As DDSURFACEDESC2
With ddsd1
.lFlags = DDSD_CAPS
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE
End With
Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1)
With ddsd2
.lFlags = DDSD_CAPS
.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
End With
Set OffDDSurf7 = ObjDD7.CreateSurfaceFromFile("ビットマップファイルのパス", ddsd2)
Dim nRECT As RECT, fRECT As RECT, rv As Long
rv = GetWindowRect(Me.hwnd, fRECT)
rv = PrDDSurf7.Blt(fRECT, OffDDSurf7, nRECT, DDBLT_WAIT)
End Sub
解説いるかい?
0788デフォルトの名無しさん
NGNGDim ObjDX7 As New DirectX7, ObjDD7 As DirectDraw7
DirectX7オブジェクト;VBタイプライブリ参照必須、DirectXを使うって宣言だ
DirectDraw7オブジェクト;DirectDrawを使う宣言だ
DirectDrawではサーフェイスと呼ぶ、ビットマップを格納する仮想スクリーンを使う
(Win32APIのディスプレイデバイスコンテキストと同じようなものだ)
これが表示する全ての基本である、描画はサーフェイスに行なう
実際に画面に表示されるサーフェイスはプライマリーサーフェイスと呼ばれる
その他の表示されないものはオフスクリーンサーフェイス(バックバッファ)と呼ばれる
基本描画法はプライマリーサーフェイス作成は必須
オフスクリーンサーフェイスを作成して、そこに表示するビットマップを格納しておく
表示するには、そのオフスクリーンサーフェイスからプライマリーに領域を指定して転送してやる
この作業はBitBltと仕組みは同じだ
さてサーフェイスの作り方だが…
DirectDrawのモードによってやや異なる
ウインドウモードとフルスクリーンモードだ
ウインドウモードでは、ほぼBitBltと同じ使い方になる
座標系なども説明する必要があるか…
もう面倒なので 希望者あったらな(藁
ジャネー
0789デフォルトの名無しさん
NGNGだったら、VC 使った方が良いと思うが...。
0790 750
NGNG0791デフォルトの名無しさん
NGNGただのツールでもBitBlt使うときもあるだろーに。
(でもMSDNぐらい見ろ、ってのは同意)
>>786
PaintPictureがあるけどね。
無理矢理VB標準関数だけでやるよりゃ
いいと俺は思うよ。
>>789
VBが好きだからです。ナンツッテ
#スレとあんま関係なくてスマソね。
0792即レス
NGNG0793デフォルトの名無しさん
NGNGでもちょっと込み入ったことやろうとすると小回りがきかない。
0794デフォルトの名無しさん
NGNGプライマリーサーフェイスは作成時におまえらのディスプレイ表示画面と同じサイズで作成される
見ている画面そのものと言う事だ
それに対してオフスクリーンサーフェイスは作成時にサイズを決める いいな?
DirectDrawを使うからにはウインドウモードとフルスクリーンモードのどちらにするか決める
ウインドウモードではDirectDrawアプリは通常通りWindow支配下にある、画面を占有することはできない
まあふつうのVBアプリと変わらないと思ってよい(描画速度の事ではない)
フルスクリーンモードはその名の通り画面をこのアプリだけのものに占有できる
ただし、画面はすべてサーフェイスに占有されるため、VBに限らず、その他のウインドウはユーザーインターフェイスに関わるイベントは無意味となる
これはフォームなど表示できないから当然わかるであろう
しかしパフォーマンスはウインドウモード以上に期待できる
まず慣れないうちはウィンドウモードでやることだ
Set ObjDD7 = ObjDX7.DirectDrawCreate("")
これは DirectX7オブジェクトからDirectDraw7オブジェクトを作成している
ここからDirectDrawが扱える、引数の""はこれでいい、現在デフォルトのビデオカードが使用される
何も考えるなw
Call ObjDD7.SetCooperativeLevel(Me.hwnd, DDSCL_NORMAL)
これはさっき言ったモード決定だ
このDirectDrawをバインドするウインドウハンドルは必要だ(フォームでなくてもよい)
DDSCL_NORMALはウインドウモードと言う事だ、今回はフルの設定は割愛する
さあサーフェイスの作成だ DDSURFACEDESC2構造体がまっているなw
初心者は最初わかりにくいが、わかってしまえばなんのことはない
ウインドウモードでは設定するパラメータは多くない
おっとDDSURFACEDESC2構造体などはVBのユーザー定義型として既にDirextX7 for VBのタイプライブラリに宣言されている
じゃあ ああ 面倒だな
また 後でな (´Д`;)新手のもったいぶりアラシか オデは(藁
0795Part7スレ217
NGNG>アイコンを表示させない方法知ってる人いる?ぜひ、おせーて下さい。
が自己解決したんで。
ShowWindow(hWnd,SH_HIDE)でいけました。
こんなことで出来たのか。鬱。
0797デフォルトの名無しさん
NGNG今は無き VB増強作戦で検証してたのを見た気がする。
あのサイト良かったのにナァ。
0798デフォルトの名無しさん
NGNG0799即レス
NGNGErase
0800デフォルトの名無しさん
NGNGありがとうございました。
できましたー。
0801デフォルトの名無しさん
NGNGStretcBltとPaintPictureのどちらが速いかは、環境次第で違う結果になる。
でも、両者にあまり速度差はないので、
拡大/縮小やるなら、やや高機能なPaintPictureの方がお勧め。
0802即レス
NGNG#StrechBltが遅すぎる気もするな。
#VC++使って自前で作った方が速いんじゃないか?
0803即レス
NGNG昔の話ね。(2,3年ほど前)
今は速いかも。
0804デフォルトの名無しさん
NGNGその調子でDirectMusicも〜
0805デフォルトの名無しさん
NGNGファイルの開き方はやはりBinaryで開くのでしょうか?
一般的に結合ソフトはどのように結合させてるのでしょうか?
とんちんかんな質問かもしれませんが、よろしくおねがいします。
0806デフォルトの名無しさん
NGNGアホォ || モウクンナ
ヴォケ ∧||∧←>>805 イッテヨシ !
∧_∧ ∧_∧ (/ ⌒ヽ ∧_∧ ∧_∧
( ´∀`) ( ´∀`) | | | (´∀` ) (´∀` )
( ) ( ) / ノ ( ) ( )
| | | | | | | || | | | | | |
(__)_) (__)_) 怫 (_(__) (_(__)
;
-━━-
0807即レス
NGNG俺ならメモリに読み込んでPutで追記。
ファイルそのままにしたいならOpenはBinary。
だな。
#たまには質問。
#ファイルの末尾を削る時ってみんなどうしてる?
#俺は全部読み込んでKill→Putなんだけど無駄が多くて。
0808805
NGNGレスありがとうございます。
なるほど、その方向でいきたいと思います。
まだまだ前途多難ですが、、、
#質問はわかりません。すいません。
0809デフォルトの名無しさん
NGNGファイルによるだろ。テキストファイルなら、Text モードだし、
バイナリファイルなら Binary モードだ。どっちかわからんのなら、
プログラム作る能力が無いのだから、あきらめれ。
>>807
俺は、一時ファイルに必要部分のみコピーして、Kill 元ファイル、
Name 一時ファイル AS 元ファイル だな。Kill → Put だと、
その間に異常終了したらファイルがなくなってしまうので、ちょっと
怖い。
0810まだまだ未熟
NGNG透過ならカラーキーを設定して
Call BackSurf.BltFast(x, y, CharSurf, r, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
でできるのですが・・・。ご存知の方、いますか?
0811まとれす ◆mato/KTI
NGNGSetEndOfFile()なんてどうだ? 使ったことはないが
>>810
DirectXはよくわからんが、普通はアルファブレンドとかを使うな
0812805
NGNGレスありがとうございます。
テキストファイルをバイナリモードで開けてはダメなのでしょうか?
困ったな、
>>まとれすさん
レスありがとうございます。
SetEndOfFileですか、難しそうですけど、使いこなせれば、うまく
いくかもしれませんね。ただ、ほんとに難しそう、、、
ありがとうございました。
0813809
NGNG> テキストファイルをバイナリモードで開けてはダメなのでしょうか?
別に良いんだけど、テキストファイルだと行単位の処理とかないの ?
テキストモードなら Line Input # で、行単位に読んだりできるので、
ちょっと楽。あと、Binary モードだと指定したファイルが無い時に
エラーにならずにそのファイルを作っちゃうので注意が必要。
0814デフォルトの名無しさん
NGNGDarw7では実装していない
DX8以降Drawは7のままであるから Drawでは、ないという事だ
ただし3Dのほうでテクスチャーで、できるようだ オデは3Dはやらない フィギュアヲタではないからだ
パフォーマンス無視のテクヒントをあげておく
Msimg32.dllにAlphaBlend関数がある
サーフェイスのデバイスコンテキスト互換ハンドル取得はわかるかな?
Draw使ってんのにAPIで描画という情けない技(藁
0816デフォルトの名無しさん
NGNGみたいな書き方はVB6ではできなかったですよね?
0818812
NGNGレスありがとうございます。
なるほど、ためになります。
その点に注意しながらやってみます。
>>815さん
レスありがとうございます。
あの回答は即レスさんのでしたか、、、
まとれすさんのことだから、これをうまく使う方法があるんだろうな、と思ってました。。。
で、Shell関数でCOPYコマンド呼ぶってのは、ファイルの中のデータを読まずに、
ファイルを単純に結合してしまう、ってことでしょうか?
これはかなりよさそうですね。今からそれを調べてみます。
ありがとうございました。
0819デフォルトの名無しさん
NGNGSetEndOfFileですなー。
こんな感じ。
hFile = CreateFile(strFilename, GENERIC_WRITE Or GENERIC_READ, FILE_SHARE_READ, 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_SEQUENTIAL_SCAN, 0&)
If hFile = INVALID_HANDLE_VALUE Then Exit Function
Call SetFilePointer(hFile, lngFileEndPos, 0&, FILE_BEGIN)
Call SetEndOfFile(hFile)
Call CloseHandle(hFile)
0820デフォルトの名無しさん
NGNGフォームに単表形式で表示しているのですが、現在表示しているレコードを
「15/20」みたいに何レコード目かを表示したいのです。((現在のレコード)/(全件数))
全件数はRecordset.RecordCountで取れたのですが、現在表示中のレコードが
何番目かというのの取得方法が分かりません。
おながいします。
0821まとれす ◆mato/KTI
NGNGできない。Constなら別だが。VB.NETでは、できるようになってる
>>818
そういうことだ。待機の問題とか出てくるけどな
>>820
AbsolutePositionでどうだ? 一応行っておくが、RDBMSでは、何番目、
という考え方はあまり使わないぞ(代わりにカーソルの位置を使う)
0822デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGArr1 = Split("a b c d e"," ")
Debug.Print UBound(Arr1)
ってすると、4とでる。
つまり、Split関数は勝手にReDimしてくれてるってわけ?
そんな記述、どっかにありましたっけ?
0825あの・・・
NGNGよくウィンドウ丸ごとgif画像とかにして
貼りつけたりしてますがあれはどうやってるん
ですか?詳しい方教えてくださいな。
0826どこかへ消えてください
NGNG825のような常識はずれの低脳初心者なクソにマジレスしないように。
0827デフォルトの名無しさん
NGNGPhotoshopで出来ます。
ttp://www.adobe.co.jp/products/photoshop/main.html
0828デフォルトの名無しさん
NGNG以下のソフトを使用。開発者の常識
http://www.sourcenext.com/products/satsuga/
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGすげ、、
こんな素晴らしいソフトがたった\4,900
しかも今ならドットコム価格\4,165 、、、恐るべしソースネクスト。
0831デフォルトの名無しさん
NGNGPhotoShopは高いからソースネクストの製品がいいよ。
つーか、俺の知り合いのPGも全員これ。
C使ってる連中は画面キャプチャ専用のプログラムを自作
するのが常識らしいが、VBAやVBのPGはこのようなツールを
使うのが常識。API使って作れないことも無いが、4千円
程度でこのような高機能なユーティリティが使えるなら
買う方が良い。
0832デフォルトの名無しさん
NGNG整ってきたからなあ。
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNGハゲ同
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGお前等、痛すぎ。
0838デフォルトの名無しさん
NGNGマジレス恥ずかしーあはは?
0839あの・・・
NGNGありがとうござます!!
こんな良いソフトがあるとは知りませんでした(汗
さっそく買っちゃいました。マジレスして頂いて
ありがとうございますぅ!!日々精進です。
0840ああぁぁぁ......
NGNG0841デフォルトの名無しさん
NGNG俺も。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGGetWindowDCでhDCを取得、
GetWindowRectでウインドウサイズを取得しBitBit、
ReleaseDCでhDCを解放。
書き写した画像を適当な方法で保存してできあがり。
…一応マヂレスしてみた。
0844まとれす ◆mato/KTI
NGNGほめても、何も出ないぞ(テレ笑
>>824
ほんとだ。ま、Array関数と同じ動きだな
>>825
[Alt]+[PrintScreen]して、ペイントにコピー、Officeをインストールしてれば、
gifで保存できる
>>843
まじめにやろうとすると、カーソルをどうするとか、半透明ウィンドウをどうする
とかって問題が出てくるな
0845デフォルトの名無しさん
NGNGいいでしょうか。
0846デフォルトの名無しさん
NGNG外にping打ちまくる。
0847845
NGNGバカ丸出し
0848まとれす ◆mato/KTI
NGNG>>846の方法は、あながち的外れじゃないぞ
とりあえず、RASならWM_RASDIALEVENTをトラップすればよさそうだな。問題は、
LANなんだが・・・
LANの場合は、厳密な判断は無理だろう。ルータやプロクシがどうなってるか、って
ことになっちまうからな。それこそ、外にPingを打つとかで判断するしかない
0849デフォルトの名無しさん
NGNGありがとうございます。ちと調べてみます。
>>847
偽物氏ね。
0850デフォルトの名無しさん
NGNGいいぞ
厨スレらしいぞ
0851デフォルトの名無しさん
NGNG折れいつも楽だからループカウンタ以外ほとんどグローバルにしちゃうんですけど。
ちなみにこんな質問するくらいのスキルです。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGフォームにコントロールはっつけて使っているだけの
純な厨はそれほど深刻ではないYO
いいぞ、それでも
わかるようになったらわかる
今はイイ(・∀・)
0855デフォルトの名無しさん
NGNG変数が多いと変数名がかぶって、考えるのがめんどいから
さらに、スペルミスで関係無い変数を参照してしまう可能性があるから
それを減らす為に長い変数名を付けると、タイプするのがめんどいから
それでも、バカなやつは間違えるから
0856即レス
NGNGデバッグしづらいからだよ。
例えばグローバル変数に依存してる関数を呼び出す時は、
いつどこでそのグローバル変数が変化するかも把握しとかないと
いけないだろ?
ある程度でかいアプリなら、実際不可能だ。
#いかにグローバル変数がウザいかは
#ある程度規模の大きいアプリを作るか、複数の人間で
#開発してみればすぐ分かるよ。
0857探索者&rlo;トステ@&lro; ◆RXcNtpf.
NGNGスレ汚しすまそ。
0858どうやって&lo;やったの&ler;
NGNG0859どうやって&lo;やったの&lre;
NGNG0860デフォルトの名無しさん
NGNG0861VB初心者
NGNGバリアント型がもつ「Empty 値」と「Null 値」。
これの内部的なビット並びはどうなっているのですか?
asc() で調べようとするとエラーになってしまいます。
また、Null 値はどういった用途に使うのですか?
よろしくお願いします。
0862探索者&rlo;問質@&lro; ◆RXcNtpf.
NGNGTabStrip上で右クリックされたら、っていう判定はできますか?
それと、TabStripに何かをD&Dしてどのタブにドロップされたのかを
調べることはできるのでしょうか?
よろしくお願いいたしまふ。
0863デフォルトの名無しさん
NGNGVariant 型は、型情報 (2バイト) + その時の内容 の形で保存されてい
る。(Put ステートメント参照のこと。) だから、Empty 値の時は、
型情報が &h0000 になっているし、Null 値の時は、&H0001 になってい
る。(VarType 関数参照のこと。) より詳細が知りたければ、
Variant 変数を Put でディスクに書き出して、バイナリエディタなどで
見ればいい。
Null は、無効な値を示す時に使う。例えば、入力された文字列を返す
ルーチン等で、キャンセルボタンがクリックされたら Null を返すように
するなど。あと、データベースで連携の時にデータベースも Null 値を
持っているからそう言う時に便利。
>>862
> TabStrip上で右クリックされたら、っていう判定はできますか?
SSTab1_MouseDown() でできると思う。
> それと、TabStripに何かをD&Dしてどのタブにドロップされたのかを
> 調べることはできるのでしょうか?
マウスの座標値から判断するしかなさそう。
0864まとれす ◆mato/KTI
NGNG「デバッグしづらい」は間違いじゃないがどちらかといえば「バグを起こしやすい」ってところ
かな。10個ぐらいのグローバル変数なら、何をやっているのか管理できるけど、100個になったら
無理。そのために、構造体を使ったり、クラスを使ったり、ローカルスコープに押し込めたりする。
これが「カプセル化」。オブジェクト指向でも出てくる重要な概念だから、きちんと把握しておいた
方がいいな
>>861
内部的な状態が知りたければ、RtlMoveMemory()とかでコピーして調べるしかない。
で、Null値は、データベースと一緒に使われるもので、「何も入っていない」状態を示している。
Empty()は、初期化されていない状態、だったかな
>>862
MouseDownイベントでとれるんじゃないか? もう一個の、どこのタブにドロップされたかだが、
結構面倒みたいだな。DropされたときのMouse位置から計算して求めることができるぞ
0866861
NGNGありがとうございます。
そうか、データベースは思いつかなかった。
Pro*C でオラクル相手の仕事してるのに……(w
VB はユーザーインタフェース専門言語って思っていたので。
0867探索者&rlo;問質@&lro; ◆RXcNtpf.
NGNG>>864
ありがとうございまふでふ。
D&Dの方は座標で調べるんですね。
とりあえずやってみまふわ。
でわでわ、、、
0868デフォルトの名無しさん
NGNGDirectXを使わないで良い方法ありませんか
0870デフォルトの名無しさん
NGNGいつもMDIコントロールとかいうのをつかってました。
それだと音が鳴り終わらないと次にいかないんですよね。
ありがとうございます。
0871デフォルトの名無しさん
NGNGBooleanがたを宣言時にTrueにしたいのですが
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNGVB.NETかよ!?
0874デフォルトの名無しさん
NGNGそれだと「ステートメントの最後」
とかいうエラーになるんですが・・・。
0875デフォルトの名無しさん
NGNGDim temp As Boolean
temp = True
そのまんま。VB6までは宣言と同時に初期化はできない。(デフォルト値で初期化される)
Dim temp As Boolean : temp = True
とかできなくないけど、あんまり意味ない。
0876デフォルトの名無しさん
NGNG非同期型のオプションを付けて鳴らせば、同時進行が可能。
0877通りすがり
NGNGDeclare Function PlaySound Lib "WINMM" Alias "PlaySoundA" (ByVal pszSound as String,ByVal hmod as Long,ByVal fdwSound as Long)As Long
引数
pszSound:WAVEファイル名、またはリソース、またはメモリアドレス、vbNullStringなら演奏中止
hmod:ファイルの時0,リソースを使う時、実行モジュールインスタンスハンドル、
fdwSound:下記演奏動作指定フラッグ(組み合わせ可)
&H20000:ファイル指定、&H40004:リソースID指定、&H4:サウンドデータをメモリにロード <pszSoundに合わせる事
&H1:非同期再生、&H0:演奏終了まで戻らない
&H8:繰り返し再生
&H10:他に再生中なら実行しない
この関数の戻り値:エラーでないとき1 エラー0
例
Dim r As Long,WData() As Byte
WData()=LoadResData(リソースID、リソース定義名)
r=PlaySoundA(WData(0),0,&H1 Or &H4)
注:バイト配列に読み込んだ場合、配列の初期要素WData(0)は先頭メモリアドレスである
厨よ
わからないならむやみにAPIに手を出すな
VBどころかWINのクラッシュを招くぞ
ジャナ
0878もったいぶりアラシで決定
NGNG0879デフォルトの名無しさん
NGNGBorderStyle = 0(なし)にしてもタイトルバーが
消えません
これって仕様?それともただの暴走?
win98のときはそんなことなかったのにあとほかに原因ありますでしょうか
0880デフォルトの名無しさん
NGNG過去ログにTabStripで右クリックのサンプルコードがでてるよ。
このスレか、一つ前のスレだったと思う。
0881デフォルトの名無しさん
NGNGゲーサロ野郎ハケーン!
0883デフォルトの名無しさん
NGNGローカルスコープに押し込めるってどういう意味ですか?
というか他のモジュールで同じ変数を使いたいのでグローバルにしちゃうんですが、
どうすれば使わず済むんですか?
真面目に疑問です。教えて!
0884デフォルトの名無しさん
NGNG目次や索引のページ数がデタラメなだけだと思ってたら、CD収録の
サンプルまで中身がダメダメだった。
出来が悪いとかじゃなくて、プロジェクトファイルで存在しないフォーム
呼び出してたり。
改訂版出たら無料で取り替えたりしてくれんのかな?
改訂版の印税まで著者に入ったりしたらイヤだぞ。
0885デフォルトの名無しさん
NGNG0886山太郎
NGNG他モジュールから参照したい場合は、プロパティプロシージャを通して公開すべし。
その変数がモジュールに依存しない、本当の意味でのGlobalなものでない限りは
グローバル変数化は極力避けるようにした方が無難だよ。
...でも、このへんの大切さは一度失敗してみないと分からないかもなァ。
0887まとれす ◆mato/KTI
NGNGこっちの環境だと消えるぞ
>>883
パブリックにしない、ってことだ。逆に聞くが、どういう用途の変数をグローバルに
したいんだ?それを聞いてから、回答を考えることにするぞ
グローバル問題の直接的な解決ではないが、昔やった小ネタでは、
Type g
End Type
という構造体を作っておいて、グローバル変数をこの構造体のメンバーにした、
なんてのがあったな。スコープの問題はクリアできないが、プログラミング上の
管理はすごい楽だった。
あと、デバッグ用のフォームを用意しておいて、グローバル変数を全部その
フォームのラベルに格納したり。デバッグ時は、変数の値を見ることができるので、
すげー便利だった。もちろん、リリース時には非表示にするけどな
>>884
出版社に訴えろ。改訂版がでることは、まずないだろうけどな。売れ行きがよければ、
版を重ねたときに訂正されるかも。そのときは、著者に印税が入るな
0888デフォルトの名無しさん
NGNGWin98でいう、プリンタのプロパティ→詳細タブ→ポートという部分を変えたいのです。
---------
現在ポートは
「\\ServerA\Printer」
になっていますが、
これを
「\\ServerB\Printer」
にしたいのです。
---------
数十台のクライアント端末でこの作業をするので、自動化出来ればと思ったのですが…。
0889888
NGNGあるプリンタ情報に「ポートの追加」→「それを使用」→「以前のポートを削除」と
出来れば良いのですが…。
ご存知の方おられましたらおながいします。
0890デフォルトの名無しさん
NGNG今回をもってVBを卒業させていただきます。
次回は・・・。
0891デフォルトの名無しさん
NGNG0892890
NGNG0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNG>おながいします。
人にもの聞くのにふざけてやんの
0895デフォルトの名無しさん
NGNGメニューバーを出しているからだったりして…
うそうそおこらないでぐはっ
0896まとれす ◆mato/KTI
NGNGポートの変更ってのはやったことがないんだが、SetPrinterじゃだめなのか?
>>892
がんがれ。
>>894
>>888はそんなこと言ってないが・・・ 2ch初心者か?
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNGプロパティプロシージャを通して公開・・・の意味が分からないです・・・
すいません;
>>887
グローバル変数を構造体にまとめる、っていうのはいいアイデアですね。
今度から使わせてもらいます(グローバル使うなって・・・)
どういう用途の変数を・・・って質問ですが、
例えばrect型を10個くらい作って、最初に全部代入しておいて、Bltの時に使い分ける、という風にしてるんですが、
(一つのrectに毎回入れなおすのは処理の無駄な気がするので・・・)
その代入させる処理が結構長いので、フォームモジュールが長くなるのが嫌なので別のモジュールでやりたいんで、
仕方なくその10個のrectをpublicにしてるんです。
こんな感じなのでどんどんグローバル変数が増えてしまう・・・
どうすればいいんでしょうか?
0900899
NGNG0901デフォルトの名無しさん
NGNG>888はそんなこと言ってないが・・・ 2ch初心者か?
あはは〜、言ってますよ。注意力が幼稚園児レベルだねえ〜。
0902デフォルトの名無しさん
NGNG10個のrectをクラスモジュールに入れればいいんじゃないの?
dim rect1 as class1
dim rect2 as class1
set rect1 = new class1
set rect2 = new class1
rect1.a=1
rect1.b=1
rect1.c=1
・
・
・
rect2.a=1
rect2.b=1
rect2.c=1
・
・
・
0903もったいぶりアラシ
NGNG>>787>>788>>794 >>881これはどうでもイイ(´∀` )
Dim ddsd1 As DDSURFACEDESC2, ddsd2 As DDSURFACEDESC2
With ddsd1
.lFlags = DDSD_CAPS '●1
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE '●2
End With
Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1) '●3
上記はVBのコード参考例
Type DDSURFACEDESC2
ddckCKDestBlt As DDCOLORKEY
ddckCKDestOverlay As DDCOLORKEY
ddckCKSrcBlt As DDCOLORKEY
ddckCKSrcOverlay As DDCOLORKEY
ddpfPixelFormat As DDPIXELFORMAT
ddsCaps As DDSCAPS2 '★1 構造体である下記参照
lAlphaBitDepth As Long
lBackBufferCount As Long
lFlags As CONST_DDSURFACEDESCFLAGS '★2 フラグ定数
lHeight As Long '★3 高さ
lLinearSize As Long
lMipMapCount As Long
lPitch As Long
lRefreshRate As Long
lTextureStage As Long
lWidth As Long '★4 幅
lZBufferBitDepth As Long
End Type
DDSURFACEDESC2構造体はサーフェイス作成のDirectDraw7.CreateSurfaceメソッドの引数だ
これでサーフェイスの属性を決めて作るわけだ、ウインドウモードでは★の部分だけ考えればよい
ではプライマリーの作成を説明しよう、プライマリーは実際の表示画面だ、これがなくてはD.Drawは意味がない
まず●1のようにlFlagsを設定しよう、DDSURFACEDESC2の他のメンバー設定が有効か決めるのだ
設定値は既に定数が用意されている
.lFlags = DDSD_CAPS これで★1のddsCapsメンバーのみ設定を認めるということだ、他のメンバーはデフォルト値が適用される
★1のDDSCAPS2構造体、これも構造体だ、これが初心者のわかりづらいところであろう
DDSURFACEDESC2構造体のメンバーにさらに構造体が含まれているのだ、よく考えりゃなんでもない
Type DDSCAPS2
lCaps As CONST_DDSURFACECAPSFLAGS '■1 フラグ定数
lCaps2 As CONST_DDSURFACECAPS2FLAGS
lCaps3 As Long
lCaps4 As Long
End Type
これがDDSCAPS2構造体だ、結局は設定すべきメンバーのパラメーターのみやればいいだけだ
●2の.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACEを見ればわかるように、こいつはプライマリーかオフスクリーンサーフェイスか決めるのだ、他にも組み合わせられるフラグ値はあるがこれでいい
さあこれでプライマリーのためのDDSURFACEDESC2構造体はできた
●3のようにメソッドを実行する、Set PrDDSurf7 = ObjDD7.CreateSurface(ddsd1)
このメソッド自体は戻り値として完成したサーフェイスオブジェクトつまりDirectDrawSurface7オブジェクトを返す
プライマリーは簡単だろ?、DirectX7SDKの日本語HELPぐらいもってるだろな?
ああメンドクセーまた気が向いたらな
0904デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0905デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ちんこ
0906まとれす ◆mato/KTI
NGNG>>889 で言ってるな。見逃してたスマソ
>>899
>>902の言うとおり、クラスに分けたほうがいいだろうな。
で、どっかで聞いたような名前だが、SetRect()なんてメソッドを用意してもいいし、
コレクションで公開してもいい
どちらにせよ、オブジェクト指向とかの最近のプログラミングメソッドは、パフォーマンスが
要求される処理などにはきつい部分がある。その辺は、トレードオフだな
0907デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ちんかす
0908デフォルトの名無しさん
NGNGこ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
し
0909デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0910デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ki
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNGん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0913デフォルトの名無しさん
NGNGsine
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
ま
ん
こ
0914デフォルトの名無しさん
NGNGまとれす と オデのレスが アラサレテイグ
オマエ ユルサン
0915もったいぶりアラシ
NGNG0916デフォルトの名無しさん
NGNG> どちらにせよ、オブジェクト指向とかの最近のプログラミングメソッドは、パフォーマンスが
> 要求される処理などにはきつい部分がある。その辺は、トレードオフだな
実際トレードオフを取るとパフォーマンス上問題がないことがほとんどという罠。
0917883
NGNG実は漏れは恥ずかしながらクラスというものが理解できていません。
いいページ見つけたんで勉強しに逝ってきます。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
0918もったいぶりアラシ
NGNG厨よ、理解できないからってアラスなYO
これも理解できないんじゃHTMLのお勉強から逝け
0919デフォルトの名無しさん
NGNGSDKヘルプ嫁
0920デフォルトの名無しさん
NGNG0921もったいぶりアラシ
NGNGMSDNHELPも読めない厨がSDKが日本語だろうとそれだけで理解できるわけないだろ
またSDKだけですべて理解できるやつがいたら2ちゃんには来ないわ(藁
基本的にSDKに限らず、リファレンスは英語のMSの出したままのほうが望ましい
それがわかってないうちは”厨”の定義は免れないZO
日本語リファレンスしか読まんやつは既成コントロール貼るしかできんぞ
ジャナ 新スレになったらまたオフスクリーンサーフェイスでアラシに来るぞ
0922即レス
NGNGGWだから仕方ないとはいえ。
>>899
まとれすも言ってるとおり、結局はスピードとどっちを選ぶか、になるよ。
1秒間に数十万回代入するならクラスなんか使ってちゃ遅すぎだし。
0923デフォルトの名無しさん
NGNG・六曜
これを返すそれぞれの関数キボーヌ
0925デフォルトの名無しさん
NGNGえらく長い文字列を入れても大丈夫でしょうか。
0927デフォルトの名無しさん
NGNG可変長文字列には、約 2GB (2^31) までの文字を格納することができます。
固定長文字列には、1 〜 約 2GB (2^31) の文字を格納することができます。
0928即レス
NGNGあ、ホントだ。悪りぃ。
0929デフォルトの名無しさん
NGNGShell関数のCOPYコマンドを使って、複数のファイルを結合するプログラムを作りたいのですが。
例えば、C:\テストファイル にある test1.txt test2.txt test3.txt という3つのファイルを
Res.txt という1つのファイルに結合するとき、
Dim DP As String
DP = "COMMAND.COM /C COPY C:\テストファイル\test1.txt + _
C:\テストファイル\test2.txt + C:\テストファイル\test3.txt C:\テストファイル\Res.txt"
task = Shell(DP, 0)
と書いても、taskのところでプロシージャの呼び出し、または引数が不正です、といわれてしまいます。
ショートネームに変換して
DP = "COMMAND.COM /C COPY C:\テスト^1\test1.txt + _
C:\テスト^1\test2.txt + C:\テスト^1\test3.txt C:\テスト1^\Res.txt"
と、やってもうまくいきません。
ドライブCの直下だと
DP = "COMMAND.COM /C COPY C:\test1.txt + _
C:\\test2.txt + C:\test3.txt C:\Res.txt"
うまくいくのですが、
なぜ、ショートネームにしてもうまくいかないのでしょうか?
プロシージャの呼び出し、または引数が不正です、といわれる意味がわかりません。
よろしくおねがいします。
0930デフォルトの名無しさん
NGNG標準のリストコントロールに文字列ぶちこんでるんですが
半角1024文字、全角512文字で切れてしまいます。
MSDNにはサイズ制限は特に無い、というように書いてあるのですが
やっぱり切れてしまいます。
MSDNが嘘で本当はサイズ制限があるんでしょうか?
自分の読み間違いでしょうか?
それとも.textプロパティとかが隠れた制限を持ってるんでしょうか??
リストボックスだと並べ替えたりの操作がラクなのデスが
切れるのが仕様だとすると自分でリスト構造(よくわかってない)を
なんとかしないといけないらしい。
0932デフォルトの名無しさん
NGNG必要な部分以外を透明にしたが、
領域外でフォームのイベントが発生しないようだ。
絵じゃなく文字なんでドラッグして移動するのに都合が悪い。
できればフックはしたくないが、どうすりゃいい?
0933まとれす ◆mato/KTI
NGNGない。祝日はテーブルで持つのが楽。六曜は、どっかにDLLがあったな
>>929
そのエラーが出るときは、ほとんどパスの間違いだ。ショートパスは "^"
じゃなくて "~" じゃないか?
>>930
まぁ、そんなものだろう。自分で管理するのが面倒っていうが、配列に
入れるだけでもいいし、リストボックスに文字列の一部を入れておき、
ItemDataで配列の要素と同期するって手もあるな
0934まとれす ◆mato/KTI
NGNGそら、透明な部分はフォームじゃないからな。
リージョンを使わずに、フォームの背景に、その下の画像を表示するか、
マウスをキャプチャーしたらどうだ?
0935デフォルトの名無しさん
NGNG付録についていないんですか?
0936デフォルトの名無しさん
NGNGレスありがとうございます。
本当だ、”^”になってますね。
パスの間違いですか。
書き忘れてましたが、本当は、GetShortPathName()を使って、パスを取得してるのですが、
ショートパスに変換するにあたって、何か注意する点はないでしょうか?
あるいは、ショートパス特有のクセのようなものはあるでしょうか?
今から、パスを見直してみます。ありがとうございました。
0937デフォルトの名無しさん
NGNGVBマガジン 2001,7〜11月号についてた。
0939ムラタ
NGNG0940デフォルトの名無しさん
NGNG丸投げすぎて、何が聞きたいのかわからん
一定時間おきに何かしたいならタイマーコントロール使えば?
0942デフォルトの名無しさん
NGNGブラウザのブックマークへの追加みたいな事をしたいのですけど、
どうすればいいのかさっぱりわかりません。おしえてください。
0943デフォルトの名無しさん
NGNGWIN32APIではInsertMenuItem()だが誤爆かもしれん。
0944デフォルトの名無しさん
NGNGLenB(StrConv(str, vbFromUnicode))
で取得はできるんですが、これだとstrのサイズが巨大だとめっちゃ遅いです。
もっと高速に取得する方法はないでしょうか。
0945デフォルトの名無しさん
NGNG?
0946デフォルトの名無しさん
NGNG0947ななし
NGNG質問じゃなくて愚痴なんだけど(おいおい・・・)、MSDNのサンプルコードって、どうして手抜きで粗削り
(Variant使いまくりとか、マジックナンバー使いまくりとか、オブジェクトを.... As Newで宣言・・・
e.t.c.)なのが多いんだろ?
「わかっている」人がそうした点を踏まえた上で参考にするなら問題ないが、(批判力のない)初心者に
薦めるのはリスクが多過ぎる。(といって、ヘルプを読む習慣をつけさせなければ、厨房質問が増殖する
のが眼に見えてるし・・・・)
初心者を指導するコツを教えてください。
(やっぱり質問だった。(^^;)
0948即レス
NGNGさっきやってみたら出来たぞ。
特に注意する点は無いと思う。普通のAPIと一緒。
>>942
インデックス使うなり。
コントロールを動的に読みこむのと一緒。
>>944
Unicodeなら文字数×2でいいが。
Shift-Jisならつらいな。
>>947
うーむ。俺はあんまり初心者を指導する立場にないのであれだけど、
やっぱ基礎は大事なので初心者本を3,4冊読ませてから実践で鍛えるような
感じがいいかと。その過程でMSDNの使い方を教えてやれば。
#ネットで調べるようにするはダメなの?
0949942
NGNGhMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii _
As MENUITEMINFO) As Long
でした。
0951942
NGNG0952即レス
NGNG・メニューエディタで増やすメニューにインデックスをつける。
・増やしたい時に、LoadしてCaptionやらVisibleやら設定。
サンプルはネットに転がってるよ。一般的なやりかただし。
0953942
NGNGLoad mnu_DynamicMenu(Cnt + 1)
mnu_DynamicMenu(Cnt + 1).Caption = "メニュー項目" & Cnt + 1
Cnt = Cnt + 1
End Sub
でした。
0954デフォルトの名無しさん
NGNG他アプリケーションを遠隔操作できるようなものはつくれるのでしょうか?
メモ帳に、Aが押された、とかそういう命令をVBアプリから送る方法のことです。
どのようなAPI等を、使えばいいのか教えていただきたいです。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGWeekday 関数使え。
0958954
NGNGでも、Sendkeysでやるとフォーカスを持たせないとできないんじゃ?
先ほどのメモ帳のような例ならいいですが
もうちょっと複雑に、「あるボタンを押して」などの情報を送りたいときは
Sendkeysでは対処できませんし・・・。
0959デフォルトの名無しさん
NGNGVBは内部でUNICODEだから、strconvしないとLenBで正確なバイト数は取得できないんだよ。
例えば、
LenB("あいa")だったら、6バイトって帰ってくるんだぞ。
おかしいだろ、本当は5バイトだもんな。
これを正確にバイト数を調べたいと思ったら、strconvでvbFromUnicodeしないとだめなんだよ。
0960デフォルトの名無しさん
NGNGだったら、はじめからそう書けよ。こっちには、そっちの事情なんか
わからないんだから。
で、フォーカス持っていないアプリに Key 送りたいの ? そのアプリの
ウィンドハンドルは得られてるの ? また、「あるボタン押してなどの
情報」って具体的に何 ?
0961デフォルトの名無しさん
NGNGまぁまぁ、そうカッカせずに。
>>958
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t02.htm
↑ここ有名だけど参考になると思う。
0962デフォルトの名無しさん
NGNGおかしくないだろ・・・。君も書いてるとおり、VBだと内部UNICODEなんだから
「あいa」は正しく6バイトだよ。
Shift_JISなら5バイトだけどな。でも、日本語表現はShiftJISだけじゃない
からね。Unicodeでファイル保存して悪いことはないのだし。
んで、VB使ってる以上、API使うにしてもどーせShiftJIS<->Unicode変換は
おきる。あきらめてStrConvつかうしかないかも。
0963デフォルトの名無しさん
NGNGもう解決しているかもしれないが、COMMAND.COM には 128バイト以上の引数は
渡せない。VB は、Unicode だから、LenB(StrConv(DP, VbFromUnicode)) の
値が 128 以上だとそのエラーになる。
DOS 時代は常識だったが、いまやおばあちゃんの知恵袋みたいな知識だな...。
0964デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGディスクアクセスを若干高速化するために、
ショートファイル名を作らない設定にしてるユーザもたまにいるけど、
その場合はどうなるんだろ?
それが原因で正常に動かないインストーラも時々見かける。
0967964
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGAPI使えばできるよ。
Googleで検索すれば、いくつか実例がヒットする。
0971デフォルトの名無しさん
NGNGどもです。早速見てみます。PerlやCより楽そうですね。
0972まとれす ◆mato/KTI
NGNGメニューアイテムをLoadしてけばいい。コントロール配列と同じだな
>>944
むずかしいな。lstrlen なんてどうだ?
>>947
それはプログラムを教えるものじゃなくて、メソッドやプロパティの使い方
を教えるものだからな。ちょっと早いかもしれんが、CodeComplete とか
読ませたらどうだ?
>>958
ウィンドウメッセージを送れ
>>963
それは環境依存じゃないか?
>>964
正式名称は、Visual Basic .NET 7.0 らしいな
>>969
Visual Basic .NETなら楽チン。それ以前なら、>>970が言うとおり、APIだな
0973デフォルトの名無しさん
NGNGhttp://tokyo.cool.ne.jp/taquino/vbcgi/index.shtml
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGレスありがとうございます。
そうですか、即レスさんの環境ではうまくいきましたか、
俺のは何かがおかしいのですね、何かが、、、しらべてみます
ありがとうございました。
0976975=936です
NGNG0977デフォルトの名無しさん
NGNGCGIができて喜ぶなんてカワイイ
厨らしいYO
HTTP1.1鯖作るぐらいやってみなよクスッ
自鯖用なら何もHTTP1.1なんてメンドーなもんやらんで
オリジナルプロトコルでオリジナルクライアント配布してやるとか
それぐらいの情熱はナイノカネー
まっだから厨なのか
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNGCGIの意味がわかってない
オマエはヤッパリ、Perlの配布コードコピペで終わりミ゚Д゚,,彡
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNGぶび厨が何を言う。
0982デフォルトの名無しさん
NGNGクスッ
日本語が理解できてない奴がいる。本当のことを言われてあせったんだね。
0983デフォルトの名無しさん
NGNGどうせネタかCGIと鯖の違いをわかってない真性バカだろ。
あいてにするだけ無駄。
0984デフォルトの名無しさん
NGNGいいぞ もめてこそ厨スレだw
なるほど
VBでCGIプログラムを作りたいのか
それはできるが
HTTPレスポンスわかってる?
アラシもそこを言いたいのだろうな
VB以前にHTTPがわかってるかどうか
高速化するならIISなど製品鯖使わず
VBCGIにカスタマイズしたHTTP鯖作るのも手だな
それをいいたいのだろう
まあ、またもめていいぞ。
0985デフォルトの名無しさん
NGNGウザイ
口田氏するな
0986デフォルトの名無しさん
NGNG発言が意味不明。まっこれもアラシか。
0987デフォルトの名無しさん
NGNG最近ソケット通信を覚えた房だと思われ
ずぼしでも荒らすなよ
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0-16777215の整数値を、RGBに分解したいんですが、
どうすればいいでしょうか。
0991デフォルトの名無しさん
NGNG取りあえず8bitx4に分割しなされ。
共用体とかあれば楽だね。
0992デフォルトの名無しさん
NGNGRGBは256*256*256って考えれば分解できるでしょ
0993デフォルトの名無しさん
NGNG09941000!
NGNG0995デフォルトの名無しさん
NGNG0996( ´・∀・`)@28歳くん ◆7aTaLnPA
NGNG0997( ´・∀・`)@28歳くん ◆7aTaLnPA
NGNG0998( ´・∀・`)@28歳くん ◆7aTaLnPA
NGNG0999( ´・∀・`)@28歳くん ◆7aTaLnPA
NGNG1000デフォルトの名無しさん
NGNG馬鹿
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。