[表示 : 全て 最新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/

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


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さんのお答えで実現できました!
みなさんありがとうございました^^


103 名前:デフォルトの名無しさん [2007/09/07(金) 10:18:00 ]
VB2005について質問があるのですが、どのスレッドで聞けばよろしいでしょうか?
初心者です。


104 名前:デフォルトの名無しさん [2007/09/07(金) 12:16:03 ]
[XP、VB6]
質問があります。
現在イメージボックスを使用して画像を表示しているのですが、
画像の上に文字を表示して保存したいと考えています。
ピクチャーボックスであればすぐできると思いますが、
こちらだとボックスの大きさがコロコロ変わるので困ります。
(Stretchのようにサイズ変更されずに圧縮してくれれば良いのですが)
宜しくお願い致します。

105 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 12:42:44 ]
イメージボックスって何?Imageコントロールの事か?

106 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 12:48:07 ]
ここで良いよ>>103

107 名前:104 [2007/09/07(金) 12:57:22 ]
>>105
すいません。Imageコントロールの事です^^;

108 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 19:21:04 ]
>>107
ピクチャーボックスを使えば、すぐ出来るとの事なので
画面表示にはImageコントロールを使って
ピクチャーボックスをvisible=falseにして、文字描画と保存処理を行えばよいのでは?
pictureオブジェクトは、set picturebox.picture = image.pictureで共有できる
ただ、文字を書き込むってAPI使わんでもスグ出来たかどうかちょっと疑問だが

109 名前:104 [2007/09/08(土) 07:04:47 ]
>>108
レスありがとうございます。
実は一度考えた方法なのですが、ピクチャーボックスの幅が自動で
大きくなってしまったり、元の画像の大きさを縮小したりできなかったので
諦めていました。
ピクチャーボックスへの文字描画は
Picture1.CurrentX = 800 'X座標
Picture1.CurrentY = 30 'Y座標
Picture1.Picture = Image1.Picture '画像取り込み
Picture1.Print "2007/09/08 06:58:14" '文字表示
とかやれば一応文字が反映されています。
あとはsavepictureかなにかやれば良いのだろうと思います。
もう一つ問題があって、現在Imageコントロールを使っていると言いましたが
写真を一枚一枚処理するのでは無く、複数枚の写真をいっきに処理
しなければなりません。なのでピクチャーボックスで一つずつ処理する方法では
実現が難しいという事もあります。(でも、できない事は無いと思います)

110 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 09:37:50 ]
>>109
事前に処理するファイルパスを変数に入れておいてループ取り出しながら繰り返せばいいんでなくて?
絶対に複数の画像を同時に処理しなければならない理由とかあるの?

111 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 10:56:35 ]
質問があります。

VBScriptで時刻を表示させる時に 午前10時以前でも "9:xx:xx" ではなく "09:xx:xx" と、ゼロを入れて2桁で時間を表示したいのですが、なにか表示形式指定のオプションみたいなものがあるのでしょうか?

それとも時間、分、秒と別々に取得して自前の関数で補正しないとだめでしょうか?



112 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 11:03:56 ]
>>109
その方法で、ビットマップに文字列が保存されるかなぁと疑問だったんだが出来るならいいけど
複数枚の写真が、動画のようなもので時間的に余裕が無いということだろうか?
それともバッチ処理のように、ファイルを連続でということなら>>110が書いているような方法で良い訳だが

ちなみに時間短縮ならAPIを使って、DCを自分で作って(CreateCompatibleDCなど)
そこにimage.picture.handleを選択して(SelectObject)
文字列を書き込んで(TextOut など)
って事をすれば良い
こうするととりあえず、DCを画像ごとに生成する必要が無いのでちょっとは早くなるかも

113 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 11:15:17 ]
>>111
VBSはformat使えないし、formatdatetimeがヘボだから
自分で関数作るのがいいかもね

114 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 11:36:04 ]
>>113
レスどうもありがとうございます。

なるほど〜そうですか。そしたらこんな感じで自分で作ってみました

今までは
MsgBox ( Time )
で実行結果 "9:12:34"だったのを、

MsgBox( Right( "0" & Hour( time ) ) & ":" & Right( "0" & Minute( time ) ) & ":" & Right( "0" & Second( time ) ) )
として、実行結果"09:12:34"になるようにしました
とりあえずこれで^^;

どうもありがとうございました

