[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 11/28 15:34 / Filesize : 67 KB / Number-of Response : 246
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 12:40:16 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。


2 名前:デフォルトの名無しさん [2007/08/21(火) 22:26:25 ]
[VB6、WindowsXP]
リストボックスにカーソルがある時に
↑↓キー以外にも←→キーでも選択行が変わりますが
←→キーで選択行を変更したくない場合は
どのようにすれば良いのでしょうか?
プロパティかなにかで止められないでしょうか?


3 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 16:05:42 ]
ヒント:keydownイベント

4 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 16:14:04 ]
>>3
キーダウンイベント有無関係ナシに
リストボックスのIndexは移動しないか?

イベントで動いた分強制的に戻すなら・・・

5 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 17:27:44 ]
KeyDownイベントで「お前なんか無かったことにしてやるー」とするのが簡単

6 名前:デフォルトの名無しさん [2007/08/22(水) 17:31:43 ]
>>4
はい。キーイベント関係なしに動きます。
強制的に戻そうにも、タイミング的にどうすれば良いものか。。。
実はずっと探してはいたのですが、リストボックスコントロールの
制御後にイベントを発生させることができれば可能だとは思います。
しかし、コーディング的にはすっきりしません。

別の方法も模索中ですが、横スクロールバーを追加すると、
←→を押していると左右に少しずつ移動し(格好悪い)て、
一番端に来るとやっぱり上下に移動してしまいます。。。
この方法ではできませんでした。
なんとかならないものでしょうか(泣)

7 名前:デフォルトの名無しさん [2007/08/22(水) 17:35:07 ]
>5
なかったことにしてやりたいですw
もしかして私は何か間違ってるでしょうか?
KeyDownとは無関係にリストボックスの上下移動をしているように思います


8 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 19:34:30 ]
はぁ…
結構頻出なんだけどな

Option Explicit
Private WithEvents lstbox As ListBox
Private Sub Form_Load()
Dim i As Long
Set lstbox = Me.Controls.Add("VB.ListBox", "lstox")
With lstbox
.Move 0, 0, 3000, 5000: .Visible = True
For i = 1 To 100: .AddItem i: Next
End With
End Sub

Private Sub lstbox_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyLeft Then KeyCode = 0
End Sub


9 名前:2 [2007/08/22(水) 19:44:02 ]
>>8
申し訳ありません。
いろいろやって、自分でも結論が出ました^^;
やはり間違っていたようで、キーイベントで拾って処理する事ができました。
おっしゃる通り、keycodeを0にすれば良かったです。
昨日から何度も目にしていたのですが、リストボックスの制御する事で
頭がいっぱいになっておりました><;
本当に申し訳ありませんでした。

10 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:37:56 ]
COM コンポーネントを生成するのに
New するのと CreateObject を使うのと、何か違いはあるのでしょうか?
パフォーマンスに差があったりしますか?



11 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 00:18:13 ]
プロジェクトのプロパティの「デバッグ」タブに
「使用中のブラウザに表示する」というチェックボックスがありますが、
これは何なんでしょうか?

12 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 00:43:01 ]
>>10
homepage1.nifty.com/MADIA/vb/vb_bbs2/200403/200403_04030024.html

13 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 07:17:01 ]
[VB6、WindowsXP]
VBでCOMコンポーネントを作成していて
DLLが置いてあるディレクトリにあるファイルを読み込む必要があるのですが
自分がインストールされているディレクトリのパスを取得する方法はありますでしょうか?


14 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 10:49:02 ]
つ「Appオブジェクト」      〜〜〜(App.Path)

15 名前:デフォルトの名無しさん [2007/08/24(金) 00:15:46 ]
フォームからフォーカスが外れたときなのですが、
LostFocusイベントで取得するのはムリでしょうか?

16 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:14:41 ]
ブレークポイント置いて調べりゃいい

17 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 13:11:06 ]
ASPから使うActiveX DLLを開発しています。
できることならWebサーバにもVBを入れてこのDLLをデバッグしたいのですが、
本番サーバと環境に違いが出てしまうので、サーバにはインストールできません。
ASPからDLLが呼びだされたときに、他のマシンにインストールしたVBを使って
フックしてデバッグすることはできないでしょうか?

