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

(*´д`*)ウッ… VB初心者質問スレ Part15

■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブンNGNG
  Part 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/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0794VB信者NGNG
>>793がイイ事逝った
0795デフォルトの名無しさんNGNG
そもそも気の弱い人は2ちゃんに来ない。
0796デフォルトの名無しさんNGNG
ひろゆきが好きでないと2ちゃんに来れない
0797デフォルトの名無しさんNGNG
vb6のdirlistboxやfilelistbox等を使用して
ftp接続したサーバー(linux)のディレクトリを
表示することはできますか?
0798デフォルトの名無しさんNGNG
正直VBを全くのド素人の状態から初めて1ヶ月チョット。
このままVBを頑張るか、他の言語へ乗り換えるか・・・。

なんか色んなスレROMってると、
VBでは難しいこと出来ないみたいなことばっかかいてあったし。
どうなんでしょう?
0799デフォルトの名無しさんNGNG
自分が何作りたいかによるだろ。
0800デフォルトの名無しさんNGNG
そもそも難しいことが何かわからない。


VBで出来ないことも実際あるけどそれが難しいこととは別の話しだし。
0801デフォルトの名無しさんNGNG
VisualBasic6.0上では、隠しファイル(フォルダも含む)を参照することが出来ません。
そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば
setattr関数を使って属性を変更してまた戻しています。

で、質問なのですが、
「最近使ったファイル」を調べたいのですが、これは「隠しフォルダ」になっています。
MSDNで調べてみると。setattr関数って、ファイルしか属性変更できないみたいなんですけど、
どのように、フォルダの属性を変更すればよいのでしょうか?

あるいは、属性変更せずに隠しフォルダの中身を参照することはできるのでしょうか?

どなたか分かる方ご教授願います。
0802デフォルトの名無しさんNGNG
>>801
参照ってなにで参照してんのよ?

> そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば
> setattr関数を使って属性を変更してまた戻しています。
つか、やめれ。
0803801NGNG
802様
>参照ってなにで参照してんのよ?
フォルダの中身を調べて、中のファイルのパス名を取り出したいのです。

>> そこで、getattr関数を使って、ファイルの属性を調べ、隠しファイルであれば
>> setattr関数を使って属性を変更してまた戻しています。
>つか、やめれ。
申し訳ございませんが、なぜ駄目なのか教えていただけないでしょうか?
0804追記@801NGNG
質問の回答にはなってませんでした。
>参照ってなにで参照してんのよ?
フォルダの中身を調べて、中のファイルのパス名を取り出したいのです。
ですから、Dir関数を使おうかなと
0805デフォルトの名無しさんNGNG
>>798
ハードウェアよりのことはCやアセンブラ。
データベース系はVB。
VBやってるとVBscriptが使えるASPの習得も楽で、
ASP + SQL Server を運営して2ちゃんのようなサイトを作ることもできる。
0806デフォルトの名無しさんNGNG
( ´_ゝ`)フーン  
0807デフォルトの名無しさんNGNG
駄目だこりゃ
0808デフォルトの名無しさんNGNG
>>805
なるほど、これはもう少し慎重に選択してみたいと思います。
ありがとうございました。
0809デフォルトの名無しさんNGNG
ここはとても温和で気軽にカキコめるスレだと思うがな
他に比べれば
0810デフォルトの名無しさんNGNG
>>804
ヘルプでDir関数の第2引数を調べろ
0811デフォルトの名無しさんNGNG
なんでも知ってる人は聞かれなくても自分からどんどん教えたくなるもんさ
0812デフォルトの名無しさんNGNG
>>797
不可能。
0813デフォルトの名無しさんNGNG
>>797
そn二つで出来るかは知らないが、普通のリストボックスじゃダメなん?

FTP接続は、アップロード、ダウンロード、ディレクトリ表示などどれも超簡単。
0814デフォルトの名無しさんNGNG
>>801-803
801のプログラムが実行中に、OSが落ちようとも電源が落ちようとも
どんな事態が起きようとも絶対に、ファイルの属性を元に戻す自信があれば、
別にそのように作ってもいいんじゃない。