115 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 11:47:18 ]
Right(xxx,2)では?と一応突っ込んでおくがw

116 名前:114 mailto:sage [2007/09/08(土) 11:57:16 ]
あ〜 失礼しました^^;
おっしゃるとおり
MsgBox( Right( "0" & Hour( time ),2 ) & ":" & Right( "0" & Minute( time ),2 ) & ":" & Right( "0" & Second( time ),2 ) )
でした!

あとちなみに
MsgBox FormatDateTime( Time, vbShortTime ) & ":" & Right( Minute( Time ), 2 )
でもなりました

もう少し短くならないかな^^;

117 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 12:05:23 ]
>>116
Windowsの”地域と言語のオプション”で左右されそうな希ガス

118 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 12:09:37 ]
>>116
短くするよりも、精度上げた方がいいけどね
time関数は一度しか使わないで、戻り値を変数に入れてからの方が良いよ

119 名前:114 mailto:sage [2007/09/08(土) 12:13:05 ]
>>117-118
まじですか

そしたら
Dim aTime
aTime = Time
で、
MsgBox( Right( "0" & Hour( aTime ),2 ) & ":" & Right( "0" & Minute( aTime ),2 ) & ":" & Right( "0" & Second( aTime ),2 ) )
って感じにしました

勉強になりますm(_ _)m

120 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 13:37:53 ]
>>109
一応、ピクチャボックスに書き加えたものまで含めて保存したい場合は、
Picture1.PictureでなくてPicture1.Imageの方を保存ね。

121 名前:デフォルトの名無しさん [2007/09/08(土) 19:03:46 ]
VBから他の言語へ「とらば〜ゆ」するのって、簡単ですか?
基本的なアルゴリズムが理解できてとOSの知識があればOKだと思うんですが。




122 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 19:15:33 ]
>>121
問題ないんじゃない
PCの知識も必要かもしれないが

123 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 19:30:00 ]
VBしかできない奴のほうがどうかしてる

124 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 20:56:57 ]
>121
他の言語に移行できないヤツはVBも理解できていない

125 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 22:25:54 ]
インターネット トランスファコントロールで
動画ファイルをダウンロードするのはどうしたらいいのですか?
text,jpg,zipなんかはできるんですけど
なぜか動画は同じ方法ではダウンロードできません
もしかしたらこのコントロールではむりですか
参考になるヒントなど教えてください。

126 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 23:00:39 ]
動画にも色々あるんだが

127 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 23:16:28 ]
すまん
.flvファイルです

128 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 23:39:07 ]
>>127
flvか
ダウンロードの方法は、保存支援サイトが何をやってるか見ればわかるだろう

129 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 01:51:16 ]
やりかたは変わらない。
DL厨対策に動画のURLの取得が一筋縄でいかないようになっているだけ。

130 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 09:17:20 ]
なるほどこのコントロールでできるのですか
もう少しじっくりコードを見直してみます。

131 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 10:36:27 ]
VB6からVB2005に以降したのですが、
VB6のときにあった、ディストリビューションウィザードがなくなって
セットアップディスクが作成できなくて困ってます。
別のツールかなにかで作るのでしょうか?
お勧めがあったら教えてください。



132 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 11:26:36 ]
>>131
VSI (Visual Studio Installer)

133 名前:132 mailto:sage [2007/09/09(日) 11:27:41 ]
ごめんこれはVB6だった。
VB2005は知らんです。

134 名前:109 [2007/09/09(日) 18:07:15 ]
>>110
>>112
>>120
レスありがとうございます。
申し訳ありません。話がややこしくなってしまいました。
いっきに処理しなければならないのは忘れて下さい。
私が勘違いしていました。
おっしゃる通りバッチのような感じで処理できます。

ポイントとしては、
・現在Imageコントロールを使っているので、Imageで文字描画できないか
・Pictureボックスしか無ければ、仕方ないけど、ImageのStrechみたいな
 ボックスの大きさを固定しつつ圧縮する技はないか

以上2点です。

Pictureボックスの大きさを気にするのには理由があります。
処理する前にどの位置に日付を描画するのかを目視したいからです。
写真によっては文字の位置や色なども変えなければ見えませんので。
その為、ボックスの大きさは常に一定で、
Imageのような画像のサイズ圧縮が必要になります。