18 名前:デフォルトの名無しさん [2007/08/24(金) 16:36:31 ]
[VB6,WindowsXP]
一度読み込んだ写真を再度表示する際は、
高速に表示できるような処理を行いたいと考えています。
どなたかご存知であれば、ヒントご教示願います。

[詳細]
フォルダから読み込んだ写真ファイルをリストボックスに表示させ、
リストボックスの選択した写真をイメージプロパティに表示させています。
(2メガ程度の写真を数百枚扱います)
一度読み込んだ写真を再度表示する際に、Image1.Picture = LoadPicture(List1)
としていますが、これだと再読み込みになってしまい表示が遅いです。
Image1.Pictureの値には「923075963」のような数値が入っているので、
これを使えないかと思い、いろいろ調査してみましたが、わかりませんでした。

19 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 19:06:53 ]
>>18
VB6に向かない仕事だと思う。
またVB6以外を使うとしても根本的は解決法はない。
せいぜい「直前にみた画像」を数枚メモリにキャッシュしておく程度の
工夫しかできないと思う。

というか、数メガ程度の画像の読み込みが遅いってことはそもそもないと思うんだけどどうだろう。

どうでもいいけど言葉は正確に使うべきだし使おうとすべきだ。
君の文章にはやたらと「読み込んだ」という表現が出てくるが、
いったいどういう意味でその「読み込んだ」という言葉を使っているのだろう。

20 名前:18 [2007/08/24(金) 21:06:25 ]
>>19
レスありがとうございます
そうですか。解決法は無いのですか。。。><

>というか、数メガ程度の画像の読み込みが遅いってことはそもそもないと思うんだけどどうだろう。
これは300K程度の軽いものに比べて遅いという意味です。
自作のPGで、一度表示した写真を
Set Image2.Picture = Image1.Picture
のように別のイメージプロパティからセットすると、表示が早かったので
Image1.Pictureの情報がメモリか何かに格納されているのでは無いかと思いました。
それならフォルダ内の写真をメモリに先読みすれば良いのかなと思った次第です。

>いったいどういう意味でその「読み込んだ」という言葉を使っているのだろう。
Image1.Picture = LoadPicture(List1)のような事を指しています。
「読み込んだ」だと表示されていない印象を受けるので、「表示」と書けば良かったと思います。

結果として、私の思っていたような事はできないものとして、
裏処理として、写真枚数だけイメージプロパティを追加する処理を
試してみたいと思います。(非常に重くなりそうな予感ですが。。。)
どうもありがとうございました。(^^)



21 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 21:10:40 ]
>>18
Pictureオブジェクトをコレクションか何かで持っておいて
set image1.picutre = obj
とかやればいいんじゃない?
でも、これだと数百枚x2Mじゃ問題あるので
キャッシュアルゴリズムやリングバッファのようなものを実装する必要があるかな

22 名前:18 [2007/08/24(金) 21:11:01 ]
間違えましたw
イメージプロパティ追加じゃなくて、メモリにキャッシュでしたw


23 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 21:11:44 ]
あれ、なんか書き込んでる最中に解決してたかw

24 名前:18 [2007/08/24(金) 21:13:19 ]
>>21
キャッシュアルゴリズムやリングバッファですか〜
早速調査してみます。
レスありがとうございます(^^)

25 名前:18 [2007/08/24(金) 21:14:46 ]
>>23
どうやらそのようですw
後は私のがんばり次第という事で、締めくくりたいと思います(^^)

26 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:13:31 ]
こいつの言い方、すごくムカつくな

27 名前:デフォルトの名無しさん [2007/08/24(金) 23:48:07 ]
VBのテキストボックスに入力した情報をエクセルで出力するにはどうすれば良いですか?

28 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:30:00 ]
藻前等前スレ埋めれ。
まだ952だぞ。

29 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 15:45:07 ]
>>27
手っ取り早いのはCSV形式で保存させてしまうこと。
後何か聞きたいことがあるなら前スレ使って。
pc11.2ch.net/test/read.cgi/tech/1179563617/

30 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 18:27:58 ]
>>27
ほい
www.bcap.co.jp/hanafusa/VBHLP/excel1.htm