0815デフォルトの名無しさんNGNG
>>798
VBを一ヶ月ちょっとやって、まだまともに出来ないのであれば、
他の言語に移るのは止めておいた方がいい。

かつ、難しいといわれるプログラムもしない方がいい。
0816デフォルトの名無しさんNGNG
>>814
マルチタスクって知ってるか?
0817デフォルトの名無しさんNGNG
814 名前:デフォルトの名無しさん[sage] 投稿日:02/10/08 22:07
>>801-803
801のプログラムが実行中に、OSが落ちようとも電源が落ちようとも
どんな事態が起きようとも絶対に、ファイルの属性を元に戻す自信があれば、
別にそのように作ってもいいんじゃない。

816 名前:デフォルトの名無しさん[sage] 投稿日:02/10/08 22:23
>>814
マルチタスクって知ってるか?
0818801NGNG
810様 レスありがとうございます。
ヘルプを調べました。フォルダに関する記述は「vbDirectory」のみです。
これはつまり、「隠しフォルダ」については、
普通のフォルダに属性を変更することができない、ということをあらわしているのでしょうか?

814、817様レスありがとうございます。
よく分かりました。なぜ隠しフォルダなのか分からないまま
突発的なエラーが出たときにきちんと対処できるか
どうかという問題ですね。

0819デフォルトの名無しさんNGNG
VBで出来ないことって何━━(゚∀゚)━━ッ??
0820デフォルトの名無しさんNGNG
816は何が言いたいのか?
0821デフォルトの名無しさんNGNG
>>818
んーと、そろそろアレなので解答というか…。
「vbDirectory or vbHiddon」とか。
罠があるのでgetattrしてチェックした方がいいとか、そのgetattrには罠があるとか。
こそらへん調べるといいかな。
0822デフォルトの名無しさんNGNG
>>819
大抵のことはできるでしょ。
VBの基本コンポーネントだけでAPI使用禁止、とか言われたらかなり無理が
出るけど…。
ただ、APIを大量に使い出すとVBである意味がなくなる罠。
まぁ、VBにも他の言語にも向き不向きがあるってこった。
0823デフォルトの名無しさんNGNG
>>819
OSがWindows以外で動作させる事。
つまり、最高精度でWindowsだからあんまり精度を求める処理は無理。
また、高速なスピードを要求する処理。

マルチスレッドは無理すれば何とか。
0824801NGNG
821様。レスありがとうございます。
どうやら私的にもう少しヘルプの熟読と、VisualBasic解説HPの検索が必要みたいです。
第2引数の複数選択が出来るみたいですね。
getattr関数、dir関数ともに勉強し直してきます。

ここのスレの皆様、ご教授大変ありがとうございました。
またどうしても分からないことがありましたら、
よろしくお願いいたします。
0825816NGNG
>>820
そのプログラムが属性変更して動いている最中でも
別のプロセスが動く可能性があるということですが。

これでもまだ理解できませんでしょうか?
0826デフォルトの名無しさんNGNG
排他ロックが必要か
0827デフォルトの名無しさんNGNG
ファイルリストボックスやコモンダイアログでファイルを複数選択して、同じ操作を
させたいのですが、どのような記述をすればいいでしょうか?
内容は、バイナリデータをデコードして、CSVファイルにして出力させるというものなのですが。
よろしくお願いします。
0828729NGNG
>動作中のVBアプリがタスクマネージャのアプリケーションの項目に表示されないようにしたいのですが、可能でしょうか?