135 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 23:59:38 ]
>>134
自分はImage嫌いなのでPictureを二つ用意する。一つは非表示で元画像(等倍)。
表示用にはStretchBltかスクロールバーで表示する。

136 名前:134 [2007/09/10(月) 10:04:06 ]
>>135
レスありがとうございます。
基本的な事で申し訳ありませんが、
ピクチャー1のAutoSizeをTrueにすると、
写真が大きい場合、ピクチャー1が画面上からはみ出るのですが
これをピクチャー2にコピーしてもうまくいきません。
また、AutoSizeをFalseにすると、写真が小さく表示され、やはり無理です。
どのように対処されていますか?

137 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 10:15:53 ]
ステータスバーのSimpleTextの文字色、変える方法ってある?


138 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:57:56 ]
>>136
元画像AutoSize=True
手法1(Stretch):StretchBltを使って表示画像に転送
手法2(ScrollBar):表示位置(原点)を保持しておいてスクロールバーを移動させるたびにBitBlt
手法1の場合完結しているが小さい場合に見づらい。
手法2の場合どんなサイズでも擬似的に表示できる。その代わり制御が少し面倒。

他にも色々あるだろうけど、原寸そのままに表示できない場合は、小さくするか
一部だけ表示させるしかないでしょ。

139 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:28:45 ]
VB6で、WinSockコントロールを使ってのソケット通信について質問します

フォームにWinSockコントロールを複数貼り付けたり
Win32APIのWinSock関係を直接操作したりすることなく
複数クライアントとの同時通信などと言うものは可能なのでしょうか?

WinSockコントロールはひとつのインスタンスでひとつのコネクションしかもてなかったと思うのですが・・・
いかがなものでしょうか

140 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:31:08 ]
>139
でけます。
WinSockコントロールを配列にして扱うサンプルがMSDNにあるでよ

141 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:56:09 ]
>>140
ありがとうございます
MSDN漁って見つけることができました。



142 名前:136 [2007/09/12(水) 00:43:16 ]
>>138
色々と情報を頂いて、頑張ってはみたのですが、
私では実現できないようですので、残念ですが今回は諦めます。
お時間頂いてありがとうございました。

143 名前:デフォルトの名無しさん [2007/09/12(水) 23:11:43 ]
今VBで2chに書き込むプログラム作ろうとしているのですが、どうにも駄目です。
winsockを使用して作ってます。
スレの取得はできるようになったのですが、書き込みの方法がわかりません。
特にクッキーの設定の部分がわかりません。

助けてください。

144 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 23:42:59 ]
>>143
迷惑だからやめてください

145 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 04:54:56 ]
>>143
HTTPべんきょうしてください

146 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 09:13:32 ]
>>143
本当にやる気があるならmonazillaで調べて自分で解決してください
俺はそこで調べて誰にも聞かずにdat取得、スレ書き込みまでできました(スレたてはテストの都合上作成も試みていない)

147 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 20:20:32 ]
Dim a As New WshShell
a.Run "lame.exe -b 192"

みたいな感じでコマンドプロンプトで実行させるプログラム自体は起動できるんですが、
実行中はコマンドプロンプトに制御が移ってしまうのが嫌で、
VB側で実行中のパラメータとかを直接受け取ることって何の関数を使えば出来ますか?
コマンドライン型のアプリケーションを完全にこっちで制御したいんです

148 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 20:35:33 ]
色々ぐぐってみたら何となく分かりました。
support.microsoft.com/default.aspx?scid=http://www.microsoft.com/JAPAN/support/kb/articles/JP171/6/54.asp
コンソールウィンドウを表示させればいいのかな?でもこれだと表示させるだけで
パラメータも受け取れないし・・・WshShell使うのと変わらないですね。。

149 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 12:03:16 ]
>>147
自作プログラムなら幾らかやりようがあるけど、既製品はまず無理。
作るときは製品のドキュメントをよく読んでいくしかない。

150 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 12:39:15 ]
>>147
プログラムが終了するまで自プログラムが停止してしまうということだけなら、
3つ目の引数にFalseを指定すれば解消できる。

今度は終了を検地できないけどね。

a.Run "lame.exe -b 192", 1, False

msdn.microsoft.com/library/ja/script56/html/wsmthrun.asp

151 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:35:54 ]
>>150
それなら出来るんですけど、自分のしたいことはコマンドライン型のEXEを、
実行中にパラメータを取得したいんです。具体的にはLameなら実行中のパーセンテージを
こっち側のプログラムで取得して、自作のフォームにプログレスバーとして表示したり、完全に制御したいんです。