31 名前:デフォルトの名無しさん [2007/08/25(土) 22:21:50 ]
[VB6、WindowsXP]

Dim a(,) As Integer
a= New Integer(,) {0,300,400,400,500,600,700,800}
           {400,500,700,800,1000,1200,1300,1500}
           {700,1000,1300,1600,2000,2000,2000,2000}
           {1300,2000,2000,2000,2000,2000,2000,2000}

ローカルレベルでこのように配列を宣言したのですが
・配列初期化子の次元が少なすぎます。
・構文エラーです。
とエラーが出てしまいます。
この宣言、初期化の仕方のどこがおかしいのでしょうか?

32 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:26:03 ]
>>31
ほんとにVB6か?

33 名前:デフォルトの名無しさん [2007/08/25(土) 22:33:07 ]
>>32
え〜と間違えましたVB2005です。すみません

34 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:49:26 ]
VBは2005になってもやっぱり _ で継続行にしないといかんのな。
そろそろやめてほしい。

35 名前:デフォルトの名無しさん [2007/08/26(日) 01:02:07 ]
VB勉強しはじめて間もない者です。
配列には数値以外にも画像を格納する事ができるんですよね?
.gif画像を格納したいんですけど
数値を格納する時と違ってどのように書けばよいのでしょうか。




36 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 01:14:20 ]
>>35
今からでも遅くは無い
VBはやめとけ
他の言語にしろ

37 名前:デフォルトの名無しさん [2007/08/26(日) 01:17:43 ]
初心者です。
クラスとコレクションの違いを教えてください。

38 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 01:18:07 ]
>>29-30
ありがとうございます

39 名前:デフォルトの名無しさん [2007/08/26(日) 01:21:12 ]
>>36
やめたほうがいいと思う理由はなんですか?

40 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 01:25:05 ]
>>35
>>37
初心者ということが、決して免罪符にならにということは覚えておいた方がいい

とりあえず、オブジェクト指向の本を読んでクラスについて勉強を
コレクションはとりあえず、忘れてOK



41 名前:デフォルトの名無しさん [2007/08/26(日) 02:56:17 ]
>>35を誰かお願いします;;

42 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 03:43:38 ]
>>41
つ「GetObject」 「gif フォーマット」

43 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:12:36 ]
>>41
その書き方だと何をしたいのかがわからないんだよ
初心者だから説明のしかたがわからないというのはわかるんだけど
配列にgifファイルをどのような形で保存したいと思っているのか?
pictureオブジェクト?ファイル内容をそのまま?展開したビットマップ?
せめて、その配列を用いて何がしたいのかを書いてくれ

44 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:39:00 ]
というか、初心者が(基本的な内容の学習を欠いたまま)「自分のやりたいこと」に向かって
直線的に進もう、という態度がそもそも間違い。

45 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:19 ]
IDEでデバッグ実行しているとき以外にもなんらかの方法で
Debug.Printの出力を表示させることはできないでしょうか?

46 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 16:04:45 ]
>>45
debug.printはやったこと無いのでわからんが
OutputDebugStringなら出力できるよ
VC6持ってればの話だけど

47 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:17:27 ]
実行時にならどこかにログを吐かせるんだが。そうじゃないのかな?

48 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 18:29:55 ]
OutputDebugStringはできたので、Debug.Printも同様な方法があるんじゃないかと
思って聞いてみたのですが。
Debug.Printを入れた時と消したときで、コンパイルしてできたexeファイルに差異がありますし。

49 名前:デフォルトの名無しさん [2007/08/27(月) 22:54:45 ]
ちょっとお尋ねしたいのですが、
VB6で特定のフォームを表示しているフォームのすぐ背面に
持ってくることは可能でしょうか?
ウインドウズ任せでなく、任意の表示順にしたいのですが、
なかなかいい方法が見つからなくて困っています。
よろしくお願い致します。

50 名前:デフォルトの名無しさん [2007/08/27(月) 23:01:14 ]
VBでサムネイルを作る最も良い方法を教えてください。
よろしくお願いします、



51 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:29:24 ]
>>49
つ「Moveメソッド」「Zorder」


52 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:30:39 ]
>>50
つ「StretchBlt」

53 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:31:52 ]
>>49
win32APIのSetWindowsPosを使う