自己レスです。
過去ログにShowWindowで出来るようなことが書かれていたので試してみました。
hWnd = FindWindow(vbNullString, "キャプション")
ShowWindow hWnd, SW_HIDE
で、"キャプション"に自分以外のアプリのキャプションを指定するとそのアプリはタスクマネージャに表示されなくなりました。
しかし、自分自身のキャプションを指定すると、画面上には表示されなくなるのですがタスクマネージャには相変わらず表示されていました。
これはこういうものなのでしょうか?ご存知の方教えて頂けないでしょうか。よろしくお願いします。
0829デフォルトの名無しさんNGNG
>>828
オーナーウィンドウの方を操作すればできそうだが。
0830729NGNG
>>829 さま
アドバイスありがとうございます。
オーナーウィンドウのハンドルを取得してShowWindowしたところ、願っていた動作をするようになりました。
ほんとに助かりました。やっと眠れます。
オーナーウィンドウの意味がまだよく分かっていませんが、ぼちぼち勉強していきたいと思います。
ありがとうございました。
0831デフォルトの名無しさんNGNG
>>798
むずかしいことをすれば、むずかしいこともできる。

>>811
能ある鷹はチンコを隠す
0832デフォルトの名無しさんNGNG
ちんこみたい
0833デフォルトの名無しさんNGNG
クラスに開始メソッドと停止メソッドを追加したいんですが
予約語で命名出来ません。この場合何てつけますか?

ダメな例 start stop, start end, begin end, open close
0834デフォルトの名無しさんNGNG
質問です。
ダイヤルアップ環境で、オフライン中にインターネットに接続しようとすると
ダイヤルアップのウィンドウが表示されますが、
これを画面に表示させないでWebアクセスなどを試みることは可能でしょうか?
(バックグラウンドで無理やりダイヤルアップ接続する方法とかではありません。)
繋がっていなかった場合はなんらかのエラー検出が出来る方法であればありがたいです。
どなたかご存知でしたら教えてもらえないでしょうか。よろしくお願いします。
0835デフォルトの名無しさんNGNG
ダイヤルアップのプロパティで「ダイヤルしない」にすれ。
0836デフォルトの名無しさんNGNG
>>833
start too stop, start too end, begin too end, open too close

start stoped, start ending, begin ending, open closed
0837834NGNG
>>835 さん
情報ありがとうございます。
ちょっと手元にダイヤルアップ環境がないので調べられなかったのですが、
VBアプリでそのプロパティの項目を「ダイヤルしない」に変更してしまえばよいということですかね?
で、終わったら元に戻してやればいいと。変更の仕方を調べてみます。(分かるかなぁ?)
どなたか他にも情報ありましたらよろしくお願いします。
0838デフォルトの名無しさん NGNG
>>835
丁寧な説明は大いに結構だが、肝心の>>834氏が理解できるかどうか、
甚だ疑問と思われ。
無駄な努力(猫に小判、豚に真珠に値する行為)は放棄すべし。w

・・・他のROM者にはプラスになるのかもしれないが・・・。
0839834NGNG
>>838
そこまで言う事無いでしょう?
なんなんだ?あんたは
0840デフォルトの名無しさんNGNG
「この板はプログラムを作る人のための板です。」
0841デフォルトの名無しさんNGNG
>>839
ダイアルアップ接続中かどうかを調べるAPIならいろいろあるよ
対象のOSは何?
0842デフォルトの名無しさんNGNG
>>839
コピペにマジレスカッコ(・∀・)イイ!!
って どこでみたんだったかな>>838の文章。。
0843デフォルトの名無しさんNGNG
838は コピペ

そんなこと言うなら、 838が 834が理解できるように 説明しろ。
説明できないのに 否定だけするな。
0844834NGNG
すみません、言葉が足りませんでした。
「VBアプリ」でWebアクセスなどを行う場合にダイヤルアップのウィンドウを表示させない方法を探していました。

>>840 さん
そうなんですか!
対象OSはWindows95OSR2以降、WindowsNT4ServicePack3以降のWindowsです。
(幅広くてすみません。)よろしくお願いします。
0845デフォルトの名無しさんNGNG
「このスレは初心者のためのスレです。」
ですが、とりあえず勉強してる、調査したなどの努力は みせましょうね。
0846834NGNG
まことにすみません、>>840 さんではなく>>841 さまでした。
0847834NGNG
>>845 さん
ご忠告ありがとうございます。
ダイヤルアップ関連については初めてでしたので、つい何も考えずに質問してしまいました。
これからは気をつけたいと思います。