>>149
既製品は無理なんですか?それはVBの限界ってことでですかね?
例えば変換君のフロントエンドなんかは、ffmpegのパラメータを実行中に取得してるみたいで・・・同じことをしたいんですが、
VBではどんなAPIを使用しても不可能ですか?



152 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 01:21:56 ]
>>151
そりゃきっとVBで可能だとしても、やるとかえって大変ですよ。
他の開発言語・ツールを使った方がいいと思います。
え?なにがいいかって?馬鹿野郎よくググれ。

153 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 11:17:54 ]
LAMEの画面出力は、プログラムから解析されるような出来になっていないので、
そういう用途ならLAME_ENC.DLLか何かを使ったほうがいいと思う。
VBからどれくらい扱えるかはわからないけど。

154 名前:デフォルトの名無しさん [2007/09/16(日) 14:38:44 ]
フォルダにあるテキストのテキスト名をリストボックスに表示して、
テキスト名を選択したときにテキストの内容をテキストボックスに
標示させたいのですが、パスがわかりません。


155 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:12:19 ]
>>154
何をしたくて何が分からないのか分かりません

156 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:21:43 ]
>>154
つ「App.Path」
つ「CommonDialogBox」

157 名前:デフォルトの名無しさん [2007/09/16(日) 15:49:28 ]
>>155
>>156
回答ありがとうございます。
デスクトップ上にあるフォルダの中のファイルをListViewで表示してます。
ListViewで表示しているファイル名をStreamReaderを使用してテキストの内容を
ラベルに表示させたいです。
ファイル名を時間にしていますので、ファイル名のパスを指定できません。




158 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:04:09 ]
>157
> ファイル名を時間にしていますので、ファイル名のパスを指定できません。
???

159 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:18:44 ]
ゆとりは理由にならない根拠で結果を導き出すから困る
取り付く島がないじゃないか

160 名前:デフォルトの名無しさん [2007/09/16(日) 16:38:23 ]
パス名を現在の時間にしており、変更しているからです。

161 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:55:20 ]
変更しているのは誰?
自身のプログラム内なら、ファイル名生成のルーチンから
ファイル名を横取って来ればいい。



162 名前:デフォルトの名無しさん [2007/09/16(日) 17:03:47 ]
VB2005を使用してます。
複数あるプログラムをボタンをクリックした時にCheckboxにチェックが
あるときは起動してチェックがないときは起動しないプログラムを
作成したいのですが、方法とコードなどありましたら、ご教授ください。

163 名前:デフォルトの名無しさん [2007/09/16(日) 17:07:24 ]
>>161
回答ありがとうございます。
また、ListViewで選択しているファイルののパスを指定する場合の
方法はありますでしょうか?

164 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 20:26:50 ]
>>162
想像できない

165 名前:デフォルトの名無しさん [2007/09/16(日) 21:33:42 ]
PINGを定期的に行う、プログラムを作成したいのですが、
いいサンプルプログラムとかありますか?

166 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 01:05:24 ]
連休中の宿題か?
ガキでなければキチガイばっかりだなw

167 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 08:58:54 ]
>>163
ListViewにファイル名を入れる時はどうやってそのファイル名を取得したの?
俺がListViewにファイル名を入れる時は、そのファイル群が置いてあるフォルダを指定し、
検索してフルパスを取得し、ファイル名だけ抜き出して表示させるが
この過程においてファイルのパスが分からないという問題は起きないわけだが
どう考えてパスが分からないと導き出した?

これで意味が分からないならもう一度勉強し直した方がいいよ

168 名前:デフォルトの名無しさん [2007/09/17(月) 10:47:43 ]
ググったりしましたがわからなかったので質問です。
私はDEL使いなんですが、会社で前任者が作ったVBソフトのメンテをやることになりました。
内容はimageコントロールの画像の表示方法に関することです。
なにしろ、VBはVBA程度の知識しかないので

カードデータベース風の情報管理ソフトです。
フォームにimageコントロール(以下イメコン)があります。
利用者は自分で撮影したデジカメ写真をフォームに登録して表示させることができます。
しかし、stretch=trueにするとイメコンのサイズに変形されるしfalseにすると一部分しか表示されません。
そこで、フォーム上のイメコンのサイズで収まるようにアスペ比を一定に縮小させる、または、元サイズのままスクロールできるようにしたいんですが、
どうすればいいんですか?