>>50
まず、そのサムネイルはどのような形でVBから扱えるのかを教えて

54 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 15:39:25 ]
>>前スレ998
終わったスレは邪魔にしかならない。
とっととDAT落ちするように埋めることの何が悪い。

今後もアクセスされるべき重要な情報があれば、
とっくにどっかの誰かが引用なりなんなりしてるわ。


55 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 15:59:33 ]
980越えていれば24時間ほど書き込み無ければ自動的に落ちるが中途半端に埋める馬鹿で延命
遅いスレで950で次を立てると両方のスレでグダグダ
次スレを立てるタイミングを考えろ糞野郎って事だ

56 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 16:05:06 ]
まあまあ
VBを愛する者同士仲良くしようZE☆

57 名前:デフォルトの名無しさん [2007/08/30(木) 21:14:38 ]
すみません、ちょっとお伺いしたいのですが、例えばフォームにテキストボックスを2つ(Text1、Text2)、
マスクエディットコントロールを2つ(MaskEdBox1、MaskEdBox2)を貼り付けただけのものを起動させ、
別途作ったプログラムからAPIを使ってこのフォームのコントロールに値を入力したいと考えています。
その場合まずFindWindowでフォームのウインドウハンドルを取得して、その子ウインドウ(コントロール)
のハンドルをGetWindowで取得するところまではできたのですが、取得したハンドルが4つのコントロール
のどれにあたるのかの判別方法がよくわからないのです。
GetWindowTextを使うとテキストボックスであればデザイン時に設定しておいたTextプロパティの値が取得
できるようなのですが、マスクエディットコントロールにはTextプロパティが無いようなので何も取得出来ず、
判別が出来ませんでした。
今はGetWindowPlacementでウィンドウの描画位置を取得して何とか判別できるようになったのですが、これ
だとフォームのデザインを変更するたびに別途作ったほうのプログラムも修正しなければなりません。
もし何かもっとスマートなやり方がお解かりになる方がおりましたらどうかご教授願えないでしょうか?
どうぞよろしくお願い致します。


58 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:32:21 ]
>>57
長いからななめ読みし貸してない
とりあえずMSDNはみた?

59 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:44:58 ]
>>58
はぁ?何が言いたいんですか?

60 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:43:34 ]
>>57
>もし何かもっとスマートなやり方がお解かりになる方がおりましたらどうかご教授願えないでしょうか?

君は一つ一つの文を短くしたほうが良いよ。



61 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 10:20:55 ]
>>57
一つ聞きたいけど、MaskEdBoxに値を入力しているのはどうやってやってるの?
GetWindowTextが出来ないんじゃ、SetWindowTextも出来ないのでは?

62 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:04:00 ]
>>57
VB側プログラムが普通の作りなら
GetWindowLong(hwnd, GWL_ID)
で特定できる可能性はある

VB側プログラムを自由に変更できるならSetPropでプロパティを付けておけばよい

63 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:29:06 ]
特定するだけなら、62の方法でいいな
もしくはGetWindowLongで、UserDataを与えておくとか

64 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:29:52 ]
間違えた、SetWindowLong

65 名前:57 mailto:sage [2007/08/31(金) 19:42:01 ]
>>61
SetWindowTextは別アプリに対しては使えないそうです。別アプリの場合はSendMessageのWM_SetTextで
やるみたいです。
でも確かにマスクエディットにはTextプロパティがないので、仕方がないのでSendMessageのWM_KeyDown
で1文字ずつ送ろうと思ってます。まだ試していませんが。。。

>>62
おっしゃられているウインドウのIDというのが難しくてよくわかりません。
ここのサイト(ttp://www.winapi-database.com/Window/Class/GetWindowLong.html)でGetWindowLongのサン
プル(マウスカーソルの位置にあるウインドウの情報を得るもの)をダウンロードして、コントロールを色々貼り付
けてテストしましたが、GWL_IDはテキストボックスだとText1とText2でそれぞれ違う値になるのですが、コンボボ
ックスだと全部同じ値になってしまい、これだと判別出来ないのでは?と思いました。というかそもそもウインドウ
のIDというものがどういう使われ方をするものなのかがわからないのでそれ以前の問題なのですが。。。

>>63
同じ理由でUserDataというのもよくわかりませんw
できればフォーム側のプログラムに手は加えたくないです。


お答え頂いたみなさんどうもありがとうございます。
ご提示頂いた方法を調べる過程で色々と勉強になりました。
一応GetWindowPlacementでやりたいことは実現出来ているので、もっと良い方法は気長に探そうと思います。


66 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 17:43:48 ]
>>65
だから、とりあえずMSDNオンライン見れと:
msdn2.microsoft.com/en-us/library/ms633591.aspx