少し調べたところRASというAPIがなにやら使えそうなので、もう少し調べてみようと思います。
0848834NGNG
ホントすいません。
0849デフォルトの名無しさんNGNG
VBScriptですが

フォームのドロップダウンリストの値を取得するには
form.name.options.value

では、ラジオボタンの値を取得する場合はどうすれば良いですか?
0850デフォルトの名無しさんNGNG
>>849
それは質問ではなく、問題ですか?
0851デフォルトの名無しさんNGNG
よろしくお願いします。

1.ListBox上で、項目が選択されていない状態で右クリックしたとき、
項目が選択されて、かつ右クリックメニューが表示されるようにするのはどうしたら言いのでしょうか。
(右クリックメニュー表示は実装しています。)

ListBoxのクリックイベントと、MouseDownのイベントどちらかに記述するのでしょうか。

MSDNで引いても、ググってもわかりませんですた。
ご教授よろしくおながいします。
0852デフォルトの名無しさんNGNG
ふつう右クリックのメニューがポップアップするのはMouseUp時だろ。
0853>>851NGNG
>>852
>>718-720
だったもんで・・・・・

すみませんね。

引き続き回答おまちしております。
0854デフォルトの名無しさんNGNG
すみません、型の違いがよくわからないので教えてください。
0855デフォルトの名無しさんNGNG
>>864
それぞれの型によって入れられる値の種類が違います。
0856デフォルトの名無しさんNGNG
ふつうWM_CONTEXTMENUが来たときだろ。
0857デフォルトの名無しさんNGNG
>>856
わざわざコンテキストメニューを出すためにサブクラス化したりするの?
0858デフォルトの名無しさんNGNG
うわVBってこんなのもできないんだ
0859デフォルトの名無しさんNGNG
>>858
何を出来ないと思っているかC言語を用いて述べよ。
0860デフォルトの名無しさんNGNG
>>833
>クラスに開始メソッドと停止メソッドを追加したいんですが
>予約語で命名出来ません。この場合何てつけますか?

旧VBの楽しいところだね。

>ダメな例 start stop, start end, begin end, open close
Prev(ious)とNextとか、ReadとWriteとかもあるね。

例えば、時間を扱うクラスとして、
StartTime、StopTimeとかにしてるよ。
オブジェクト指向的には冗長かつ邪道なネーミングだけど。
0861デフォルトの名無しさんNGNG
VBでゲームソフトを作っていて、ヘルプの所に
自分のホームページへのリンクを貼りたいのですが、
こういう場合にはどのようにすれば良いのでしょうか?
0862デフォルトの名無しさんNGNG
ShellExecute
0863デフォルトの名無しさんNGNG
>>862
ありがとうございます。調べてみたら使う事が出来ました。

もう一つお伺いしたいのですが、Labelの上にマウスカーソルが来た時、
マウスカーソルを手の形にし(ブラウザのハイパーリンクのように)、
Labelの上から離れたら元に戻したいのですが、
これはどのような処理をしたら良いのでしょうか。
Screen.MousePointer = vbなんとか でカーソルの形を変えられることは分かったのですが、
どんなイベントの所でこれを書けばいいのか分からず困っています。
0864デフォルトの名無しさんNGNG
>>863

Formのマウス ムーブのイベントで ラベルのところに x,y が 入ったら ポインタを手に変えたら
いいんじゃないのか?
それで、それ以外は、元に戻すとかする。
0865デフォルトの名無しさんNGNG
>>863
ラベルのプロパティをデザイン時に変えるだけ。
0866デフォルトの名無しさんNGNG
ああ それが 一番 カンタンだった。
label1.MousePointer = 15
とか Form Load時に やっとけ。
0867デフォルトの名無しさんNGNG
WritePrivateProfileString を使ってINIファイルに書き込むと、
空白が入ってしまいます。