それと、imageコントロールとpictureコントロールの違いって何ですか?

169 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 11:40:31 ]
>>168
アスペクト比一定なら、元画像の縦横サイズとImageの縦横それぞれの倍率を取って倍率の小さい方で
縦横同じ倍率で縮小すればいい。
スクロールする場合は表示位置(x,y)を保持して、スクロールバーの値が変わったときに表示サイズの
縦横分だけ抜き出して表示。スクロールバーの値の範囲は0から元画像の幅−表示サイズの幅
>imageコントロールとpictureコントロールの違い
これくらいは自分で調べてくれ

170 名前:デフォルトの名無しさん [2007/09/17(月) 13:26:51 ]
>>168
IPictureDispに画像を保持してRenderメソッドでPicturBoxに描く。

171 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 10:17:30 ]
質問です。[VB6,WindowsXP]

ボタンを押して始まる処理の中で、DoEventとSleepを使ってかなり長いループを作って
これを実行している最中に右上の[×]で終了させるとボタンの処理が遠い世界に旅立つので
フォームのQueryUnloadで「End」を書いて終了させているのだけど、何か間違っている気がしてならないです。

これで問題はないものでしょか?




172 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 10:37:31 ]
>>171
End命令は即座にVBの実行を停止する命令で、FormのunloadやTerminate、
オブジェクトのTerminateイベントの処理をすべてバイパスする。
ActieX(COM)のアンロード処理も省かれるので、
アウトプロセスサーバーを使ってる場合にActiveX.EXEのプロセスが終了しない。
これらのことが問題にならないなら使っていいよ。

173 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 11:33:16 ]
>>172
ありがとうございます〜

えーと、やっているのはAPIによるPCIボードのアクセスとシリアルの入出力。
シリアルは閉じるとして、APIのほうはClose命令があるのでソレを発行しておけばよいかな…

あと万全を期すため?
EndをQueryUnloadからUnload最後に移動かしら。


174 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:12:48 ]
「これからこのプログラムは強制終了するお」っていうのをフラグ立てて、
遠い世界へ旅立つループ処理に教えてあげてループ処理を抜けさせるようにすれば?

175 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:36:56 ]
>>174
その時は遠い世界へ旅立つループ処理が終わるのを待ってあげないとダメなので本末転倒なんだぜ?

176 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 14:25:03 ]
>>173
自分の場合メッセージボックスを出してループだけ抜けさせて、Unloadイベントをキャンセル。
改めてユーザー側にもう一度終了させるようにした。
下手に一括でやろうとしてプロセスが残るより安心。

177 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 15:51:33 ]
>>174-176
あー。ループのほうでトラップ(?)するというのはスッポリ抜けてたす。

ループでフラグ立て→[×]→フラグでUnloadキャンセル→ループ内で「フラグ消し→Unload Me→Exit sub」
とやってみた。

それっぽくなった。
こっちのほうが幸せっぽいかな。

178 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 19:00:13 ]
遠い世界に旅だつ、とかなんの意味だかさっぱり分からん。
ダメな奴は本当なにやらしてもダメだな。人に通じる文章すらちゃんと書けないのか。

ループでDoEventsなんて、VBプログラマが嘲笑されるときのネタの定型だぞw
しかもなんでSleepかますの?
Sleepの意味分かってるのかねw

179 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 19:03:55 ]
は?DoEventsはループの中でしかつかわねーしアホか

180 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 00:35:49 ]
しかし>>178さんは昔からずーっとこのスレでがんばってるなあ。
久しぶりにのぞいてみたけど健在で驚いたよ。

181 名前:デフォルトの名無しさん [2007/09/21(金) 09:34:37 ]
>>169
ありがとう。

画像を定比で縮小することはできた。
だけど、スクロールバーで足踏み。

スクロールバーを動かすと確かに図形も動くけど、元の画像がそのまま移動するだけ。
つまり画像を左にスクロールすると、右側には、今まで見えていなかった画像が現れるのではなく、ただのブランクになる

もうわけわからん〜



182 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:13:42 ]
デバイスの安定待ちとかの十数msもタイマーか何かに逃げないといけないものなのか?

183 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:41:31 ]
MsgWaitForMultipleObjectsは使うがSleepは使わないな






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

前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