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

このエントリーをはてなブックマークに追加
何をするためのオススメなのかによって変わってくると思うが
927924:04/01/10 04:41
>>926
入門書です。
さっきアマゾン少し見たんですが.netの本ばっかで、、、。


928924:04/01/10 04:43
余談ですが、Javaの経験が少しあります。
>>928
http://www.amazon.co.jp/exec/obidos/ASIN/4797307595/qid=1073678204/
とか入門にはいいかもしれませんね(シニア編しか読んだことないから適当ですが)
他言語経験者ならMSDN見るだけでも充分だと思うけど。
VBの入門書はハズレが多いから、逆に買わないほうがいいかも。
930924:04/01/10 05:33
>>929
はるひこかぁ・・・。
この人JavaとCも入門書出してるんですけど、評判悪くてハズレなんですよね。
MSDNインストしてから考えてみます。
他にも良書あったら教えてください。
良書というか、カタめの言語仕様本でいいんじゃ?
HowToなんざWebにいくらでも転がってるから本はほとんど無意味かと。
932デフォルトの名無しさん:04/01/10 12:11
すみませんが、教えてください。
チャットで一定時間内に発言せねば自動退室させられるところがありまして、
「待機中」など自分で設定した文字列を一定時間毎に自動でチャットウィンドウのテキストボックスに
ペースト+Enterさせるプログラムを組みたいのですが
「他のウィンドウのテキストボックスにペースト」させるやり方が分かりません。
「そのウィンドウをどうやって指定するか」も分かりません。
色々入門書など読みながら頑張っているのですがなにぶん素人なもので・・・
是非教えてください。お願い致します。
>>932
その程度ならマクロでやりなよ。
AppActivate SendKeys
FindWindow SetWindowText
Spy++ SendMessage WM_COMMAND
ShDocVw.ShellWindows
>>932
それ、迷惑にならないんだろうな?
936932:04/01/10 13:05
>>935
退席中のみ10分置き使い、自分がPCの前に居る時はなるべく使わず、
他の人に迷惑を掛けないよう心がけます
937301 ◆si65ga2MW6 :04/01/10 13:18
>>932-936
むしろVBじゃなくて、JavaScriptの方が簡単に手軽にできるのでは?と。
ローカルにhtmlを作成し、フレームで目的のチャットURLを開き、
JavaScriptで定期的に特定フォームにSUBMITを送るとか。
チャットログとフォームが別れているなら、フォームの方をローカルにコピーして
Scriptを加えると言うのもありかと。
※後者の場合、CGIの方で弾かれる可能性もあるけど。
938デフォルトの名無しさん:04/01/10 16:17
MSNメッセンジャーの最小化のアニメーションをVB6.0で実装する事は
可能でしょうか?
タスクトレイに格納する時にできればいいなと思いまして。
よろすく
939938:04/01/10 16:18
最小化じゃなくて閉じるボタンを押してタスクトレイに格納する時の処理でした。
スマソ
940デフォルトの名無しさん:04/01/10 16:48
クリックした点を中心として、そこからドラッグして離した点までの長さを半径とする星(☆)
の描画方法を教えてください。
式はこんな感じみたいなのですがよく分かりません。
x=(クリックした点)+(半径)×cos(k)
y=(クリックした点)-(半径)×sin(k)
sndPlaySoundでwavファイルを再生したのを中断する方法がわかりません
教えて皆々様
>>940
kを0から2πまで変化させる。
>>940

Option Explicit

Private cx As Single, cy As Single

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 cx = X
 cy = Y
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Const pi As Double = 3.14159265358979
 Dim r As Single, i As Integer, x1 As Single, y1 As Single, x2 As Single, y2 As Single
 r = Sqr((cx - X) ^ 2 + (cy - Y) ^ 2)
 'Circle (cx, cy), r
 x1 = cx
 y1 = cy - r
 For i = 2 To 10 Step 2
  x2 = cx + r * Cos(2 * pi / 5 * i)
  y2 = cy - r * Sin(2 * pi / 5 * i)
  Line (x1, y1)-(x2, y2)
  x1 = x2
  y1 = y2
 Next i
End Sub
944デフォルトの名無しさん:04/01/10 19:12
>>943
星にならんぞよ
最近、FTPクライアントを作ってます。
Win32APIを使って、FTPサーバへの接続、ファイル送信、
ファイルダウンロードなどはできるようにしました。
サーバ側のファイルも操作したいと思ったのですが、
(カレントディレクトリの変更、ファイル名の変更、ファイルの削除など)
どうやったらいいのかわからなくなって、途方に暮れています。

どなたか、ヒントか参考になるサイト、書籍などご教授ください。
946デフォルトの名無しさん:04/01/10 19:57
今、きれいな書式でテキストの出力を目指しているのですが、
AddSpace(str,10)
とかしたら、10文字分のスペースの先頭にstrに格納されている文字が
つまった文字列を出力する。という関数を作りたいんです。
|←10文字スペース → |
|ほにゃほにゃ       |  
|432lhds       |    ←のような感じ 
で、作ったんですが、漢字とアルファベットなどの大きさが違うために
うまくできません。どなたか、うまい方法を教えてください。
もしくは、そういった用途で便利な関数が載っているサイトがあったら
教えて下さい。
房な質問ですが、何とぞよろしく。(要望があれば、私の作ったクソ関数
のソースもさらします
947デフォルトの名無しさん:04/01/10 19:58
上でほにゃほにゃと432lhdsの入っているスペースはいっしょです。
(書き込んだら、ずれちゃいましたね)
948932:04/01/10 20:05
>>937
javaスクリプトは全く分からないので・・・
要はtextboxに入力したテキストをcommandをクリックすることによって、
textbox2に入力したアドレス、もしくはタイトルバーのウィンドウに
コピ&ペーストしたいな、と。
ヘルプを見てもコードの記述が分からなくて・・・
どなたか宜しくお願い致します・・・
>>948
VBスクリプトでもいいよ
>>945
FTPのrfcは理解できてますか?
>>946
テキストの出力とはファイルでいいのか?
閲覧するときのフォントは考慮しなくていいのか?
まあ文字が半角で何個分かをカウントしてスペース足せばいいだけだがな。
952932:04/01/10 20:39
>>951さん
いえ、そのウィンドウの持つテキストボックスです。
VBの入門書片っ端から読んだんですが、こういったことのやり方書いてるのが
なくて・・・何卒宜しくお願いいたします
LenB(StrConv("123あいう", vbFromUnicode))

iiiiii←
WWWWWW←
あああ←
ううう←
954932:04/01/10 21:17
Private Sub cmd1_Click()
Dim title As String
title = txt1.Text ' 1つ目のテキストボックスに、対象のウィンドウのタイトルを入れ
Clipboard.SetText txt2.SelText '2つ目のテキストボックスの内容をコピーし
AppActivate title ' そのウィンドウをアクティブにして
End Sub

そのウィンドウのテキストボックスに、2つ目のテキストボックスの内容を送信&エンターしたいわけです。
〜分置きに自動で・・はタイマーコントロールとloopで何とかするとして。
ほんとはそのウィンドウをアクティブにせずにやりたいんですけど。
恥ずかしくなるほど初心者でして・・・これが限界です。何卒ご教授を。
>>952
だからフォントは考慮しなくていいのかと聞いているんだよ
プロポーショナルだったら無理だしOSのバージョンによってもサイズがかわるので
スペースのキャラクタコード入れればいいってもんじゃない。
モナー板などで勉強しておいで
>>954
>934が丁寧に教えてくれているのに、もったいない。
957932:04/01/10 21:46
(T_T)
934さんのコードが解読できない・・・。
そのままコピペしても使えない・・・
初心者で申し訳ない・・・
デスクトップアクセサリを作りたいのですが
フォームを透明化する方法はありませんか?
>>958
Google フォーム 透過 リージョン VB
960デフォルトの名無しさん:04/01/10 23:49
とあるサイトでこういうコードを見つけてコピペして実行しようとしたけど
Findwindowのところでひっかかるんですがどうしたらいいですか?
電卓を起動して987と送るコードらしいのですが・・。

Private Sub cmd1_Click()
Const WM_CHAR = &H102
Dim hwindow As Long

hwindow = FindWindow("SciCalc", vbNullString)
If hwindow = 0 Then
On Local Error Resume Next
Shell "calc.exe", 1
On Local Error GoTo 0
hwindow = FindWindow("SciCalc", vbNullString)
End If
If hwindow <> 0 Then
PostMessage hwindow, WM_CHAR, Asc("9"), 0
PostMessage hwindow, WM_CHAR, Asc("8"), 0
PostMessage hwindow, WM_CHAR, Asc("7"), 0
MsgBox "OK"
Else
MsgBox "エラー"
End If

End Sub
>>960
API ビューア
>>930
林センセのVB本はいまいちで間違いないけど、大昔に出された、
Basicによるコーディングスタイルの本は名著だよ。当時まだVBは存在してなかった。
いまもオレの心のバイブル。そのくせ、正確なタイトルは失念(w
VBからISOイメージ作成って出来ないですかね?
linuxとかだと標準機能でついてたりするみたいだけど
Windowsでそれらしい解説サイトもないし・・・
>>963
> VBからISOイメージ作成って出来ないですかね?

できる。
ただし、お前が思っているように簡単にできるかどうかは知らん。
965822:04/01/12 12:20
>>963
mkisofsを導入していれば、コマンドを渡すフロントエンド代わりを
VBにやらせることは出来る。
VB6で非アクティブ状態のときに
○○をする〜、って言う処理をしようと思ったのですが
Private Sub Form_Deactivate()

End Sub
だと、どうもうまくいきません
誰か教えていただけませんか・・?
>>966
lostfocusは?
968967:04/01/13 03:42
安易にネーミングからLostFocusなどと適当に答えてしまったけど、
ヘルプを確認したら見事にちがっていた(汗
DeactivateもLostFocusも、アプリケーション内でのフォーカス移動しか監視しないみたい。

うそを教えた罪の意識にさいなまれつつ(汗、調べた結果、
GetForegroundWindowで監視するしかないような気がする。

もし、いわゆる「常に手前に表示」をやりたいのなら、もっと手軽に実現できるので、
検索してみたらどうだろう。これはすぐ見つかると思う。
>>966
サブクラス化して WM_ACTIVATE を処理
起動時、フォームにおいてあるText1に
クリップボードに保存されている文章を表示させるにはどうすればよいですか?
あ、できました。
スレ汚しスマソです。
972デフォルトの名無しさん:04/01/13 23:22
ディストリビュージョンウィザードって
同じOSに入れるときにしか使えないのでしょうか?
>>972
一応、配布するターゲットと開発OSをあわせるのが定説と言われていたけどな・・・
あのウイザードつかうよりはVSIのほうがいいと思う。
なるべく古いOSで作ったほうがいいんでない?
975デフォルトの名無しさん
>>972
そういうオカルトに頼るのはやめなはれ。最終的に *.cab に含まれるファイルが
どこから来るのか調べれば、どうすればいいのかわかるでしょう。