67 名前:デフォルトの名無しさん [2007/09/01(土) 18:35:45 ]
[XP,VB6]
初心者質問で申し訳ありませんが、調べてもわからなかったので、
教えて頂けますか?

[質問]
FORM_LOADの時にsetfocusすると
「プロシージャ呼び出し、または引数が不正」となり処理中止します。
ある条件の場合はフォーカスを変えたいのですが、
この場合、tabindexなどを全て変更したりする必要があるのでしょうか?
また別の方法があるでしょうか?
これに付随して、IMEプロパティもオフにしたいのですが、
リストビューに存在しないので設定方法がわかりませんでした。

宜しくお願い致します。

68 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 19:06:48 ]
>>67
Load時はまだオブジェクトが出来ていな状態だから、
TabIndexを一番低い値にするとか、
ロードした後にsetfocusするとかしかない

69 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:24:38 ]
>>67
もしくはForm_Activeで出来るかな。試してないのでよろしく

70 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:41:07 ]
form.show
form.setfocus



71 名前:67 [2007/09/02(日) 04:31:38 ]
>>68 >>69 >>70
みなさんありがとうございます。
70さんの方法で、
Form1.Show
ListView1.SetFocus
とすれば、ロード時のセットフォーカス実現できました!
showすれば良かったのですね^^
ありがとうございました!

72 名前:デフォルトの名無しさん [2007/09/02(日) 16:27:07 ]
フォルダにあるテキストをリストボックスに表示しているのですが<BR>
リストボックスでテキストをダブルクリックして表示させることはできますか?<br>
また、サンプルプログラムとかありますか?

73 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 17:06:26 ]
>>72
> フォルダにあるテキストをリストボックスに表示しているのですが<BR>
> リストボックスでテキストをダブルクリックして表示させることはできますか?<br>
> また、サンプルプログラムとかありますか?

フォルダにアルテキストを(リストボックスに)表示させているのに、
なんで、ダブルクリックして表示させにゃならんの?不思議

74 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 22:51:07 ]
>>72
意味不明だからもうちょっと分かり易く、やりたいことを具体的に日本語でOK。


75 名前:デフォルトの名無しさん [2007/09/02(日) 23:53:12 ]
イントラネットに接続されている機器のIPアドレスをMacアドレスを
指定して習得したいのですが可能ですか?
サンプルなどありましたら、提供していただけると助かります。

76 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 00:25:08 ]
>>75
参考:
rarpに対応して撥ねない機器なら、rarpを使ってできるかも?

77 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:17:14 ]
>>72
リストボックス内にテキスト形式のファイル名でもリスト表示しているのか?
でテキストボックスに選択したテキストファイルの内容を表示?
つ「DblClickメソッド」
優しすぎるか?

78 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:36:25 ]
ファイルの削除にKILLコマンドを使うのはお薦めできないらしいのですが
どのような理由か教えてください。

79 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:59:02 ]
>>78
よく分からないけど、指定されたファイルがなかったら or 削除出来なかったらエラーが出るくらいしか思いつかん
on error 〜で引っかけて対処しておけばエラーで止まることもないから俺は使ってるけど

80 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:10:23 ]
そういえば、VBでKillコマンドって使ったこと無いな
なんかkillっていうと、プロセスの強制終了ってイメージがある



81 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:51:33 ]
>>78
今の今まで聴いたことが無い
ソース見せてくれ

82 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 09:01:32 ]
そういえばなにげにFSOつかうよな・・・・
確かFSOは条件少し指定できたっけ?
忘れたが

83 名前:78 mailto:sage [2007/09/04(火) 09:17:33 ]
>>79-81
レスありがとうございます。