回避方法を、教えてください。
0868デフォルトの名無しさんNGNG
>>867
すみません、自己解決しました。m(_ _)m
0869デフォルトの名無しさんNGNG
>>867
Nothingで書き込んで、セクションを削除してから
再度書き込む。
0870デフォルトの名無しさんNGNG
>>867
Killステートメントでファイルまるごとあぼーん。
0871超初心者かもNGNG
VisuualBasic6.0で質問です。

DoEvents以外ウィンドウズに制御を渡すってどうするんでしょうか?
DoEventsは遅い気がするので。
0872デフォルトの名無しさんNGNG
制御を渡すって、具体的に何がしたいの?
0873デフォルトの名無しさんNGNG
>>871
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
0874デフォルトの名無しさんNGNG
VBで実行中のアプリケーションがアクティブかどうかって
どうやって判断するのですか?
アクティブじゃない時は処理を中断させたいのですが。
0875デフォルトの名無しさんNGNG
>>873
85点。
0876デフォルトの名無しさんNGNG
>>874
GetForegroundWindow()
0877デフォルトの名無しさんNGNG
>>875
100点の回答を 教えてくれ。
0878デフォルトの名無しさんNGNG
>>875
教えを乞う態度とは思えん
(答えを求めておいて、結果を採点か?)
0879デフォルトの名無しさんNGNG
>>878
5/100点
0880デフォルトの名無しさんNGNG
よくVB製ソフトはダサイとか遅いとか糞とかVB製と知ったら落とすきダウンロードする気無くすとか言われてるけどどう思う?
0881デフォルトの名無しさんNGNG
>>880
お前の日本語のほうが糞だと思う
0882デフォルトの名無しさんNGNG
>>880
仕方ないと思う
0883デフォルトの名無しさんNGNG
俺の場合は(オンラインソフトね)セットアップ形式だとダウンロードしようか迷うな
いや、落とすのが決まってる場合はいいけど、Vectorでいろいろ探す場合ね。
0884デフォルトの名無しさんNGNG
(゚Д゚≡゚Д゚)
0885 ◆5VLaSsH.hA NGNG
InetでGetChunkしてるんですけど(VB6)
1024バイトごとに取得しているので丁度区切りの所に漢字が来ると
化けてしまいます。
これどうにかならないんですか?
0886 ◆5VLaSsH.hA NGNG
age
0887デフォルトの名無しさんNGNG
>>880
VB製は糞の割合がかなり高いと思う。
つまり、Vectorで同一カテゴリで手当たり次第DLして試してみる時、
VB製だとなんじゃこりゃ、というレベルのまで掲載されている可能性が高い。

しかし、そのような糞ソフトを除けば、特にVBが重いとかダサいとかいうことは無いかと。
つまりそれなりに定評があるなら言語は何だって関係ないというか。
糞が多すぎるからVB全体のイメージが糞に引っ張られるのだろうな。
0888デフォルトの名無しさんNGNG
>>885
第2引数をicByteArrayにしてバイト配列として取得し、
あとから結合するなりするといいんでないかい?
1024バイトごとにデコードしたいなら、最後の文字が2バイト文字か
どうか判別するルーチン作ってなんとかするとか。
0889デフォルトの名無しさんNGNG
>>885
もしかしてこれ?

' 最初のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
DoEvents
strData = strData & vtData
DoEvents
' 次のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
If Len(vtData) = 0 Then
bDone = True
End If
Loop

txtData.Text = Replace$(strData, vbLf, vbCrLf)

私も今までこのまま(MSDNどおり)にやってたけど、そんなだとは気づかなかったよ。
0890デフォルトの名無しさんNGNG
>>889
あちらさんは2バイトコードなんて
地球外言語だと思ってるよ(藁
0891デフォルトの名無しさんNGNG
バイナリで取得してくっつけてStrConvすれ。
0892デフォルトの名無しさんNGNG
>>889
私なら、
Do While 1
にして、
If Len(vtData) = 0 Then Exit Do
にするけど、上記のMSDNに書いてあるやりかたの方が効率いいの?
0893デフォルトの名無しさんNGNG
>>892
If Len(vtData) = 0をWhileの条件文にしないのはなんか意味あるの?
■ このスレッドは過去ログ倉庫に格納されています