>>79
ファイルが無いとか、ロックされているケースは私もon error で対処しています。
これだけの問題ならKILLを使いたいと思います。

>>81
「kill vb  ファイル 削除 (お勧めしません)」 でググってみて下さい。
ちなみにそのサイトでは、
System.IO.File クラスの Delete メソッドを使用する事がお薦めのようです。

この方法は、Microsoft Scripting Runtimeにチェックを入れたり、
インスタンスの生成や、使用後の参照の開放等、手続きが面倒なので
KILLを使いたいのですが深刻なバグがあるのなら、
Deleteを使用した方が良いと思い、質問させて頂きました。




84 名前:83(78) mailto:sage [2007/09/04(火) 09:21:32 ]
すいません間違えました。
>>82さんの言うFSOでした。

正 FileSystemObject (FSO) の DeleteFile メソッドを使用する事がお薦めのようです。
誤 System.IO.File クラスの Delete メソッドを使用する事がお薦めのようです。




85 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 10:34:51 ]
Killで問題になるとすればユニコードのみの文字を使ったファイル名かな

86 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 11:08:18 ]
FSOはWindowsScriptHostについてくるコンポーネントだっけ?
VB6標準のじゃないってことを理解して使ってればOKだけど
客先に入れたら動かんってことも結構ある。

87 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 12:19:40 ]
>>86
インストーラー作れば問題ないな
というか、VBで作ったソフトの場合インストーラー必須じゃない?

88 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 12:21:13 ]
ライセンス上問題だと思いますが。。

89 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 13:00:48 ]
FSOは再配布出来ないのか
じゃあ、IExx必須とやるしかないな

90 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:24:35 ]
あの、日本語を指摘するかたはそれでもプログラマーですか
コードの「読み」書きが最も大切だと習わなかったのですかね



91 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:44:54 ]
仕様と違ってたらそのプログラムは使えん。
日本語が不自由な奴が仕様を正しく理解できるとは思えん。

>>90 みたいなプログラマーはいらん。

92 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 16:23:04 ]
フォルダ単位を実行する時はFSOで
内部で作る作業ファイルとかはKILLだな

KILLは確かに好ましくないって聞いてるけど
楽なんだよな('A`)

93 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 17:25:42 ]
>>89
WSH単体のインストーラも公開されている。

しかもWindows 98/2k以上には何らかのバージョンがインストール済みなので、
バージョンの違いに頭を抱えなくて済むならそれでいい。

94 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 17:26:21 ]
>>91
その言い草はなんです!
あなたみたいなプログラマー(かどうかも疑わしい)こそいりません

95 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 17:26:45 ]
>System.IO.File クラスの Delete メソッドを使用する事がお薦めのようです。
VB6じゃない

96 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 17:27:22 ]
ごめん後のレス見てなかった

97 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 17:47:41 ]
>>94
人の日本語にはケチをつけるのかw

98 名前:デフォルトの名無しさん [2007/09/05(水) 12:00:52 ]
[XP,VB6]
宜しくお願いします
エクスプローラからフォルダをVBで作成したツールにドラッグし、
ツール側で内容を読み込んでいるのですが、
ドラッグされた際に、エクスプローラよりも背面になっています。
なんとか前面に表示させたいのですが、良い方法があればお教え願えますか?


99 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 17:14:29 ]
常にウインドウを手前に表示したいってこと?
Win32APIのSetWindowPosできたはず
VB6 SetWindowPosでぐぐればサンプルみつかる

100 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 17:41:48 ]
>>98
ドラッグ先の自作アプリが手前にあり、エクスプローラが後ろにいる状態で
エクスプローラのファイルをドラッグ&ドロップしても、自アプリが後ろに来ちゃうって事?
それとも、一度エクスプローラをカレントにしてからと言う事?



101 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:18:36 ]
普通にどこかのコントロールにSetFocusすればいいはず

102 名前:98 [2007/09/06(木) 12:32:23 ]
返事遅れて申し訳ありません
常に前面では無く、エクスプローラから
フォルダをドラッグされて、処理する場合に前面に表示したかったのです
あと100さんのご質問の答えとしてはカレントにしてからとなります

結果として101さんのお答えで実現できました!
みなさんありがとうございました^^







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<67KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef