1 :
デフォルトの名無しさん :
04/12/08 22:34:28
2 :
デフォルトの名無しさん :04/12/08 22:35:10
3 :
デフォルトの名無しさん :04/12/08 22:35:36
4 :
デフォルトの名無しさん :04/12/08 22:36:23
5 :
デフォルトの名無しさん :04/12/08 22:38:14
6 :
デフォルトの名無しさん :04/12/08 22:39:44
7 :
デフォルトの名無しさん :04/12/08 22:43:45
テンプレ以上
乙
乙鰈
10 :
デフォルトの名無しさん :04/12/09 03:23:42
教えてください SHELLで起動されたプログラム(.EXE)が起動元のプログラム名を判定するには どうしたら良いのでしょうか? 例 A→B で Bが自分を起動したプログラムがAなら正常、 A以外なら異常を判定したい (Aはログイン&実行権限チェックプログラムという設定で、 認証にかかわる処理を一手に引き受けている。 Bはファイル名を指定して実行等、チェックプログラムを経由せずに 起動される不正を防ぎたい)
Microsoft Visual C++ .NET2003でCのコンソールアプリつくっているのですが、 gprofのような解析ありますか?
誤爆・・・。ここはVBです。
13 :
デフォルトの名無しさん :04/12/09 05:56:53
>10 プログラム名とは? プログラム名がないと起動できないと思ってる?
>13 当然です。
VBで質問なんですが、 開始押したら、いきなりフリーズする原因不明におちいりました。 やっぱ最初からやり直し?
16 :
デフォルトの名無しさん :04/12/09 10:25:49
VB.NETで同じLAN内でファイル転送について色々調べましたがやっぱりわかりません。良いサンプルコードないでしょうか?
Imports System.IO 'コード先頭 File.Copy("hoge.txt", "\\MachineName\FolderName\hoge.txt")
ありがとyございます。 やってみます
クリレポでリストに縦の罫線を書いてるんだが ページの終わりを │ │ └─────────────────────────── のようにしたいんだけど │ │ ──────────────────────────── のように空白が出来てしまう グルーピングは同じ地域(郵便番号)で1種類のみ レポートフッターとグループフッターには集計はないので高さはゼロ 最下部の罫線の横棒はページフッターに設定してある 良い知恵キボンヌ
画面の項目を、日本語と英語で切り替えるために、 外部にxmlで設定できたと思うんですが具体的にはどうやるんでしょうか?
21 :
デフォルトの名無しさん :04/12/09 15:46:11
>19 クリレポってなーに?
>>10 方法はないと思うよ。ダサダサなやりかたなら、以下のような
のが考えられるけど。
・Aからコマンドライン付きで呼び出し、Bはそのコマンドラインから判断する。
・外部ファイルを作ってチェックする。
・レジストリのスイッチを設ける。
など。
24 :
デフォルトの名無しさん :04/12/09 16:47:20
>10 B単独で起動できないようにすればいいだけだよな。何でShellでやるの? 意味分からん。
VB6から.NETへの移行を考え、勉強中の者です。 2つ質問させていただきます。 VB6では、COM EXEを使ってアウトプロセスのサーバを作成できました。 .NETでは、このようなものは作れないのでしょうか。(マネージコードで) それとも、従来の COM を使う必要があるのでしょうか。 (プロセス間通信を主な目的としているので、インプロセスは除外とします) また、.NET コンポーネントで COM の CreateObject のような、実行時バインディングは できるのでしょうか。 以上、どうかご教授願います。
>>23 つか、行ごとの実行で原因を突き止めるのが定番でそ。
しょっぱなからフリーズするなら、よっぽど妙なコード書いてる
っぽいし。
教えてください。 フォームのウィンドウハンドルだけわかっている状態で そのフォームに貼り付けられているテキストボックスの ウィンドウハンドルを取得するにはどのようにすればよいでしょうか? よろしくお願いします。
28 :
デフォルトの名無しさん :04/12/10 10:44:59
VB6から.NETへの移行したばかりの初心者です。 移行後、いきなり壁にぶち当たってしまったのでお知恵を貸してください。 フォームの上に配置した二つのPictureBoxに、透過情報をもった画像をセットします。 背景色をTransparentで透過指定します。 PictureBoxを重ねると、背面の画像が、透過されている所も含めて隠れてしまいます。 調べたところ、親コントロールの情報を描画しているので、 前面にあるPictureBoxをControls.Addを使い、 背面にあるPictureBoxの子ににしてしまえば良い所までわかりました。 しかしコントロールは常に重なっているわけではないので、この方法だと使えません。 Regionを使ったやり方だと、単純な図形や文字は何とかできても、画像となるとあまり現実的とは思えません。 VB6のimageコントロールのように、背面にある画像を表示させる方法はないものでしょうか?
31 :
デフォルトの名無しさん :04/12/10 15:27:07
単純なタイピングゲームを作っています。 テキストに文字列(ローマ字)を表示させる。 フォームがアクティブな時に入力すると、ラベルがOKとNGを表示する。 ここまではできました。 後は、文字列のどこまで入力したかをわかりやすくしたいのですが、 何かいい方法はありませんか? 次に打つ文字を、選択した状態にしようとしてselectstartとlengthを使おうとしたのですが、 なぜか選択されませんでした。 できれば打った文字までのところの色を変えたいのですが、何かいい手はありまんか?
>>31 コントロールを二つ用意して、mid使ってやる方法はダメなん?
RichTextBoxを使ってよりグラフィカルなのにするのも一興。
すいません。選択することはできました。 enabledをtrueと、tabstopをtrueにすると選択することはできました。 しかし、これだとテキストボックスが選択された状態になり、 フォームのkeypressが反応しません。 打った文字までの色を変える方法があれば教えてください。 何かと説明不足でわかりづらいかも・・・
なんでkeypreviewを使わんの?
>24 10です shell起動は客先の要望です(正確に言うとファーストベンダ要求) なので、この部分は変えられません。 起動元のAと起動先のBが会話できれば多分解決できると思いますが (Aのインスタンス情報をBが参照できれば。。。) どのようにすればいいのか分からないでいます。 VB.Netではプロセス間通信のコーディングはどのようにすれば よいのでしょうか?(VB6.0だとDDEが使えたという話も。。。) ご存知の方、教えてプリーズ!!!
回答ありがとうございますm(_ _)m
>>32 さん
すいません。midの使い方わかりません。
検索してもさっぱりでした。詳しくは調べてないけど。。。すいません。
>>33 さん
さらにわかりません。textでいっぱいいっぱいです。
>>35 ありがとうございます。何とかできました。フォームに渡せるようになってるのですね。
ちょっと怪しい動きをしましたが、何とか改良はできそうです。
すぃかすぃ、できれば色を変える方法を・・・
>>37 Dim temp As String = "abcdefghijklmn"
Dim j As Long = Len(temp)
Dim a, b, c As String
a = Mid(temp, 1, 1) 'return a
b = Mid(temp, 1, j) 'retun abcdefghijklmn
c = Mid(temp, 3, 1)'return c
色はデザイン上から変更していいんじゃね?
label1.ForeColor = Color.Red
リッチテキストボックスならSelectionColor
>>36 ttp://d.hatena.ne.jp/N0MURA/20040108 .NET標準のリモート処理ではTCPのポートを使用するのでアンチウィルスソフトとかに引っかかるかも。PC内でポートを使う分には問題ないはずだけど。
WellKnownObjectModeはSingletonの方が良いのか。
AがBを起動時にカウンタを一つインクリメント>Bが起動した時にデクリメントしてマイナスでなかったらOK、とか。
マルチスレッドに耐えられるようにInterlocked使って(イン|デ)クリメントするとか。
まあ内部で秘密の引数をつけて起動、それをチェックすればいいだけの話だけれど。
Bが一方的にAを知る手段はないだろう。
40 :
デフォルトの名無しさん :04/12/10 17:05:59
VBで、起動時の引数ってとれるの?
とれなかったらびっくりだ。 Mainメソッドの引数としてでもSystem.Environment.GetCommandLineArgsメソッドでも楽勝でとれる。
10はアホ。頭固すぎ。ソフトウェア技術者の資格なし。
.netらしく System.Windows.Forms.Control.FromChildHandle を使ってみたのですが他のプロセスのウィンドウだと 取得できません。 権限とかあるのでしょうか?
45 :
デフォルトの名無しさん :04/12/10 18:48:25
普通にEnumWindowとかGetWindowとかSendMessageTimeoutとか使った方がいいんじゃない? 他スレッドのコントロールへのアクセスでさえ Invoke が要求される .Net の Control では、 なんとかしてControl が取得できたところで何も出来ないと思うし。
>>45 そうですか。助かりました。さんくすくす。
47 :
デフォルトの名無しさん :04/12/10 19:47:07
>41 初めて知った。ダイレクトにコマンドラインからプログラム名を 入れたりすることあまりないでしょ。引数って必要なことある?
大抵のアプリケーションは起動時の引数で挙動が変わったりするもんだが。 IEだってurlを引数にすれば自動的にそのページを開けてくれる。
50 :
デフォルトの名無しさん :04/12/10 23:28:53
>48 挙動は立ち上げてから変えたら? わざわざDOSなんか使うことないでしょ。
>50 どこにDOSなんて書いてある?
コマンドラインで iexplore.exe -k
>52 どれへのレスだ?
>>38 さん
レスありがとうございます。
学校でしか出来ないので、月曜までできませぬ。
midの使い方は何とかなりそうですが、後ろのreturnってなんだろう??
えっと、デザイン上ってのはどういうものなんでしょうか?
タイピングソフトのような感じなので、テキストボックスの文字色を
正確に打てた分だけ色をかえたいのです。
テキストボックスには打つ例文をいれています。
途中までの文字を取り出してそこまでの色を変えることは可能でしょうか?
月曜まで時間があるので自分でもしらべてみます。
returnは戻り値。 そーいうレスが返ってくるって事は、ヘルプとか見てないだろ。 なにがしたいかわからんし。 一つのコントロール内で文字色を複数使いたいなら、リッチテキストかPictureBoxを使いな。
基本的な質問を2つもすいません formを2つ作って、片方をhideで隠してる時にもう片方を×で閉じると、 隠してる方のが閉じられてるみたいでプロレスに残るんですが、どうすれば消せるようになるんでしょうか? もう1つはformの初期位置?の設定のやり方・・・ 2つform表示させると片方が隠れて、少しずらしたいんです ほんと初歩的なことですいませんorz
すいません自己解決 ほんと超簡単すぎてもう。。orz
>57 そういうこともあるさ
59 :
デフォルトの名無しさん :04/12/12 11:43:04
VB6からの移行、VS2003環境です 恥ずかしながらVB6の時から、拾ってきたDLLを使って楽をさせてもらっていました VS2003の方からも同じDLLを利用したいのですが、うまく参照設定できません もしかして.netからは既存のDLLは参照できないのでしょうか?
どう上手くできないのか良くワカランが COMだったらほぼ間違いなく参照できるはずだが
VB.NETという言葉は聞いた事あるんですが 「VBが進化したもの」と考えていいんでしょうか? あと、VB言語でプログラムを組む場合 なにか市販のソフトが必要なのでしょうか? トンチンカンな質問かもしれませんがお願いしますm(__)m
>>61 マジレスしてみようか。
> VB.NETという言葉は聞いた事あるんですが
> 「VBが進化したもの」と考えていいんでしょうか?
VBを.NET Frameworkという環境に適応させたもの。
.NETがオブジェクト指向を要求するので、それに併せてVBを本格的っぽいオブジェクト指向言語にしてみた。
> あと、VB言語でプログラムを組む場合
> なにか市販のソフトが必要なのでしょうか?
少なくともVB.NETに関しては、実行環境にコンパイラとライブラリが含まれるので、一通りは無料で可能。
ただしビジュアライズされた統合開発環境(VisualBasic.NET2003)は当然有料。学生なら随分安く買えるが。
今なら次期.NETの統合開発環境のベータ版がMSからフリーでダウンロードできるので、それで雰囲気を味わってみるのも良いかも知れない。
63 :
デフォルトの名無しさん :04/12/12 12:23:17
つまりVB.NETは何の役にも立たないってことですね
>>61 >>62 の適切な解説で理解できないなら、不明な単語から全部ぐぐれ。
おまいさんの質問は「パソコン使いたいんだけど、マウスって何です
か? どうやって操作するんですか?」って感じだ。
65 :
デフォルトの名無しさん :04/12/12 12:32:20
ミエミエのネタにいちいち相手するやつもはっきり言って同罪。 別に掲示板で馴れ合って戯れること自体が悪いとは言わんが、 TPOってもんがあるだろう。 つまりそういうことしたいならもっとそれに相応しい板に行ってやってくれ。
まあ普通なら質問する前に過去ログ読んで、場の雰囲気を察してから 発言する罠。
>>62 どうも答えてくれてありがとうです
早速ダウンロードしてみます
68 :
デフォルトの名無しさん :04/12/12 17:04:01
>>19 アクティブレポートしか使って無いけど、参考になれば
ページフッターは、ページの下を基準に位置が決められる。
乱暴なやり方でいいなら、ページフッターの高さを広げて丁度いい位置にする。
別の方法だと、グループフッターを使ってページが変わったら出力するとか。
そんなプロパティがあったような気がする。無かったらゴメン。
69 :
デフォルトの名無しさん :04/12/12 17:50:50
Private Declare Function FindWindowA Lib "user32" (ByVal cnm As String, ByVal cap As String) As Long Msgbox(FindWindowA(vbNullString, "とあるウィンドウのタイトル")) これを実行してやると、同じウィンドウハンドルが取得できるはずが VB6 246750 VB.net 68961369294375470 と、なんかもう凄く桁とか違うんです なんで?
VBのLong > 32bit VB.NETのLong = .NETのInt64 > 64bit
OK、そういうことは先に言ってくれマイクロソフト リファレンス読まない俺が悪いのは言うまでもない
>>68 Thx
調べてみます
クリレポの市販の参考文献って2冊程度しか出て無くって
しかも初歩的内容しか書いてない
ちょっと込んだことやろうとするとすぐに躓いてしまいます・・・
>71 1つ賢くなったってことにしよう。
75 :
斉藤 ◆kvYxWFRquQ :04/12/13 03:52:28
質問です。
76 :
デフォルトの名無しさん :04/12/13 05:27:03
どうぞ
77 :
デフォルトの名無しさん :04/12/13 05:27:51
まーだー?
78 :
デフォルトの名無しさん :04/12/13 16:20:57
失問です。
てっきり、バカには見えない質問だと思ってたよ。 ‥‥見えないのは俺だけじゃないよな? な?
>79 え?
81 :
デフォルトの名無しさん :04/12/13 22:11:42
>81 ユーザ登録しないと見れないよ。
複数のボタンを動的にコントロールしたいんだけど、6.0であった コントロール配列は無くなったんだよね。 どのボタンを押しても「Handlesを集約したひとつのプロシージャ」 で一括処理、区別はsenderからプロパティを取得するってのは調べ てわかったんだけど、コード側からボタンに働きかけたいんよ。 やっぱりボタンを配列に入れて、ループ処理するしかないのかな? 変数の変化にあわせて、いくつかのボタン.enabledを切り替えたい んだけど、以前みたいに添字で直接制御できたのは楽だったよなぁ。
>>83 ボタンオブジェクトの配列を自前で宣言して、初期化処理でその配列
ひとつひとつにデザイン済みのボタンを代入すればOK
MyButton(3).Enabled=true
なんて記述は普通にできる。俺も以前の方がラクだとは思うけどね。
1,2,3,4,5だけをランダムに出力するプログラムをRandam関数を使ってつくりたいんですけど数学的に難しいです。お願いします。
ランダム値生成関数を自作するんじゃなくて、既存のランダム値生成関数を使って実装するってことだよな。 折角.NETになったのだから、.NETのクラスライブラリを使えば楽勝。 RandomクラスのNextメソッドには下限と上限(ただし、この数値「以下」ではなくこの数値「より小さい」)を指定してIntegerを返すオーバーロードがある。
C++ でいうところの dynamic_cast <*class> に相当するものってVB.NETにはありますか? プロシージャ内で sender を Button だとか、Labelだとかに明示的に型変換したいのですが。
あ、VB.NET のヘルプを「型変換」で検索して自己解決しますた。 CType(変数,クラス) ですね。よく調べもせずに、クソくだらない質問すみませんでした。
123456という入力を12-3456と変換する処理を考えています。 数値でFormat関数で00-0000とすればなるのですが、 入力が123の場合は12-3、1だけなら1_-(アンダーバーはスペース)としたいのです。 Format関数では値が右寄せになってしまうため無理と判断して、 StringクラスのFormatで("{0,-2:G}-{1,-4:G}","12","3456")とすればいいという事まではわかったのですが・・・ これを自作のテキストボックスのプロパティとして実装するにはどうしたらよいでしょうか? 第1引き数をそのまま設定するようにしようかと思いましたが、 区切りの数が毎回違うかも知れないし、そうすると後ろの引き数の数も変わってくるし。 なにかいい方法はありませんか?
文字数が2より大きいかどうかで分けたら良いんじゃない? 12-3456-7890-1234なんてことも考えるならそういうわけにも行かないけど、12-345678901234なら。
>>91 レス感謝です。
今回だけというのであれば確かにその方法でもいけるのですが、
自作のコントロールにプロパティとして実装しようとしているので、
なんとか他の書式にも対応できないかと悩んでいます。
>>92 ボックスを数値しか入力できないようにして、Lenで調べるやり方とかは?
トリップを出力するプログラムはどんなカンジ?
>>92 こんなマニアックなのに汎用性があるとも思えないが……。
他の書式ってことは、"{0,-2:G}-{1,-4:G}" を(あるいはその一部を)プロパティにするなりして変更可能にするってこと?
どのくらいの汎化を考えてるんだろう。
>>95 そうです、その引き数ごと設定するようなプロパティを考えています。
どのくらいの汎化と言われると・・・できるだけやりたいなと。
もちろん
>>91 の12-3456-7890-1234とかも。ちなみに数字だけに入力を絞るってのはできてます。
12-3456と12-34-56を考えると、
第2引き数以降が違うわけで、当然渡された123456を区切る数も長さも違う事になる。
この区切る回数と長さの特定に方法が見つからんのです。
>96 データとしては1234567890で、表示形式をxxx-xxxやxx-xxxx-xxにするだけじゃないの? ハイフン含めたデータで持つなら、DELキーとかの制御がすごい面倒そうだけど。
質問ですがVB.netでチェックボックスでドライブを選択して実行ボタンを押したら、 自動に再起動しチェックディスクを実行する機能を作りたいんですが教えてください。
>>97 現在内部ではそのようにしてますが、xxx-xxxやxx-xxxx-xxにする方法がわからんのです。
100 :
デフォルトの名無しさん :04/12/14 16:50:07
VB.NETってOpenFileDialogを使ってファイルを開くとき、文字コード指定ってできないんだっけ?
101 :
100 :04/12/14 16:51:55
ミス・・・ 文字コード指定を自分で選択できる?メモ帳みたいに
>99 num.ToString("##-###-##") こんなのは?
103 :
90 :04/12/14 18:13:31
>>102 フル桁入力されれば大丈夫なのですが、1234だけの入力だと-12-34と右詰になってしまいます。
これを12-34-と左詰で返すような書式の設定の仕方を探しています。
正規表現で|あたりを使ってやったら?
整形済み文字列をTextBox自身が扱わないなら、整形は呼出側が処理すべきだよ。 書式指定文字列からstring.Formatの引数の配列を無理矢理作ってしまって整形させるコード。 Imports System.Text.RegularExpressions 'コードの先頭で宣言 Private Function DoFormat(ByVal txt As string, ByVal fmt As string) As String Dim i As Integer, match As Match, txts As New ArrayList(), digit As Integer = 0 Dim matches As MatchCollection = Regex.Matches(fmt, "{\d+,-?(?<len>\d+)(:.|)}") For i = 0 To matches.Count - 1 If txt.Length < digit Then txts.Add("") Else Dim length As Integer = Integer.Parse(matches(i).Groups("len").Value) If txt.length < (digit + length) Or i = matches.Count - 1 Then txts.Add(txt.Substring(digit)) Else txts.Add(txt.Substring(digit, length)) End If digit += length End If Next Return string.Format(fmt, txts.ToArray()) End Function
106 :
90 :04/12/14 18:43:58
>>105 俺が実現したい事をあっさりと・・・orz
本当にありがとうございます。正規表現に行き着き勉強を始めたところでした。
ソース解析させていただきます。
107 :
84 :04/12/14 23:02:54
>>83 =
>>85 ちゃうちゃう。そのページに書いてる例では自分でボタンの
インスタンス化やらプロパティの設定やらやっててメンド臭いでしょ。
デザイナでフツーにボタン(仮にButton1)を作っておいて、
フォームの初期化時に
testButtons(1) = Button1
って風に代入しちゃうの。この方が作るのはラク。
>>107 デザイナで作って出来たソースをコピペしたほうが。。。。
109 :
83 :04/12/14 23:41:35
>>107 ああ、そのページはサンプルが3種類あるんで、その2番目って
意味で書いてたんですよ。事前に作ったボタンをForm1_Loadで
配列にひとつずつ読み込んでるやつ。
いまのところ問題なく動いているようなんで、この方法で続けて
みます。
もうひとつ難点がでたんですが、.NETではForm1_Loadは使わず
にコンストラクタでやりなさいって言われたんだけど、用意して
ある初期化ボタンを押すために、Buttonの名前_PerformeClickっ
て記述しても動作してないっぽいんですよ。変数クリアしかやっ
てないんで、宣言時に規定値を明示してお茶を濁してますけど。
>>109 すまん、よく見てなかった。。。ま、いっかw
おいらは客先指定で VB.net をにわかに使ってるだけなんで専門で
やってるヒトに見せれば
>>108 さんみたくご指摘の点は多いかも。
どーもMSの開発環境って、デザイナが吐いたコードをいじると
壊れるイメージがあるもんで。。。動いてるものはいじりたくないんで。。。
もうひとつのモンダイについてだけれど、とりあえず動いてれば
おっけーな考えなんで、なにも答えられないっす。。。
>109 Handlesを調べてみよ。 このプロシージャは、「どのオブジェクトのどのイベントで呼び出すのだ」と 言う宣言(関連付け)をしないとイベントプロシージャにならないからね。 VB6.0以前やAccess VBAに慣れていると踏む地雷の典型だが。
いや、意味が違ったのねスマン。(111はNG) コンストラクタでやるべき事と、Form_Loadでやるべき事は 異なりますね。 変数の初期化は通常コンストラクタですが。 >110 デザイナが書いたコードを弄ると壊れるのは意味を理解しないで 弄るから。(他人が書いたコードでも同じことが言えるでしょう?)
VB.NETで印刷時にプリンタの用紙サイズをソフト開発者側から はがきサイズに設定しておくにはどうすればいいんでしょうか? どなたか教えていただけないでしょうか?よろしくお願いします。
メインフォームをメニュー画面にして、選択するとメニューは最小化し、 新たにフォームを表示することは出来るのですが、そのフォームを閉じる際に メニューのフォームを最大化するための記述がわかりません。 Dim f As New Menu f.WindowState = FormWindowState.Maximized Me.Close() では駄目でした。初心者な質問ですいません(;_;)
System.Web.Mail.SmtpMailクラスを使わずに ソケットでメール送信したい。 どこかサンプルとか参考になるサイトがあったら 教えてください。
>>113 やったこと無いから勘で答えてみる。
『System.Drawing.Printing.PaperSize』
>>114 よくわかりません。
なにがしたいのか、なにがやりたいのか・・・・
DoEventsあたりを使えば出来そうな気もしますが。
>>115 『BATファイル』『SHELL』『DOSコマンド』
がんばれ。
114の問題は、既にあるメインフォームではなく、もう一つ新しいメインフォームを作ってしまってる事だと思われる。 //しかしMenuってクラス名はわかりにくいな。
すいません。書き方がおかしいですね;w; メニューのフォームと給料というフォームがあって、実行すると 最初にメニューのフォームが表れそのメニューのフォームから給料というボタンを押すと 給料フォームが開くようにするイベントなのですが、 その際、メニューのフォームは最小化し、EnabledにはFalseに設定して選択できないようにしたいのです。 そして、給料のフォームを閉じる際には最初のメニューのフォームのEnabledにTrueを設定し、下のように表示したいのです。 モーダルフォームにすれば似たようなことができるのですが、できればメニューは表示させずにタクスバーに格納したいのです。 よろしくお願いします;w;
メニュー画面 ボタンクリックイベント内 frm給与.Owner = Me '(親フォームをメニューフォームにする) frm給与.Show '(給与フォーム表示) Me.WindowState = FormWindowState.Minimized '(メニューを最小化にする) 一方、給与画面 フォームのClosedイベント内で Private Sub frm給与_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed Me.Owner.WindowState = FormWindowState.Normal() '(メニューフォーム表示) End Sub 簡単に言うと開く先のフォームで親フォームを表示させてるだけ
>>118 俺にはその説明でもわからんのだが?
AとBという二つのフォームがあって
AからBというフォームを起動させた時、Aのフォームを最小化してイベントを受け付けなくさせ
Bというフォームを閉じた時、Aというフォームを最大化してイベントを受け付けるようにするってだけか?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim B As New B_Form
Me.WindowState = FormWindowState.Minimized
B.WindowState = FormWindowState.Maximized
B.TopMost = True
B.ShowDialog()
Me.WindowState = FormWindowState.Maximized
Me.Activate()
End Sub
つまり、これじゃダメだってことだよな?
俺って頭悪いな。 「TopMost = True」より、BringToFront()の方がマシじゃん・・・_| ̄|○
>>199 さん200さんありがとうございます♪
200さんのように説明すればよかったですね(*д*)
199さんのようにA(メニュー)のフォームをB(給料)の親フォームとしてするのはナイスですね♪
自分はプログラム初心者なので200さんの記述の分でできるかどうか分からないのですけど、
Bというフォームを閉じたときにAのフォームのWindowStateにMaximizedを設定できるのでしょうか?
自分が試したときは(200さんのような記述ではないのですけど)できなかったもので・・・
今職場で空いた時間に掲示板見ているので帰って試してみますね♪
200さんじゃなくて120さんですね;w; すいませんm(_ _)m
またまたすいません;w; 実際に試せたので199さんを参考に試しで作ってみました。 Aのフォーム Private Sub btn1_Click(略) Dim f As New A '宣言 f.Owner = Me '親フォーム宣言 Me.WindowState = FormWindowState.Minimized 'アクティブなフォームのサイズを最小にする Me.Enabled = False 'ユーザーの受付を不可にする f.Show() 'フォームBを表示する End Sub Bのフォーム Private Sub btn2_Click(略) Me.Owner.WindowState = FormWindowState.Normal '親フォームのサイズを通常に戻す Me.Owner.Enabled = True 'ユーザーの受付を可能にする Me.Close() 'フォームを閉じる End Sub のように記述したのですけれど、子フォームから親フォームに移るとき(Bを閉じてAを通常サイズに戻す)は 成功したのですが、Aのフォームを最小化してBのフォームを表示させるときに Bのフォームは表示できるのですが、最小化された状態で出てきます。 Bのフォームロードイベントに通常サイズに戻すように記述してもうまくいきませんでした。 よい方法ないでしょうか?聞いてばかりですいません;w;
126 :
100 :04/12/15 18:58:13
リッチテキストのテキスト開始点の座標って取得できますか? | ←これの座標です もしくは開始点の隣の文字座標でもいいんですが・・・
>>126 SelStartってリッチテキストでも使えたような。
128 :
100 :04/12/15 19:43:52
>>127 それでできました。
ありがとうございます
>>124 その問いかけに対する答えはすでに出ている。
色々試してみてBのフォームを開けるときにAのフォームで処理せずに、 BのB_Loadプロシージャ内でAのフォームのサイズをNomalにするとうまくいきました^^ みなさんありがとうございました♪
131 :
デフォルトの名無しさん :04/12/16 23:18:40
入力支援のようなものを作っているんですが、、 フォーム上にリッチテキストを配置して下部にDock リッチテキストを親としたリストボックスを配置 「<」が入力された時にリストをその行の1つ下の行に表示 上記の場合、下部の行にきたときリストが見づらいので、その場合は上に表示 したいと思っているですが、なかなかうまくいきません。 つまりフォーム内にリストが必ず見える状態にしたいんですが、何かいい方法はありませんか?
132 :
デフォルトの名無しさん :04/12/16 23:31:11
>>131 質問の仕方に問題ないか?何を聞きたいのかサッパリ理解できない。
何をやりたいかよりも何を聞きたいかを書こう。
読み手の立場に立って、読み手に理解されるかどうかを意識しながら
文書を推敲しよう。
って、こういうことは中学卒業までにマスターしておくべきだろう。。
133 :
デフォルトの名無しさん :04/12/16 23:35:20
>>131 DesktopBounds とかで位置関係を判定しつつリストボックスの位置を変えればいいんじゃない?
>>130 アクティブの時にBringToFrontで前面に出した方が、、、と思わなくもない。
>>131 「<」はキーが押された時にってなら、KeyPressあたりだろうなー。
135 :
デフォルトの名無しさん :04/12/17 17:03:06
136 :
デフォルトの名無しさん :04/12/17 18:04:47
なぜ此処で聞く
137 :
デフォルトの名無しさん :04/12/18 12:44:34
>って、こういうことは中学卒業までにマスターしておくべきだろう。 読解力の方もね。
138 :
デフォルトの名無しさん :04/12/18 14:13:08
>>137 そんな逃げ道残したようなすかしっ屁みたいな言い方しか出来ないのか。
チキンなお方。いやチキンというより頭悪いのな。
間違ってると思うなら堂々と反論したら?
ま、君の知能じゃ無理だよねえ。
139 :
デフォルトの名無しさん :04/12/18 14:13:57
インターネット上の情報を取り込んで、 それをACCESSに登録する、というものを作りたいのですが、 「インターネット上の情報を取り込む」やり方がわかりません。 調べる上でのとっかかりになるキーワードでもいいので教えてください。
System.Net名前空間
142 :
139 :04/12/18 17:33:06
もしかしてWindows XP Home Editionではできないですか?
それはSystem.Web名前空間の一部(ASP.NETに関わる部分)。
>>142 HomeじゃIISうごかんのじゃないかね?
146 :
139 :04/12/18 18:25:42
取得したいのは、ホームページに記載されている情報です。 勉強して出直してきます。 ありがとうございました。
VB.NETのADO.NETでmdbとかに複数ユーザがアクセスする際、 エラーが出ないようにする方法を知りたいのですが、 質問はここでよろしいのでしょうか。データベース板には ADO.NETスレがなかったので。。。汗 以下の手順を踏んでもエラーがでないようにしたいです。 1.ユーザAがプログラムを起動し、サーバのデータを参照する。 2.ユーザBがプログラムを起動し、サーバのデータを参照する。 3.ユーザBがデータを書き換え、更新する。 4.ユーザAがデータを書き換え、更新する。 4の時、Aが更新を行おうとする際、サーバのデータが 1で読み込んだのと異なっているのが原因でエラーが起きて しまいます。。 後で更新処理を行ったデータが最新のものになるように したい(ユーザAのデータ更新)のですが、どうしたら よろしいでしょうか。よろしくお願いいたします。
BeginTransaction
149 :
100 :04/12/18 19:22:51
リッチテキストで指定行の先頭文字ってどーやったら取得できますか?
RichTextBox1.Lines(index).Chars(0)
151 :
デフォルトの名無しさん :04/12/18 22:06:28
すべてのユーザー名を取得したくて Public Const FILTER_NORMAL_ACCOUNT = &H2& Public Structure USER_INFO_0 Dim usri0_name As Integer End Structure Public Declare Function NetUserEnum Lib "Netapi32.dll" (ByVal servername As String, ByVal level As Integer, _ ByVal filter As Integer, ByVal bufptr As Object, ByVal prefmaxlen As Integer, ByVal entriesread As Integer, ByVal totalentries As Integer, ByVal resume_handle As Integer) As Integer とModuleで宣言して Dim lngEntriesRead As Integer Dim lngTotalEntries As Integer Dim pUserInfo As Integer Dim typUserInfo() As USER_INFO_0 Dim bytBuf() As Byte Dim strUser As String lngRet = NetUserEnum(vbNullString, 0, FILTER_NORMAL_ACCOUNT, _ pUserInfo, 10240, lngEntriesRead, lngTotalEntries, 0) としてみたところ'System.NullReferenceException' のハンドルされていない例外が発生しました。 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーがでました。誰かどうすればいいか分かる方教えてください
152 :
デフォルトの名無しさん :04/12/18 22:15:46
PictureBox1.imageを何も表示しない(PB1の背景色だけが見える)ように設定するにはどうすればいいのでしょうか。
>>152 PictureBox1.image = nothing
>>151 WMIで取得するというのはどうか。
'参照の追加でSystem.Management.dllを追加
Imports System.Management
Dim mc As New ManagementClass("Win32_UserAccount")
Dim mo As ManagementObject, prop As PropertyData
For Each mo In mc.GetInstances()
Console.WriteLine(mo.Item("Name"))
Next
156 :
デフォルトの名無しさん :04/12/19 12:37:18
>>155 できた!できました。
本当にありがとうございます
157 :
デフォルトの名無しさん :04/12/19 18:58:24
リストビューのサブアイテムに文字入れてやりたいのですがどうすればいいのでしょうか。
ヘルプに載ってる。
>159 どんまい
161 :
フナ太郎 :04/12/19 20:52:40
.NET tipsとか行ったら、C#のtipsしかなくてムカついた、ってこと ないですか?
163 :
デフォルトの名無しさん :04/12/19 21:56:24
テキストボックスを拡張して、フォーカスが移ると境界線が変わるものを作成しています。 以下のようなイベントにすると、テキストボックス内でTabを押したときに、フォーカスが次のコントロールに移りません。 Private Sub MyTextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter Me.BorderStyle = BorderStyle.Fixed3D End Sub Private Sub MyTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Leave Me.BorderStyle = BorderStyle.FixedSingle End Sub ところが、境界線を変更する命令をなくすと、Tabでフォーカスが移ります。 Private Sub MyTextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter Me.BorderStyle = BorderStyle.Fixed3D End Sub Private Sub MyTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Leave ' Me.BorderStyle = BorderStyle.FixedSingle End Sub 境界線を変更しつつTabでフォーカスを移すには、どうしたらいいでしょうか。
164 :
ケン :04/12/19 22:37:36
directdrawのように、裏画面で背景やキャラクターを合成して、表画面に転送するといったようなことをdirectdrawを参照しないで、GDI+だけで作成することはできますか?
>>163 BorderStyleを変更するとフォーカスが当たりなおされるみたいだね。
BorderStyleを書き換える前後でフォーカスが当たらないようにEnabledをFalse -> TrueにすればOK。
>>164 できるよ。
Bitmapを作って書き込んで、最終的にそのBitmapを表に描画。
166 :
デフォルトの名無しさん :04/12/19 23:07:25
以下のようなプログラムを書きました フォームにファイルをドラッグアンドドロップ →ドロップされたファイルの名前をリストボックスに表示 →ファイルを外部プログラムで処理(その際処理が終わるまで待つ) ソース Private Sub Form1_DragDrop・・・ Dim filename As String = e.Data.GetData(DataFormats.FileDrop, False) ListBox1.Items.Add(filename) Shell("hogehoge.exe " & filename, AppWinStyle.Hide, True) End Sub ところがこれだと、hogehoge.exeの処理が終わるまで(けっこう長い・・・)、 ファイル名がリストボックスに表示されません。 おそらく外部処理の終了まで待つように設定しているからなのですが、 外部処理はいくつかあり、順番を守らないといけないため、 この設定は変えられそうにありません。 リストボックスに表示されてから処理に移るようにするには、 どのようにしたら良いのでしょうか?
Shellを実行する前にListBox1.Refresh()
なんと簡単な・・・orz ありがとうございました!
DoEventsとか、スレッドとかそっち方面でもいけそうだね。
170 :
163 :04/12/19 23:27:44
>>165 以下のように書いたら直りました。
Me.Enabled = False
BorderStyle = BorderStyle.FixedSingle
Me.Enabled = True
が、今度はShift+Tabを押したときの動作がおかしいです。
フォーカスが1つ前のコントロールに移らず、1つ後に移っています。
おそらくコントロールを無効にしたときに、すぐに次のコントロールにフォーカスが移るので、
そこで動作がおかしくなるのだと思います。
これを直すにはどのようにすればいいでしょうか。
171 :
デフォルトの名無しさん :04/12/19 23:39:53
>>170 なんか165が言ってることと全然違うことやってるみたいだけど。。
しかし、こういうのは意図したとおり動作しない原因を考えることも
もちろん重要だけど、それ以上にいろいろ試行錯誤することが重要だと思う。
人に質問する前に、例えばEnter/LeaveじゃなくてGotFocus/LostFocusを使うとか
SelectNextControlメソッドを試すとか、やることあるでしょ?
>>171 聞いて来たらすぐに答える俺らの対応も悪いかもね。
どこで質問したものか迷って、 スレ違いとは思いますが、質問させてください。 今、Visual Stadio .NET 2002、 .NET Framework1.0 の環境で、 これをFramework1.1にしようと思ったのですが、これって出来ないのでしょうか?
>172 しかもへぼい回答だしな。お前の場合。
>173 実際できなかったのかどうかをまず書けよ。
>>175 自分でやった限りではできませんでした。
マイクロソフトのダウンロードサイトから再頒布可能パッケージやらSDKやら落としましたが。
>>177 WindowsUpdateで常に最新の状態を保ってるなら、すでにFramework1.1の状態。
個別で落としてきたって言っても、落としただけじゃ駄目だよな。インストールしないとよ。
質問の意図は、VS2002で.NET1.1を扱えないかということではないのかな。 それなら一言、無理。
180 :
173 :04/12/20 11:13:28
>>178 、
>>179 レスありがとうございます。
>質問の意図は、VS2002で.NET1.1を扱えないかということではないのかな。
そのとおりです。
無理なのですか・・・
>>180 SharpDevelopでも入れたら?
あんまり活気ないけれど、専用スレもあることだし。
182 :
デフォルトの名無しさん :04/12/20 13:08:41
音楽を再生するMMControlについて質問です。 MIDIデータを再生し、一時停止(Pause)した後、再びその位置から再生すると、何故か音色が変わってしまいます。 使った事のある方なら殆どの方がきっと「あれ?」と思うところだと思います。 どうもMMControlでは、頭から再生しようとした場合しか音色設定を読み込んでない気がするのですが、 何か解決方法は無いでしょうか。
183 :
デフォルトの名無しさん :04/12/20 15:23:06
リストボックスにフォーカスをうつすときは Listbox1.focus() で、できるんですがリストの項目自体にフォーカスを移すことってできますか?
184 :
デフォルトの名無しさん :04/12/20 15:40:27
セレクトすりゃ良いんで無い?
185 :
デフォルトの名無しさん :04/12/20 16:27:37
>>184 すまん、そだった(;´Д`)
サンクス
>179 えー、そうなの?なんでなんで?
2002で作成したアプリケーションを.NET Framework 1.1上で動かすことはできる ただ、コード補完等の恩恵を受けられないから新しく加わった機能を使うことが結果的にできない 既存の機能にバグがあって避けたいなら有効な手段かもしれない やり方は・・・忘れた(ぉ exeファイルと一緒になんかファイルを置くだけだった希ガス
よくわからないのですが、 2002 → 1.0 2003 → 1.1 なの?
>>189 そう。
ついでに
2005 → 2.0
Button コントロールを継承した色付きボタンを作成中なのですが、 OnPaint を上書きする以外の方法でフォーカス時の枠を表示させない方法は ないですか? OnPaint 乗っ取って自前の描画部分作ってたら泣きそうになりました。 素の C++ で Windows アプリ書く人はえらいと思いつつ。
Buttonの描画ごときでがたがた言うな。
193 :
デフォルトの名無しさん :04/12/22 13:48:07
リッチテキストのスクロールを一行単位のスクロールにしたいんですが、どうすればできますか?
194 :
デフォルトの名無しさん :04/12/22 14:17:11
>>193 マウスのプロパティでホイールのスクロールを1行に
Dim A as String で、このAに LoadEstimate1,"saved_estimate1" ↑ のような、""を含んだ文字列を入れたいのですが A = "LoadEstimate1,"saved_estimate1"" としても入れることができません。どうしたらよいのでしょう?
"の中に書く"は""
197 :
デフォルトの名無しさん :04/12/23 15:44:08
質問させてください。 データセットのfindメソッドで取得した特定のレコードのpositionを 取得したいんですが、どうすればいいでしょうか? 具体的にやりたいことは、テキストボックスにキーを入力すると 全レコードが表示されているグリッド上で 自動的にそのキーのレコードまで飛んで、選択状態になるようにすることです。 よろしくお願いします。
198 :
デフォルトの名無しさん :04/12/23 20:21:40
VB.NETでメールの送受信をやろうとしています。 送信にはMailMessageクラスやSmtpMailクラスを使えばよい事が判ったのですが、 メールの受信をやってくれそうなクラスが見つかりません。 もしかして.NETのライブラリには受信クラスが無いんでしょうか?
ないよ がんがって自前でSocketをこねこね実装してくれ。 CodeProjectとかGotDotNetとかに転がってると思うけど。
>>199 GotDotNetでCSLMailっていうライブラリを見つけたんですが、これは駄目でした。
よくわかりませんがメールをダウンロードする途中でコケます。
>>200 リンク先で紹介されていたBASP21を使ってみました。
とりあえずファイルへの保存とヘッダーごとの読み取りはうまくいったのでこれを
使ってみようと思います。
>>199 ,200
ありがとうございました。
205 :
デフォルトの名無しさん :04/12/24 16:23:38
Windowsフォームでテキストボックスが1つあるのですが、 例えばテキストボックスにフォーカスが無い状態で キーが押されたらテキストボックスに押されたキーを入力するには どうすれば良いのでしょうか? KeyPreviewをTrueにして、テキストボックスにフォーカスしても キー値は入力されません。
Form.KeyPressイベントで入力文字をテキストボックスに追加する。
ドトネトってネイティブコンパイラついてますか?
>>207 ネイティブコンパイラってCPU命令に変えてくれるコンパイラのことでいいんだよね?
それなら無い。VB.NETのコンパイラはCLRっていう中間言語に変えるコンパイラ。
209 :
デフォルトの名無しさん :04/12/24 17:46:24
>>207 .NETのランタイムにはJITコンパイラとか事前コンパイル用コンパイラとかついてるけど、
.NETランタイム無しで動作するネイティブのバイナリを作る機能はどこにも無い。
海外の市販ソフトにはアセンブリをネイティブな実行ファイルにするソフトもあったりする。
>>208 うーーーん残念です ドトネトに期待していたのですが >>209 JIT?あとで調べてみますが最適化かなにかででしょうか >>210 アセンブリは中間コードのことですね? VBから乗り換えるきがしない OrZ
いままでVBランタイムが必要だったのが、その代わりに.NET Frameworkが必要になるだけじゃん。
ngen(CLR Native Image Generator)コマンドがあるけど、 ネイティブコードコンパイラとは程遠いです。 起動時のモッサリ感がなくなる程度。 あとC++で /clr を付けなきゃネイティブコードをはきます(笑)
>>211 VBよりは言語仕様が大幅に強化されたってとこかな>VB.NET
まぁ、「.NETになって何が良くなったか?」なんてのはいっぱい記事になってるから
適当な雑誌のバックナンバーでも漁ってみるといいよ
その上で乗り換えるかどうか考えたほうがいい
VS2003を買ったんですけど、うちのPCはwinxp HOMEエディションでした・・・。 ウェブアプリの勉強をしたいのですが自分の環境ではウェブアプリ ケーションは作れないのでしょうか・
WebMatrixというのを調べてみな。
すみません。 質問なんですが、 10進数→2進数に変換する関数ってあるのでしょうか? 10進数→16進数や10進数→8進数に変換する関数だったら 見つけたのですが…。
教えて君で申し訳ございませんが、神様助けてください。 MSNメッセンジャーのアラートのような動きのするフォームを作れという客先からの無茶な要求に泣いております。 TCP通信にてメッセージが流れてくれば、そのWinsock経由でデータ取得し表示するform1を作成しました。 で、MSNメッセンジャーのアラーとのように約5秒間ポップアップしてポップアップしたform1クローズなのですが、 クローズする前に次のデーターがWinsock経由で流れてくればform1を新たに開いて表示しております。 (つまり、画面にはForm1が複数個表示されています。) しかし、クローズ処理をしたときに当然ながらform1.closeだと表示しているすべてのフォームがクローズ してしまいます。で、複数個オープンした場合、指定したフォームのみ閉じるということはできないのでしょうか。 そもそも、私のform1だけ使うという考え方に無茶があるような・・・(泣) 神様助けてください! Private Sub Form1_Load Me.Location = New Point(0, 850) Me.Show() Wait(5000) Me.Close() End Sub Winsockからデータが来たときには Dim f1 As New Form1() f1.Location = New Point(x, y) f1.Show() としております。
>>217 System.Convert.ToString(String, Integer)
System.Convert.ToString(Integer, Integer) だった。
>>218 なんだそのコード?
Loadイベントの中でCloseは普通呼ばんだろ。
>>220 ありがとうございます。助かりました。
早速使ってみます。
>>221 すいません、別件でデバッグしていた名残が(汗
Me.Close()は今はありません。失礼しました。
あぁ〜ついでに、Wait(5000)も無い。 駄目だ俺・・・焦りすぎ(泣) ちなみに、Show時にラベルに表示するプログラム部とかは省略しております。
そもそも仕様がよくわからん。 メインフォームがあって、でソケットを受け取った時にForm1が表示されるって訳じゃないのか。 初めにソケットを受け取るものは何なんだ? タスクトレイにでもしまってるとか? ならその部分のコードを示せ。
>>225 さん
すいません、そうです。タスクにしまう予定です。でも、まだ作っておりません。
とりあえず、一つのフォームを何個もオープンさせて、それぞれの開いたフォームを個別制御できるの?
ってところを検証してみようとしている段階なので・・・
って、それだと、Form_LoadにMe.show()あること自体変ですね。
やっぱ、だめだ俺(泣)
そもそも、同じフォームを何個もオープンさせておいて、
それぞれ開いた同じフォームを個別で制御するにはどうしたら良いのでしょうか。
>>226 ユーザーインターフェースを持たないnothifyiconのみの
フォームでそれぞれのFormを制御してみたら?
>>227 さん
ありがとうございます。
ユーザーインターフェースを持たないnothifyiconのみのフォーム
ってどういったフォームですか?申し訳ないのですが教えて頂けますでしょうか。
本当にすいません・・・
まあまず自分でタスクトレイ部分を実装してみようや。
>>228 さん
おぉ〜!! ありがとうございます。
参照させていただきます。
>>230 さん
そうですね。まずはそれをやってみます。
スレの神様たち本当にありがとうございました。
とりあえず、1つずつがんばってやっています。
232 :
デフォルトの名無しさん :04/12/26 19:54:06
OS:Win2000 / VB.NET2003 While sr.Peek() > -1 txts = sr.ReadLine() txt2 = txts.Split("<"c) 'txt2(1) = txts ListBox1.Items.Add(txt2(1)) tlist(cnts) = txts cnts += 1 End While というソースの「tlist(cnts) = txts」の部分で下のエラーがでてしまいます。どうすればいいんでしょうか?
233 :
デフォルトの名無しさん :04/12/26 19:55:22
あ、投稿が切れてしまった。 'System.NullReferenceException' のハンドルされていない例外が test.exe で発生しました。 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。 です。よろしくお願いします。
ぬるぽ
>>232 Redim tlist(cnts)
tlist(cnts) = txts
236 :
232 :04/12/26 20:15:06
237 :
232 :04/12/26 21:35:07
再び質問です。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f1 As Form1 Dim f4 As Form4 f4.MdiParent = f1 f4.Show() End Sub 今度はこれなんですが、 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。 がでます。よろしくお願いします。
238 :
232 :04/12/26 21:36:11
書き忘れです。 呼び出しているのはMDIの子フォームです。
New
240 :
232 :04/12/26 21:44:26
ぐはぁっ >>239 ありがとうございます
またまたまた質問です。 このようなソースを書いたのですが、帰ってきたテキストが文字化けしてしまいます。 どうすれば解決するでしょうか?検索してもさっぱりわからん_| ̄| .....○ Dim tcpClient As New TcpClient tcpClient.Connect("ex7.2ch.net", 80) Dim stream As NetworkStream = tcpClient.GetStream Dim bytsend As Byte() = System.Text.Encoding.ASCII.GetBytes("GET /morningcoffee/dat/" & msg & " HTTP/1.0" + vbCrLf + "Host: ex7.2ch.net" + vbCrLf + "User-Agent: Monazilla/1.00 test" + vbCrLf + vbCrLf) stream.Write(bytsend, 0, bytsend.Length) Dim bytread(4096) As Byte Dim strtext As String Dim intlength As Integer strtext = "" Do intlength = stream.Read(bytread, 0, bytread.Length) strtext += System.Text.Encoding.ASCII.GetString(bytread) 'strtext += Convert.ToString(bytread) If intlength < bytread.Length Then Exit Do End If tcpClient.Close() Dim sw As New StreamWriter(Environment.CurrentDirectory & "\log\" & msg, False, _ System.Text.Encoding.GetEncoding(932)) sw.Write(strtext) sw.Close() MsgBox(strtext) Loop
2chのログが何でEncoding.ASCIIなんだ? 0x7Fまでしか処理できないぞ。
>>242 どうやればいいんでしょうか?
「VisualBasic.NET逆引き大全500の極意」って本の例文をみつつ、やったので・・・
そんなのはこんなとこで聞いてるより VB.NET Encoding でぐぐれ。 2chのエンコーディングってどれですかとか聞くより自分で試せ。
>>244 うまくいきました。ありがとうです。
やっぱサンプル通りはだめっすね
>>245 何がいけなかったのかを理解しないとそのサンプルソースの作者に失礼だよ。
>>245 サンプル通りが駄目じゃなくて、サンプルのコードを理解してないのが駄目なだけ。
今度、.NETを勉強し始めようと思うのですが、 VC++6.0とか6.0のverやっていれば、.NETにすんなり移行できるでしょうか?
全然違うと評判なので、思い立ったが吉日、勉強しようと思ったらさっさと始める。
>245-247 すいません。自演でした。
誰も聞いてない。
>250-251 すいません。自演でした。
254 :
デフォルトの名無しさん :04/12/27 16:10:17
たくさんのプロジェクトを一括でコンパイルする事は 出来ますか?
まずやってから聞こう。
>254 ソリューションのビルドではダメ?
257 :
デフォルトの名無しさん :04/12/27 16:25:32
バッチビルドだし。
>257 ソリューションのビルドでもできるでしょ。
259 :
デフォルトの名無しさん :04/12/27 16:54:55
254です。 >255-258 有難うございます。 バッチビルドで検索したら Devenvにたどり着きました。 ソリューションの方も試してみます。
260 :
デフォルトの名無しさん :04/12/27 23:35:10
音声の.wmaファイルを出来るだけ手軽に再生する方法はありませんでしょうか? .mp3と.wavは調べて分かったのですが、.wmaはなんんか見つかりませんです
261 :
デフォルトの名無しさん :04/12/27 23:40:04
VB使って2chで連投レスできるプログラムって作れないのでしょうか?
>>260 Managed DirectX9のAudioVideoPlaybackクラス。
>261 もっと手軽にできると思うけど。何に使いたいの?
264 :
デフォルトの名無しさん :04/12/27 23:58:16
>>263 手動連投で疲れたから自動化出来ないかなあって思って書き込んだだけです
もうこの板から消えますごめんなさい
>264 いや、別に消えることないよ。連投ってのは具体的にどんな 感じにやるの?同じ投稿を一定間隔で投稿するような感じ?
266 :
デフォルトの名無しさん :04/12/28 00:09:28
>>265 まあ、そんな感じです。要は、スレを埋めるのに必死で手動で書き込んでいるので
一気に自動で梅梅出来ないのかなあって思っただけです。
268 :
デフォルトの名無しさん :04/12/28 00:15:07
>>267 ありがとうございます。挑戦してみます。
269 :
デフォルトの名無しさん :04/12/28 03:17:48
VBを起動できるのですが、なぜか新しいプロジェクトを作って、Form画面を 開こうとすると、『外部コンポーネントが例外をスローしました。』っていう 、画面がでて、何もできない状態です… 色々やってみたんですが、結局、 解決できずじまいです。どなたかわかる方いたら助けてください(T_T)
>269 悲惨だな。再インストールしてみたら?
271 :
デフォルトの名無しさん :04/12/28 15:24:27
>>270 やってみたんですけど、できませんでした…。はじめは、さっき言ったエラーじゃなかったんですけど、そのエラーを
直そうと再インストールした結果、今の状態になってしまいました・・・。もうどうしていいか、わからずじまいです。ほかに
いい方法ってないでしょうか?
OSごと再インストールするのが一番手っ取り早かろうな。
273 :
デフォルトの名無しさん :04/12/28 15:44:37
やっぱり、それしかないですよね。やってみます。ありがとうございます。
それはVB.NETが割れモノの時に出る症状です。すぐに警察に出頭して下さい。
Socketクラスを使用してReceiveをするとき、タイムアウトを 設定したいのですが、どのようにすればよいでしょうか? よろしくお願いします。
SetSocketOption辺りか。
Socket.Selectみたいです。
279 :
デフォルトの名無しさん :04/12/28 16:18:52
>>276 できません。
Socket.Selectにタイムアウトを指定し、タイムアウトしたら処理中断、しなかったら読む、
という感じで頑張ってください。
280 :
デフォルトの名無しさん :04/12/28 21:50:31
すいませんが、どなたか知恵を貸してください。
日付がキーになるレコードテーブルがあって、カレンダーで選択した或る日付の
レコードのみグリッドに表示するようにしようとしていろいろ調べたところ、
http://www.atmarkit.co.jp/fdotnet/dotnettips/129dgfilter/dgfilter.html に書いてあるやり方で実現できました。
が!これをやると、グリッドをクリックして選択した行の各フィールドを
バインドして表示するのコンボボックス等が反応してくれません。
コンボボックス等のデータソースの設定が怪しそうなので、
いろいろモガいているんですが、なんだかよく分かりませんorz。
いいかげんな説明で申し訳ありませんが、同じような事例をクリアされた方がいましたら
コツを教えてください。宜しくお願いします。
割れ物って何?
ぐぐればトップに出る。
>282 「ワレズ」と同義。 くー、こんどはワレズがわかんねーじゃん
ぐぐれば4番目に出る。
285 :
デフォルトの名無しさん :04/12/29 00:02:33
ょぅι゛ょのワレズ
>284 ぐぐった結果が誰でも同じになると思ってる奴発見。
Dim t As New System.Threading.Thread( _ New System.Threading.ThreadStart( _ AddressOf hoge)) hogeメソッドに引数を渡したいのですが どうしたらよいでしょうか?
クラスを自作して、そのプロパティに事前に設定しておく。 ThreadStartにはそのクラスのメソッドを渡す。
初心者な質問ですみません。 VB6ではフォームにunloadイベントを作るときは コンボボックスからunloadイベントを選択すれば自動的に 作成されましたが.netの場合はどのようにすればよいでしょうか? ダブルクリックではloadイベントが作成されますが 同様の手順ではできないでしょうか?
>>286 反応が速かったから、順番も指定したんだけどな。(´・ω・`)
同一時間帯なら、どのマシンでやってもほぼ同じ検索結果になる
と思ってんだが違うの?
つか、その検索結果ページを斜め読みくらいするだろと。
293 :
デフォルトの名無しさん :04/12/29 19:04:20
外部プログラムを呼び出してその出力を受け取りたいです。 たとえば、shell( "dir" )とかで、その標準出力を受け取りたいのですが、 どうしたらいいでしょうか。そのプログラムが hoge.exe だとして、 shell( "dir | hoge.exe" ) でconsole.readline ではうけとれませんでした。。
API直呼び出しでパイプするしかないんでないの?
.NETなんだからProcessクラスを使えと。 Imports System.Diagnostics Dim p As New System.Diagnostics.Process() With p.StartInfo .FileName = "ping.exe" .Arguments = "www.yahoo.com" .UseShellExecute = False .RedirectStandardOutput = True End With p.Start() Console.WriteLine(p.StandardOutput.ReadToEnd())
296 :
デフォルトの名無しさん :04/12/29 19:29:20
あの、VBA何で少し違うかもしれないんですけど、 ExcelVBAでアクティブになっているセルの数を知ることってできないですか?
>>295 ありがとございました。
けど、これだとワイルドカードの展開ができなかったので、
それは自前でやらんといかんですね。。
ファイル一覧が欲しいならSystem.IO.Directory.GetFiles(String, String)でも使えば?
300 :
293 :04/12/29 20:01:20
>>299 いえ、
>>293 のdirは本当に例なので、
ファイル一覧がほしいわけではないです。
でもワイルドカードの展開は System.IO.Directory.GetFiles ですね。
ありがとうございます。
VB.NETでの継承について質問です。 C++だと class test1 : public Base class test2 : private Base と指定する事でtest1ではBaseのpublicメソッドにアクセス出来たり test2のようにするとBaseのpublicメソッドにアクセス出来なかったり と継承先で指定できますがVB.NETで同等の機能は実現出来るのでしょうか? また出来る場合はどのようにすればいいのでしょうか? Public Class test2 Inherits Base と指定しても class test1 : public Base と同等で、 class test2 : private Baseのようにしたいのですが・・・
俺の知る限りでは private継承はできん。全部暗黙public継承
305 :
デフォルトの名無しさん :04/12/30 15:33:51
>304 お前の知識なんて誰も聞いてねーって。 仕様はどうなってんのか聞いてんのよ。 ヘルプ引くのめんどくさくて代わりに利用してんだから、 迅速に的確な回答をしろよな。お前ら全員。
今日は釣り日和ですか?
今日は釣れないでしょう
冬休みは短めだから、まあいいか。
309 :
デフォルトの名無しさん :04/12/31 00:10:46
ちょっと質問してみたいことがありますのでよろしくお願いします。 私の環境で、VB.NETを使用する際、ソースコードを入力したり オブジェクトをフォームへ配置する操作やコンパイル、実行する操作は VB6よりもちょっと遅いなと感じる程度なのですが、 作成したソースコードを一度実行した後、停止し、ソースコードの編集画面に 戻るまでの時間だけが、異様にかかっております。 それも、10秒程度なら我慢できるのですが、20〜30程かかります。 今後アプリ開発のことを考えると、とても作業にならない状況であります。 ためしに、タスクマネージャを起動してCPU使用率などをみても、 全く使用率100%にはなっておりません。また、メモリも十分に空き があります。 そこで聞いてみたいのですが、皆さんの環境ではこのようなことは起きている のでしょうか。 どうぞよろしくお願いいたします。
310 :
デフォルトの名無しさん :04/12/31 00:23:56
>>309 VSのIDEの動作は、確かにセロリン+遅いHDみたいなショボイ環境だと激しく重い。
しかし、恐らく
>>309 はIDEから実行したアプリを終了したときにIDEのエディタが
編集可能になるまでに時間を言っているんだと思うが、30秒もかかるというのは
開発環境のせいとは思いにくい気がする。
アプリの終了処理に問題があるんじゃないの?
それとも、例えばフォームだけの空っぽのアプリでも同じように遅いの?
311 :
309 :04/12/31 01:20:13
>>310 フォームだけの空っぽのアプリで試したところ、遅くなることは
ありませんでした。
再度、終了時に重くなるプロジェクトファイルで以下の3つの終了の仕方
を何度か行ってみました。
1.フォームの右上の×印をクリックする。
2.application.exit() のみを書いたボタンをクリックする。
3.VBの■[停止ボタン]をクリックする。
1と2は遅くなりましたが、3は遅くなることはありませんでした。
どうやらおっしゃるように終了処理に問題があるようです。
調べてみます。スペックを高くすべきかなと本気で思ったりしていた
ところでした。汗
ありがとうございます。
312 :
デフォルトの名無しさん :04/12/31 12:39:35
>310 今時のセロリンは全然遅くないですよ。
>313 あれ?広い意味ではセロリンも遅いって意味かなと思ったんだけど。
帯に短したすきに長し、ってことですよ。 物差しを替えれば「短い」ものが「長い」ものになるのは当たり前。
>315 で?
317 :
302 :05/01/02 16:21:56
あけましておめでとう
>>303 ぐぐってみましたけども、どこにも答えが見当たりません。
当方の見落としでしょうか?
>>304 やはり、出来ないのでしょうか?
知る限りとおっしゃれているようなので、まだ可能性はあると言う事ですよね・・・
>>305 いや、ヘルプでもかなり調べてみましたが分からず
八方塞がりでここに書いた次第であります。
こちら VB.NET 2002 Standerd 、.NET Framework 1.0 SP3 ですが、 System.Web名前空間がありません。 なぜですか?
>317 お亡くなりになった方がいいですよ。
320 :
デフォルトの名無しさん :05/01/03 01:49:05
ある特定のファイルの状態を監視するようなことって出来ますか。 状態というか変更の監視です。 VB.netでつくったアプリ、これはずーっと起動した状態です そいでもって別な操作、たとえばWSH(VBS)によって、ある特定のテキストファイルに 何か文字が書き込まれたとか、内容の変更を察知したら、VB.netアプリが あらかじめ仕込まれたアクションを起こす、みたいにしたいんです。
またか。過去ログ嫁。
>>321 すみません
言われて、もしかしたらFAQなのかと慌ててググったら、それっぽいのが
ぞろぞろ出てきました
>322 そういうこともあるさ。
それと完全に同じにするには標準のコントロールではできない(はず)。 ToolTipコントロールをはりつけて 例えばFormのLoadイベントハンドラ内に ToolTip1.SetToolTip(CheckBox1, "Winny Utilsのログがなんたらかんたら") を書いて Private Sub CheckBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.MouseEnter ToolTip1.GetToolTip(CheckBox1) End Sub こんな感じで呼び出す。
>325 1行目はともかくその後のサンプルは何の意味があるの?
すまん。勘違いしてた。GetToolTipはいらんね。
>>326 ども
>>320 FileSystemWatcherクラス
ツールボックス→コンポーネントから貼り付ければ簡単にできそう。
帰ってきたらためしに作ってみるかな。
>328 お、そんなんあんのか。サンクス
>>318 参照の追加
System.Web.dll
最凶ってのはおみくじ機能じゃなくてHN?
ボタンクリックで、htmlファイル を別のフレームで表示したいんですけど どうすればよいですか?
抽象的すぎて貴方の考える状況を想定するのも困難なのでもっと詳しく書け。
単純に、ボタンクリックした時に、 既にHTMLファイルがあるので(index.htmという名前の) それを、ボタンのあるフォームとは別に、表示させたいんですが どのようにすれば? 本来は、いろいろ他の処理してからなのですが とりあえず、HTMLファイルを開いて表示させたいんで・・
>>334 読み書き保存ができる程度の簡易エディタを作ったことある?
テキストボックス付きの新しいフォームを開いて、そこにファイル
の中身を流し込めばいいだけじゃないかと。
HTMLを表示するだけなのかレンダリングしてなのかも分からないし。
>>その方法がわからないと
>333 >335 >336 基本を理解できていない人間は初心者の質問にはうまく 回答できないといういい例です。
>>339 なあ、もしかしてVB.NETと言うよりASP.NETの質問じゃないのか?
VB.NETですよ
>340 いや、俺わかんないけど知ったかぶって回答はしないってこと。
わかんないけど煽ってみたかった。 自分がわからないのは関係ないと思った。 いまも反発してみる。
>344 誰に何を?
正月早々ご指導いただきたいのですが。。 WinフォームのComboboxなんですが、 DataSourceを設定してタブコントロール上に置くと、 Comboの載ったタブを選択したとたんselectedindex=-1から 強制的にselectedindex=0になっちゃいます。 ここまではM$のサイトで "This behavior is by design." などと書いてあったのであきらめるとして、 今度はDatatableの各DataRowをそれぞれ ComboboxにAddしていくことにしてみました。 今度は"System.Data.DataRow"っていうのが追加した分だけ 表示されるんですが、なんとかDisplaymemberみたいのを設定できないものでしょうか? 偉い人お願いします。
ちなみに items.Addでselectedindexが勝手に変わるのを回避できるのは 調べてわかったんですが。。
できなそうですね、ありがとうございますた
349 :
デフォルトの名無しさん :05/01/05 03:12:01
VS2002ですが、きちんと Namespace A.B.C…としているのに IntelliSenceの自動メンバ名補完では、A,B,Cともにリストに出てしまいます。 これは正常な動作なのでしょうか?
>324 できないわけじゃないでしょ。単にこのスレの住人レベルでは 分からないというだけ。
351 :
デフォルトの名無しさん :05/01/05 08:17:18
>>334 別のフォームに WebBrowserを貼り付けておいて、それにHTMLを、
読み込ませれば良いだけでは。
>>324 よく読んでないがここに書いてないか?
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/shellcc/platform/commctls/tooltip/usingtooltips.htm
というか、ちょっとググってみた感じ結構情報みつかるように思えるが。。
とりあえず人に聞いとけってか?こういう人はPG向かないよな。
353 :
デフォルトの名無しさん :05/01/05 08:55:27
IPアドレスの文字列 127.0.0.1を数値に変換する関数はありませんか?
その数値というのはSystem.Net.IPAddressクラスで扱われるLong値でいいのかね。 それならSystem.Net.IPAddressのParse静的メソッドとAddressプロパティを組み合わせればいいが。
>>355 ありがとうございます。
いただいたヒントを元に
Dim le As New IPEndPoint(System.Net.IPAddress.Parse("127.0.0.1").Address, 10000)
とやってみたのですが
Dim le As New IPEndPoint(Dns.Resolve(System.Net.Dns.GetHostName()).AddressList(0), 10000)
ですとacceptできるのですが上だとできませんでした。
どこが問題なのでしょう。
127.0.0.1をipconfigなんかで出したIPアドレスに変えるか、 System.Net.IPAddress.Parse("127.0.0.1").AddressをIPAdress.Anyかにして やってみて
単にサーバとクライアントで使ってるIPが違うだけという話じゃないか? あとIPEndPointのコンストラクタは(IPAddress, Integer)って引数のオーバーロードもあるから、 わざわざ.Addressを取得する必要はないよ。
>>357 IPAdress.Anyでacceptできました。ありがとうございました。
>>358 すみません。
勉強します。
はじめまして ASP.NETを使用し、Webアプリケーションを作りたいのですが、サーバPCのスペックはどれくらいを推奨しているのでしょうか? 教えてください。
>>352 探してもなかなか見つかりませんでした。
英語わかんないけどやってみます。
>>350 は違う人です。
364 :
デフォルトの名無しさん :05/01/05 13:56:42
初めまして。 VB.NETにて複数のテキストを読み込み、一つのテキストファイルにまとめるたいと思います。 ファイルをひとつづつ、read to endメソッドで読み込むプログラムを作ったのですが、他にもっとスマートな方法がありますでしょうか。 恐れ入りますが、ご教示頂ければ、幸いです。
>>361 老婆心ながら、初心者って書くのはやめとき。
言い訳がましくとられる。
366 :
デフォルトの名無しさん :05/01/05 15:48:43
>>364 Process.StartでDosのCopyコマンドで連結すれば。
367 :
364 :05/01/05 17:53:36
366様 早速のご回答、ありがとうございました。 おかげさまで、スッキリさせることができました。 本当に感謝致します。
>>351 別のフォームに WebBrowserを貼り付けておいて、それにHTMLを、
読み込ませれば良いだけでは。
このやり方が、わからんとです。
だれか丁寧に教えてください。
369 :
351 :05/01/05 18:37:44
WebBrowserの貼り付けかたと、HTMLの 読み込ませかたとです。つまり全部ですorz
>365 死ねば?
System.Windows.Forms.Help.ShowHelp()でヘルプを表示できますが、 親コントロールとして Me(フォーム) を指定すると、ヘルプがフォームの 前面に表示されてしまいます。別プロセスとして起動したときのように、 フォームがアクティブになったらフォームがヘルプの上に来るように したいのですが、ShowHelp()では無理でしょうか。 なお、Nothing を指定した NullReferenceException が発生して しまいました。
>372 訂正します。 Nothing を指定した → Nothing を指定したら
374 :
デフォルトの名無しさん :05/01/05 20:17:24
>>372 Controlクラス辺りのインスタンスを適当に作って、それをShowHelpの引数にするとか。
>372-373に補足 >372ですが、一応別プロセスとして起動する方法で回避しました。 が、もしShowHelp()のパラメータで回避する方法があったら 教えてください。 別プロセスにすると、 ・ヘルプを開いて本体を閉じる→ヘルプも閉じる。 ・ヘルプを開いてヘルプを閉じて本体を閉じる→ちゃんと閉じるw ・ヘルプを二重に開かせない。 とかちょろっと書かなくてはならなくて、ちょっとイヤなので・・・
375は鮮やかにスルーか。
378 :
デフォルトの名無しさん :05/01/05 22:09:42
C#で恐縮です。よろしくおねがいします。 以下のようなメソッドがあると仮定します。 メソッド { if (略) { bool a result1 = true; } if (略) { bool result2; result2 = true; } if (result1 == true || result2 == true) { (終了); } } result1 とresult2 がtrueになったときに 一番下の(終了)という部分を実行したいのですが、 ビルドをすると「未割り当てのローカル変数が参照されました。」と 表示されエラーになってしまいますが、何が原因なのでしょうか。 よろしくおねがいします。
…
>result1 とresult2 がtrueになったときに > || ?
質問です Windowsが起動するたびに実行される (スタートアップ)アプリケーションは どう殺ったら出来るんでしょうか レジストリ操作が必要なんでしょうか
スタート→プログラム→スタートアップの中にショートカットを作ればできます。
385 :
デフォルトの名無しさん :05/01/06 07:37:48
「どう殺ったら」 ろくなもんじゃねーな
>>374 WebBrowserの貼り付けかたわかりました。
でもhtmlファイル読み込ませて表示できません。
どうやるのでしょうか?
388 :
366,369,374 :05/01/06 13:51:17
389 :
388 :05/01/06 13:55:01
お!ふぁいるか? AxWebBrowser1.Navigate("c:\a\index.html")
>>389 ありがとうございました。
こんな事も分からない自分が恥ずかしいorz
391 :
389 :05/01/06 17:28:06
>390 VB.NETだって誰かが勝手に考えて作ったものだから、 始めは分からなくて当たり前、少しやってりゃ 勘で分かるようになるさ。
質問をさせて頂きます。 正規表現を使って文字列の中にある、複数個の4桁の数字をすべて取り出したいのですが、 どうも正規表現の使い方が理解できずにいます。 皆様のお力をお貸しくださいませ。宜しくお願いします。
>>392 動くかどうか知らんが
Imports System.Text.RegularExpressions
Dim m As Match = Regex.Match(inString, "[\d+-]")
While (m.Success)
if len(m.Value)=4 then
(略)
end if
end while
膣門です。 VB.NETでwavファイルを再生するにはどうしたら いいですか?
じゃあ
>>395 をふまえて動くことを確認したコード
Imports System.Text.RegularExpressions
Dim strText As String = "元の文字列"
Dim m As Match = Regex.Match(strText, "\d{4,}")
While m.Success
If m.Value.Length = 4 Then
'〜ここに必要なコードを書くこと〜
'〜m.Valueに欲しいデータは入っている〜
End If
m = m.NextMatch()
End While
>>395 さん、
>>397 さん、ありがとうございます。
397記述のコードで動作しました。
VB.netのTipsがあるHPをまわったりMSDNを読んだりしたのですが、
結局どうしたらいいのか理解できず困っておりました。
お力添え大変感謝いたします。ありがとうございました。
指定したIPアドレスに到達可能かどうか調べるには どうすればいいでしょうか。
ping
>402 それはVB.NET?
>>401 がVB.NETの質問なのか?っていう気もするな(笑
>404 すいません。VB.NET質問スレなのでその辺ははしょってしまいました。 .NET Frameworkのクラスを使って実現したいです。 例えばSocket.connect してみてSocketExceptionが出たら 到達不可、とかはできると思うのですが、どうもスマートで なくて・・・
>>405 途中のFirewallやらルータやらの設定うんぬんを考えると、
確実なのは実際に行いたい操作を行ってみるってことだと思う。
Connectするなりなんなり。
外部からのPingに応答しないホストもあるし (ex. www.yahoo.co.jp)。
>406 >外部からのPingに応答しないホストもあるし (ex. www.yahoo.co.jp)。 そうなの?普通にコマンドプロンプトから ping www.yahoo.co.jp って打つと普通にReplyあるけど・・・ そういう意味じゃないのかな?
>>407 さっきは応答しなかったけど今やって見ると応答する ヽ(@д@)ノ
DNSラウンドロビンで応答しないサーバに当たってたのか?
>408 どんまい
つっても、pingはじく設定はできるのでやはり繋ぎたいプロトコルで繋いでCatchするのでいいんじゃね? つーか、それ以外あるまい。
>410 サンクス
412 :
デフォルトの名無しさん :05/01/07 01:49:00
一つ質問。 EXEでビルドしたアセンブリは、COMClass属性を適用して、RegAsmで タイプライブラリ吐かせても参照できないの?
>>412 .vbprojをいじってやれば.exeも参照できるよ。
414 :
デフォルトの名無しさん :05/01/07 02:41:37
なんで実行ファイルがこんなに遅いのかと
>414 Debugだから。もしくはお前のプログラムがダメだから。 ソース公開してみ。
416 :
デフォルトの名無しさん :05/01/07 11:32:21
>>414 中間言語だから遅いのよ。
速いの必要な人は、C++をどーぞ。
>>417 だったらngen使えばいいじゃん。
中間言語だからって、(ネイティブコード生成以外で)遅いということは基本的には無いはず。
418 :
デフォルトの名無しさん :05/01/07 13:41:30
中間言語を使用すればオーバーヘッドって物が増えるだろう。 C.NETがC++より遅いのは世界の常識、議論の余地無し。 以下この件打ち切り。
419 :
412 :05/01/07 13:42:41
>>413 VB6ではうまく参照できたのですが、.NETだとうまくいきません。
VS.NET 2002, Microsoft .NET 1.0.3705 です。
*.vbproj は、唯一 COM と関係ありそうな RegisterForComInterop を "true"
にしましたが、書き換える場所を間違えてしまったのでしょうか?
[ビルド後、COM-EXE.exeへ参照]
S:\COM-EXE\bin\COM-EXE.exe への参照を追加できませんでした。
これは有効なアセンブリまたは COM コンポーネントではありません。
拡張子 '.dll' を持つアセンブリまたは COM コンポーネントのみを
参照することができます。
[regasm.exe]
C:\>regasm s:\COM-EXE\bin\COM-EXE.exe /tlb:s:\COM-EXE.tlb /verbose
Microsoft (R) .NET Framework Assembly Registration Utility 1.0.3705.0
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.
型は正常に登録されました。
型 TestClass がエクスポートされました。
型 _TestClass がエクスポートされました。
アセンブリは 's:\COM-EXE.tlb' にエクスポートされ、タイプ ライブラリは正常に登録
されました。
[regasm 後、COM-EXE.tlbへ参照]
'COM-EXE' への参照を追加できませんでした。
タイプ ライブラリを .NET アセンブリに変換できませんでした。
タイプ ライブラリ COM-EXE は CLR アセンブリからエクスポートされたため、
CLR アセンブリとして再度インポートすることはできません。
アセンブリなら.vbprojのReferences要素の中に、.exeを指定したReference要素を追加すればよし。 COMもregasmもいらない。 .exeの配置に気をつけてな。
>>420 の方法で見事参照に成功しました。
今まで長い間Googleなどで検索してきて、正直諦めようかと思っていたところでした。
本当にありがとうございました。
# EXEでもきちんと参照できるのに、なんでVSは参照設定ダイアログでEXEを弾くんだろう…?
>>421 EXEを参照せざるを得ない状況ってのがいまいち想像出来ないんだが。
なんでDLLにしないんだ?
>422 言葉遣いが悪いですよ。
DataGridColumnStyle.GetColumnValueAtRow()の戻り値って NULLチェックしないとダメ?
MSペイントみたいに、指定した座標の色と同じ色の領域を塗りつぶすような処理をしたいのですが 探してみても指定矩形領域塗りつぶしとか指定楕円領域塗り(ry だったりとかで、どうにも方法が思いつきません。 一般のグラフィックソフトで言う”塗りつぶし”の処理を行うにはどうしたらよいでしょうか?
>425 理由は?
ここはネットの海にたゆたうチラシの裏だから。
>428-429 自演乙。別に悪いことじゃないけど。
>>431 おまいさんが新成人±4歳で美処女なら喜んで。(w
>>426 APIのFloodFillかFloodFillEx
>>432 残念!おいらは新成人±10歳のオサーンでつw
>>433 調べてみたんですが、どうやらVB→VB.NETの仕様変更で(型が合わんとかGDI、GDI+云々)
.NET上でどうExtFloodFillを扱っていいものかよく分かりませんです…。
もしよろしければご教授を…(つД`)
437 :
デフォルトの名無しさん :05/01/08 01:35:11
すいません、VB.NETでサービスを作ろうとしたのですが、VBのみを買ってきたせいか、サービスプロジェクトがありません。 どなたか、よい方法をご存知ないでしょうか? よろしくご教授願います。
自分のIPアドレス文字列(192.168.1.1)を取得するには どうしたらいいでつか・・・?
>356の下のコード(の一部)を使ってIPAddressクラスを取得して.ToString()。
グラフィックからHDCを取得したところ( g.GetHDC( ) )IntPtr型が戻り値になっているため FloodFillの引数のHDC( Int型 )と型が合わないといわれます。 色の値もIntegerとの事ですが、これはColorTranslatorによる変換でよろしいのですかね? そして現在のブラシの色で塗りつぶすとありますが、このブラシの色をどこで設定するのかが分からずまともに動きません…orz Dim b as New SolidBrush(ry では無さそうですし…。 ちなみに今 Dim bmp As Bitmap = New Bitmap(256, 256) Dim g As Graphics = Graphics.FromImage(bmp) Dim hdc As IntPtr = g.Gethdc() (゚Д゚)?? g.ReleaseHdc(hdc) ( bmpはonPaintをオーバーライドして描画 ) こんな感じで詰まっております(´・ω・`)
ExtFloodFillの定義のhDCをIntPtrで宣言してやればよし。 色はColorTranslator.ToWin32でOK。 描画にWin32APIを使うならグラフィクスオブジェクトもWin32APIの作法に則ってやらないといけない。 以下の関数は全部Win32API。Declareで宣言する必要があるぞ。 CreateSolidBrushでブラシを作成。 SelectObjectで作成したブラシを選択。 ExtFloodFillで描画。 SelectObjectで作成したブラシから元々選択していたオブジェクトに戻す。 DeleteObjectで作成したブラシを削除。
User Agentを自分独自のものにカスタマイズしたいのですが、どうすればいいいのですか?
>>441 さん他に教えていただいたことをもとに以下の様なソースを書いてみたのですが動きません…orz
Private bmp As Bitmap = New Bitmap(256, 256)
Private Graph As Graphics = Graphics.FromImage(bmp)
Public Function Fill(ByVal FillColor As Color, ByVal x As Integer, ByVal y As Integer) As Integer
Dim hdc As IntPtr = Graph.GetHdc()
Dim brs As Integer = CreateSolidBrush(ColorTranslator.ToWin32(FillColor))
Dim old As Integer = SelectObject(hdc, brs)
Dim CrColor As Integer
Dim ret As Integer
'Me.GetPixel():マウスダウンされた座標点の色
CrColor = ColorTranslator.ToWin32(Me.GetPixel(x, y))
ret = ExtFloodFill(hdc, x, y, CrColor, 1)
SelectObject(hdc, old)
DeleteObject(brs)
Graph.ReleaseHdc(hdc)
End Function
どこかご指摘点ありますでしょうか(´;ω;`)
日本語おかしい奴おおすぎ
>439 ありがとうございます。 ちなみに似たような方法でサブネットマスクも取得できますか?
クリレポのシリアル付きインストーラつくったのだが インストールしたら実行時「COMコンポーネント〜エラー」が出る・・・ 必要なファイルは全部含めてるんだが・・・
すいません。>445なんですが、どなたかご存知ないでしょうか。
>>443 GetDCするだけじゃ無理らしくて調べてたら説明するよりコードを書いた方が分かりやすくなったのでサンプルクラスをかいとく。
基本はイメージのサイズ指定してのNewすることで一つ四角を描画、あと任意にDrawRectangleで四角を追加。
FillFloodで指定位置の色の連続している部分を塗りつぶし。Bmpフィールドで描画結果を取得。
本文長杉だそうなのでインデントも無きが如し。
Public Class FillFloodTest
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As IntPtr) As IntPtr
Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal color As Integer, ByVal filltype As Integer) As Boolean
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As IntPtr, ByVal obj As IntPtr) As IntPtr
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal color As Integer) As IntPtr
Private Declare Function DeleteObject Lib "gdi32" (ByVal obj As IntPtr) As Boolean
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As IntPtr) As Boolean
Public Bmp As Bitmap 'Getのみのプロパティにしたいけど行がもったいないのでフィールド直接Public
Public Sub New(ByVal width As Integer, ByVal height As Integer)
Bmp = New Bitmap(width, height)
Clear(Color.Brown) '何となく決めうちで茶色でクリア
DrawRectangle(Color.Red, 100, 100, 100, 100) '何となく決めうちで初めの四角を描画
End Sub
Public Sub DrawRectangle(ByVal line As Color, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer)
Dim g As Graphics = Graphics.FromImage(Bmp)
Dim p As New Pen(line)
g.DrawRectangle(p, x, y, width, height)
p.Dispose()
g.Dispose()
End Sub
Public Sub Clear(ByVal back As Color)
Dim g As Graphics = Graphics.FromImage(Bmp)
g.Clear(back)
g.Dispose()
End Sub
Public Function FillFlood(ByVal fillColor As Color, ByVal x As Integer, ByVal y As Integer) As Boolean Dim baseColor As Integer = ColorTranslator.ToWin32(bmp.GetPixel(x, y)) 'ほんとはGetPixelで例外処理が必要 Dim filler As Integer = ColorTranslator.ToWin32(fillColor) Dim g As Graphics = Graphics.FromImage(bmp) Dim originalDC As IntPtr = g.GetHdc() Dim hBitmap As IntPtr = bmp.GetHbitmap() 'BmpのWin32APIで扱えるビットマップ表現HBITMAPを取得 Dim compatibleDC As IntPtr = CreateCompatibleDC(originalDC) '元DCとExtFloodFillで扱うDCに互換性がないので、互換DCを作成。以後描画するのはこの互換DCになる Dim oldSelectedHbitmap As IntPtr = SelectObject(compatibleDC, hBitmap) '互換DCにHBITMAPをセット。互換DCの描画対象が元画像になる Dim brush As IntPtr = CreateSolidBrush(filler) Dim oldSelectedGraphicsObject As IntPtr = SelectObject(compatibleDC, brush) '互換DCにブラシをセット Dim result As Boolean = ExtFloodFill(compatibleDC, x, y, baseColor, 1) '互換DCで塗りつぶし
Dim newBitmap As Bitmap If result Then newBitmap = Image.FromHbitmap(hBitmap) '塗りつぶせたら、描画したHBITMAPから.NETのBitmapオブジェクトを作成 DeleteObject(SelectObject(compatibleDC, oldSelectedGraphicsObject)) '互換DCのブラシを元に戻し、返ってきた自分で作ったブラシ(brush)を削除 DeleteObject(SelectObject(compatibleDC, oldSelectedHbitmap)) '互換DCのHBITMAPを元に戻し、返ってきた"既にImageオブジェクトを作って用済みのhBitmap"を削除 DeleteDC(compatibleDC) '不要になった互換DCを削除 g.ReleaseHdc(originalDC) '使い終わったDCを解放 g.Dispose() '使用済みGraphicsオブジェクトをDispose If result Then '塗りつぶしに成功していたら Dim originalBitmap As Bitmap = Bmp '描画前の画像を持つBitmapは後でDisposeするために待避 Bmp = newBitmap 'Bitmapを描画後の画像のものに差し替え originalBitmap.Dispose() '以前のBmpだったビットマップはDispose End If Return result '成功したらTrueを返す End Function End Class こうなるって分かってたらインデントとかまともにすべきだった……。
ていうかなんか
>>443 のソース見る限り
>>435 の場合Win32APIとか以前にグラフィックの基本が分ってないようだから、
>>448-450 みたいなの書かれても理解できないと思う。
グラフィックの基本が分ってないとしか思えないでしょ。
どう考えてもBitmapとかGraphicsが概念的に理解できてない人のコードだよ。
こんなの人に聞くよりMSDNでも読んだほうが100倍早いのになんでそういう
手間を惜しむんだろうねえ。。
それに恐らくこういうコード書く人はクラスもわかんない可能性高い。
ていうかBitmap返すクラスってなんか使いにくそう。
私だったらGraphicsをメソッドの引数に取るかコンストラクタで食わせるかするなたぶん。
>>451 > ていうかBitmap返すクラスってなんか使いにくそう。
> 私だったらGraphicsをメソッドの引数に取るかコンストラクタで食わせるかするなたぶん。
あーうん。
元々はもうちょっとクラスとして意味のある構成を考えてたんだが、
掲示板に貼るのに最低限の部分だけにしたらクラスにする意味がすっかり薄れてしまったのさね。
ただGetHbitmapの為にBitmapインスタンスも必要というのが悩ましい。
//BitmapのHdc>BitmapのHdcにBitBltするにもこの操作が必要だし。
//なんかないかなー。
>>451 >それに恐らくこういうコード書く人はクラスもわかんない可能性高い。
VB.NETへの移行過程でその手の厨房は淘汰されるので今しばらくのご辛抱を。
.NETになって格段に日本語ドキュメントが充実したからなあ。まず読め、読みまくれ。 宝の山ですぞ!
まったくもって頭が上がりません…。
>>448 さん他非常にありがとうございました
謝罪のしようもありません。
>>452 さん、
>>454 さんの仰るとおりMSDN穴が開くほど読み倒してきます(`・ω・´)
457 :
デフォルトの名無しさん :05/01/09 04:31:45
すいません、VB.NETでサービスを作ろうとしたのですが、VBのみのやつを買ってきたせいか、サービスプロジェクトがありません。 どなたか、よい方法をご存知ないでしょうか? よろしくご教授願います。
すいません。>445なんですが、どなたかご存知ないでしょうか。
Imports System
Imports Microsoft.Win32
Public Class SubnetMaskGetter
Shared Sub Main(ByVal args As String())
Dim interfacekeys As String = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey(interfacekeys, False)
If rk Is Nothing Then
Console.WriteLine("キーはなさげ")
End If
Dim s As String() = rk.GetSubKeyNames()
Dim sk As String
For Each sk In s
Dim rrk As RegistryKey = Registry.LocalMachine.OpenSubKey(interfacekeys & "\" & sk, False)
Dim v As String() = CType(rrk.GetValue("SubnetMask"), String())
Console.WriteLine(sk)
Console.WriteLine(v(0))
Next
End Sub
End Class
http://support.microsoft.com/kb/q120642/
>>442 HttpWebRequestクラス
Imports System
Imports System.IO
Imports System.Net
Public Class UAHttpAccess
Shared Sub Main(ByVal args As String())
Dim hr As HttpWebRequest = WebRequest.Create("
http://127.0.0.1:10000 ")
hr.UserAgent = "SaikyoVBChubo"
Dim wres As WebResponse = hr.GetResponse()
Dim st As Stream = wres.GetResponseStream()
Dim sr As StreamReader = New StreamReader(st)
Dim s As String = sr.ReadToEnd()
Console.WriteLine(s)
End Sub
End Class
>460 うーん、レジストリから取得するってことですよねぇ。 他の方法をお願いします。もっとスマートなやつ。
すみません,質問です. ListBox に現在のプロジェクトにあるフォームをリストアップし, そこから選んだアイテムに対応するフォームを開く,という処理を行ないたいのですが…… まず,現在のプロジェクトにあるフォームのリストを取得する方法がわかりません orz で,とりあえず固定でフォーム名のリストを持たせてやってみようと思ったのですが, 今度は,ListBox から取得した文字列で示されるクラスを作る方法がわかりません orz Dim f = New Form1() の「Form1」とかの部分を変数で指定できれば……と思ったのですが, この発想自体が無理っぽいでしょうか?
Imports System.Reflection ----------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim asm As [Assembly] = [Assembly].GetExecutingAssembly() Dim t As Type For Each t In asm.GetTypes() If t.IsSubclassOf(GetType(System.Windows.Forms.Form)) Then ListBox1.Items.Add(t.FullName) End If Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim s As String = CType(ListBox1.Items.Item(ListBox1.SelectedIndex()), String) Dim asm As [Assembly] = [Assembly].GetExecutingAssembly() Dim f As Form = CType(asm.CreateInstance(s), Form) f.Show() End Sub 'Button1,Button2,ListBox1配置
おぉー とても感謝です.ありがとう! # Assembly までは辿り着けたんですが GetExecutingAssembly() まで行けてませんでした orz
>463 おお、なんかかっこいいな。
質問です! あるものを処理し(具体的にはJavaなのですが)、その結果をhtmlで作成 もしくは元からあるhtmlファイルに上書き、それをVBで表示さ せたいのですが、そのhtml作成(更新)されてから、読み込んで 表示させるにはどのようにすればよいのでしょうか?
>467 いや、気持ちは分かるんですが、もっとスマートな方法を 知りたかったので。他の方、分かりませんか?
WMI使うとか
>470 どうも。 ところでみんなわりぃ、サブネットマスク取得する必要 なくなっちゃったよ。まぁよくあることだわな。
ばかじゃないの
Private Sub FileSystemWatcher1_Changed(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed Dim fi As FileInfo = New FileInfo(e.FullPath) While fi.LastAccessTime = DateTime.Now System.Threading.Thread.Sleep(1000) End While AxWebBrowser1.Navigate(e.FullPath) End Sub 'FileSystemWatchr1,AxWebBrowser1(Microsoft Web Browser)配置
補足追加 Imports System.Management 参照の追加 System.Management
>474 お前色々ソース出してるけど、その読みにくさなんとかしろ。 全角スペースでインデント付けろ。
477 :
デフォルトの名無しさん :05/01/10 10:20:58
分かってると思うけど↑みたいのいちいち構うのよそう。 こういう人はそのうち自作自演で「構い」だすだろうが、そっちも含めて放置で。
>477 なんで?ソースを読みやすくしてほしくないの?
While fi.LastAccessTime = DateTime.Now System.Threading.Thread.Sleep(1000) End While こう書いたほうが読みやすいとは思わんのかね?
Thread.Sleepを使うとフリーズしちゃうでしょ(笑)
>>477 の↑は「最凶VB厨房」に向いてると思われ。
>482 いいの?じゃなくて、いいのですか?くらい書いてもらえますか?
すいません、MainMenuでヘルプメニューを作って、 それをクリックすると、txtファイルをよび出すようにしたいのですが、 どうすればいいのですか?
txtファイルをどうしたいのかによるけれど。 関連づけられたエディタで開きたいのなら、System.Diagnostics.Procss.Start
む、eが抜けた。System.Disgnostics.Process.Start
488 :
デフォルトの名無しさん :05/01/10 14:16:15
>>486 どうもです。できました。
>>488 すみません、なんと表現していいのか分からなかったもので^_^;
486さんの解釈の通りです。
>>485 ヘルプテキストをhtml化して、ブラウザに投げるのが簡単。
>490 はぁ?
>>473 〜475
ありがとう。でも、馬鹿すぎてよくわからんとです。
どこで何やってるのか誰か解説キボンです。
>492 あなたは馬鹿じゃないですよ。質問者のレベルに合わせた 回答をできない方が馬鹿なんです。
>494 根拠は?そうでないと証明もできませんが。 あなたは出来るの?
自演じゃないですが、自演だったとして何か不都合がありますか? どちらにしろあなたが馬鹿だという事実は変わりませんよ。
うんそう、満足に初心者に一から教える事もできない、自演と決めつけて心の安寧を貪る馬鹿の巣窟の日記帳だから。 賢いあんたはこんな芥溜め痰壷に近づかない方が良いよ。
498 :
デフォルトの名無しさん :05/01/10 16:13:06
>>492 あなたに対する解答は473だけ
474〜475は471に対するもの、もういらないようだけど。
そのくらいは分かるよね。
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || 図星だと Λ_Λ いいですね。 || こうなります。 \ (゚ー゚*) ||________⊂⊂ | ∧ ∧ ∧ ∧ ∧ ∧ | ̄ ̄ ̄ ̄| ( ∧ ∧ ( ∧ ∧ ( ∧ ∧ | | 〜(_( ∧ ∧ __( ∧ ∧__( ∧ ∧ ̄ ̄ ̄ 〜(_( ∧ ∧_(∧ ∧ _(∧ ∧ は〜い、先生。 〜(_( ,,)(_( ,,)(_( ,,) 〜(___ノ 〜(___ノ 〜(___ノ
質問スレで「初心者」を免罪符にする香具師の典型的パターンだな
>>498 そうでしたか。
やさしい人、468お願いします!!
502 :
デフォルトの名無しさん :05/01/10 18:40:43
ここにも釣り師登場か。
503 :
デフォルトの名無しさん :05/01/10 18:46:26
>503 どこまで考えればいいの?線引きしてください。
答えを丸写ししてるだけじゃダメだから、MSDNやサンプルコード を検索したり組み合わせたりして、自分がやりたい処理に持って行 く。 大まかな線引きとしては、「やりたいこと」だけを質問するんじゃ なくて、「まずコードを書く」ことからやってみそ。
>505 ギャハハハハ。やってみそだって!ギャハハハハハ
>>505 ということは、コードをまったく書けない場合は質問するな、
ということですね。他の方もそうなんですか?
508 :
デフォルトの名無しさん :05/01/10 20:24:22
>>507 コードがまったく書けない人に質問されても
答えることは難しいわな。
入門書である程度勉強するしかないのでは。
特にここは長い説明は嫌われるしな。
>508 それはあなたのルールですか? このスレのルールですか?
コードが全く書けないのにプログラム板に来るのはなんで? ここはコードやアルゴリズムを突き合わせて切磋琢磨するところ だと思ってるんだが。
>510 切磋琢磨してるのですが全く書けないので、こういう 掲示板を利用してみようかと思って辿り着きました。
>510 それはあなたのルールですか? このスレのルールですか?
>510
そういうスレ立てれば?
>>1 には「VB.NETの質問全般です」としか
書かれていないので、別にレベルが低い質問もあっても
仕方ないのでは?
まず、カイジの利根川のセリフを頭に叩き込まなければなりませんね。 少なくともコードの書き方(配列変数は文法的にどう書くのなど)は、自分で 勉強するものだろう。まさかそんなことまで人に教えてもらおうなんて奴は 居ないと思うが。
ルールっぽいことを書く人は、「名前」欄に「俺ルール」や「スレルール」と 書くことにしましょう。何もない場合は「俺ルール」ということにしましょう。
>514 それはあなたのルールですか? このスレのルールですか?
>>514 カイジの利根川のセリフって何ですか?
専門的すぎてよく分かりません。
自分がやりたい処理がある。
↓
テンプレに載ってる数多のサンプルや手法を読んでみる。
↓
流用できそうなのをうまく編集してコードにしてみる。
↓
うまくいかなかったら、ここor識者に具体的な質問をする。
‥‥つか、学生にしろ社会人にしろこれくらいは常識だと思う。
教えて君は本人にとっても回りにとっても良くないだろ。
ttp://myu.daa.jp/osiete/index.html
>>516 よほど難しい文法でない限り文法事項なんて独習が常識だろう。
I am a student in that high school. を訳せません教えてくださいって聞くアホは
いないでしょ。
520 :
508 :05/01/10 20:43:51
>>509 どこにルールなんて書いたの?
コードが全くかけない人に、どのように説明するの。
それともコードは全くかけないが、人のコードは
理解できるとでも言うの。
>518-519 あのぅ、さっきからずっと釣ってるのですが、いつまで反応してくれるのですか? いい加減釣りも飽きてきたのでやめたいのですが。
>520 >521
>>521 立場が悪くなったら釣りの振りして逃げる。雑魚っていうかゴミの典型ですね。
恥ずかしい
524 :
デフォルトの名無しさん :05/01/10 20:52:49
>>513 質問したっていいさ、ただ答えたくても、全くコードをかけないやつに
どうやって説明したらいいか、困ったな。といっているの。
>523 うわ、まだ反応してるよ。
>523 ゴミの定義は?
明日から学校なんだし、ここも静かになるだろ。 枯れ葉も山のにぎわい程度に流しておけばいいじゃん。
528 :
デフォルトの名無しさん :05/01/10 21:02:07
>527-528 私に関して言えば引きこもってるので変わらないですよ。
意味のわからない質問、答えにくい質問はスルーされる。 自然の摂理だ。 質問者が思っている以上に答えるのにはエネルギーを使うもんだ。
>530 質問に回答するのはあなた方の自由のはずですが。
別に、質問者の質問内容の程度なんてどうでもいいんでない? 答える側は、質問の意図を聞き返したりスルーしたり出来るし。 答えたい奴が答えるでいいじゃん。
なんかすいません。僕のせいで荒れてしまいましたね。 自分で検索したんですがさっぱり出てこなくて。 もう少しがんばってみます。それでもわからなかったら ここで質問します。そん時はよろしくお願いします!
あともうひとつ、
>>473-475 は468の答えでは
ないんですか?なんか釣りとか書いてたから・・・
ちょい荒れ気味のところすまんけど、 VBCommenter + NDoc って使ってる? 試しに入れてみたけど、VBCommenter出力がいまいちうまくいかなかったり、 NDocが異常終了したり。どっか設定おかしいのかなあ。 でもうまくいったら便利そう。ちなみにC#未経験。
537 :
デフォルトの名無しさん :05/01/11 08:24:04
とりあえずMSWinsockLib.dllとか見えた時点で読むのを止めた。
vb.netでおなじLAN内のファイル転送の仕方が色々調べましたが分かりません 教えてください
imports system IO file.copyでマシンネームを入れるやり方だったと思うのですがよく分からずできずにあきらめ、 色々サイトを見て回ったのですがそれらしい物すら見つからずです
さっきの追加です チャットするまではできます そこにファイル転送も加えたいです
>532がいいこと言った
取りあえずチャットのプロトコルとしてUDP使うのはやめとけ。ファイル転送もやりたいなら
なおさらTCP使った方がいいぞ。
俺は4年前から自宅サーバでチャットプログラム動かしてて内輪でチャットやってるから
チャットプログラムを本格的に作る気ならノウハウぐらいは提供できる。C#だが。
>>539 俺はいつもSystem.Net.Sockets名前空間のSocket使ってるから知らないんですけど
MSWinsockLibてなんですか?Winsockのラッパー?
>>545 > 俺はいつもSystem.Net.Sockets名前空間のSocket使ってるから知らないんですけど
> MSWinsockLibてなんですか?Winsockのラッパー?
そう。
そりゃ.NETでWinsockのサンプルなんて無いだろ(System.Net.Socketsがあるんだから)、
まず>538でも見て.NETにおけるソケットの扱い方を勉強しろ、と。
そう思った次第。
>546 勉強しろ、じゃなくて、勉強してください、ね。語尾は正確にお願いします。
殿様ん
勉強しなくなけりゃしなくても 喪れは困らないので勉強しなくてもいいですよ。
>550 なんでタイプミスするの?
552 :
デフォルトの名無しさん :05/01/11 17:28:40
timer1のを一度disableするとenableにしてもEVENTかかりません。 なぜでしょう。? Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If picBar.Height > 0 Then picBar.Height = picBar.Height - 1 Else Timer1.Enabled = False ’ここで切ると二度と飛んでこない? End If End Sub Sub threadMain() Do thread1.Sleep(100) If Now.Second = 0 Then Timer1.Enabled = True Timer1.Interval = 100 Timer1.Start() picBar.Height = 500 End If Loop End Sub
>552 System.Windows.Forms.Timerを使っているのであればムリ。 他のTimer使ってみてはどうでしょう。
554 :
デフォルトの名無しさん :05/01/11 18:10:52
えっ、他にもタイマーがあるの? ちなみにバグってことでしょうか?
>>552 MSDN読んだら、Start()の替わりにEnabledにtrueを設定することでもスタートさせることができると
書いてあったのだが二重起動にならないか?多分Timer内部でハネてるから大丈夫とは思うが。
他のタイマーとしてはSystem.ThreadingのものとSystem.Timersのものがある。
使い分けはMSDN読んだら書いてある。
二重起動は気にする必要はない。 Start()はEnabledをtrueにしてるだけだし、 Enabledを変更した時に値が同一なら以降の処理をしないようにしてる。
557 :
デフォルトの名無しさん :05/01/11 18:46:01
>555 ありがとう。 良く分からんが、System.windows.forms.timerってのはComインターフェース なのかな? vb6.0で作ったActiveXなんかもNETでは動作がおかしい。 VB6.0のときはEnable=trueだけで制御できた。 結論:flgを追加して、ディスエーブルするようにした。timerはFalseにしない。
バグかどうかよくわからんけど、System.Windows.Forms.Timerは マルチスレッド環境でうまく動かないことがあったな。
>Timer は、ユーザー定義の間隔でイベントを発生させるために使用されます。 >この Windows タイマは、UI スレッドを使用して処理を実行するシングルスレッド環境に合わせて設計されています。 >ユーザー コードには利用できる UI メッセージ ポンプが必要です。 >また、このコードは必ず同じスレッドから操作し、別のスレッドに対する呼び出しをマーシャリングする必要があります。 いかにもお手軽に使う以外は使うべきでなさそうじゃないか。
>559 ありゃ。ちゃんと書いてあったのか。失礼しました。
開発環境が変わったんだけど、C#なしのVB.NETだけ、VSSも入ってないマシンになっちゃったから、 とりあえずSubversion + AnkhSVNを試してみた。 ……VC++.NETがないと動作しないってマジですか ○| ̄}_ (正確にはVCProjectEngine.dllだかが必要らしい) Subversion + TortoiseSVNでがんがるべき? NTCVS + Iglooってどうなのかな。
562 :
デフォルトの名無しさん :05/01/12 05:33:22
ツールバーをウィンドウから独立させる方法教えてくだちい! 普通フォームの端につくか、枠内で動くかしかできませんよね。 そこをなんとか。 ツールバー自体がアプリの実体に見えるようなものを作りたいんです。
>>562 PhotoShopみたいなフローティングのツールバーってこと?
空のフォーム生成してDockしちゃえば?
クリレポがうまく配布できない
あるPCでは動くのにあるPCでは動かない
{XXXXX〜XXXX}のCOMが何とかってエラーが出る
何かファイルが足りないんだろうか
.netでversion番号を入力したいんですがどういった方法を用いればよろしいですか?
567 :
デフォルトの名無しさん :05/01/12 15:48:01
フォームに大幅に変更を加え、実行したところ、変更途中のものがビルドされて 出てきて、実際にビルダーで作ったものとは異なる状態で表示されます。 エラーのある状態で実行すると、こうなるのでしょうか?途中経過を見たいので 最新の状態でビルドして画面を見たいのですが、どうすればよいですか?
568 :
567 :05/01/12 16:07:55
すみません、エラー部分に片っ端から ' をつけることで解決しました。 もうひとつ、教えていただきたいのですが、frmAというフォームをそっくりそのままコピーして 同じプロジェクト内でfrmBというフォームを作りたいんですが、どうすればよいのでしょう? 別名で保存しても、プロジェクトからは見えないのですが。
570 :
デフォルトの名無しさん :05/01/12 17:00:06
VB6のDirListBoxを使うにはどうすればいいんですか?
572 :
570 :05/01/12 17:39:28
VB6で作ったプログラムにDirListBoxがあるんですが、これをウイザード で自動変換すると、NETに上手く変換してくれます。ところが、ツールボックスに はDIRListBoxが見当たらない。 .NETのデザインエディターでコピーして貼り付けると自動的にDirListBox2が できます。 ということで、デザインエディターはVB6のDirListBoxもサポートしているわけです。 どうすれば、ツールボックスにDirListBoxを追加できるのかが知りたいのです。 どなたか分かりませんか?
ツールボックスで右クリックして
571の3つめ辺りにある宇宙仮面のとこに書いてるっての。
575 :
570 :05/01/12 18:06:04
>574 おっーサンクス。でけたー。 帰りにMSに石なげてかえろっと。
10秒後とにファイルを読み込むということをしたいんですが どのようにしたらよいでしょうか?
System.Windows.Forms.Timerを使えばいいんじゃない?
タイマーコントロールをフォームに貼り付ける その中にファイルを読み込むコード入れればよいんですよね? でも、ボタンをクリックしたときにタイマーを使ってその処理 をしたいんですがどうすれば?
>>578 > でも、ボタンをクリックしたときにタイマーを使ってその処理
> をしたいんですがどうすれば?
ボタンをクリックしたらタイマをスタートさせるという事?
ならその通りにコーディングすればいい。
貼り付けただけじゃタイマはスタートしないぞ。
リストボックスに表示されている項目において、マウスでクリックした
項目のテキストを取得するにはどうしたらよいのでしょうか。
例)
リストボックスに、「A」「B」「C」と表示されているとする。
2番目をクリックすると、「B」という文字が取得できる。
サイトをさがしてみたのですが、マウスでクリックした項目が何番目
であるのかを取得する方法はのっていましたが、テキストの取得方法は
のっていませんでしたので、どうしたらよいのか分かりません。(汗
http://vbdotnet.fc2web.com/vbnet/control/ListBoxMenu.htm 基本的な質問ですみませんが、よろしくお願いします。
まあ項目のインデクスからでも取得はできるけどね。 SelectedItemプロパティ。 選択アイテムの文字列なら.ToString()メソッドも。
>>581 すばやい回答ありがとうございます!!
助かりました。
質問よろしいでしょうか Web上を探し回ってUSBカメラの映像をフォーム上に表示させることには成功しました。 VFWとDirectShowを使ったやり方、表示はどちらもうまくいったのですが、DirectShow のほうで、スナップショットの扱いがどうもうまくいきません。 スナップショットを静止画として別フォームに表示、ではなく、それをBMPかJPGとして 保存したいのです。 VFWではそれをクリップボードに取り込んだうえ、Doodle2というフリーのdllを使って BMPに出力できたのですが、DirectShowでそのやり方を無理にとると、モニター全体の PrintScreen状態の画像になってしまいます(欲しい画像は隅にちょこっとうつってる だけ。VFWでは画像部分だけが取れた) やりたいことはすでにVFWで実現できており、これは後学のためにという程度の 質問なので、誰かひまなとき教えてください。
>>585 さん
ありがとうございます
後のほうのリンク、内容はすごく面白そうなんですけど、読解できないのが
なさけない。
Cってのはこういう書き方をする言語だったんですか、とか、新たな発見を
してしまうレベルの素人だったりするので・・・
587 :
デフォルトの名無しさん :05/01/13 12:50:48
昨日書いた者ですが、タイマーが作動してないのですが・・・
そうか頑張れ。 真面目な話それだけじゃ何も分からないのでせめて ・何をどうしたか ・例外が出るならどんな例外か ・できれば関連部分のコード を書かないと答えようがないよ。
589 :
587 :05/01/13 13:41:58
とりあえずタイマーが動いてるかどうか見たいんで ラベルに、1秒ごとに表示させたいのですが。 とりあえずタイマー貼り付けてそのなかに i = i + 1 Label1.Text = i iは、タイマーの外で宣言してます としたのですがラベルが0のまま動きません・・・
VB.NETで作ったものって、VB6で動かせますか?
>>589 で、その貼り付けたタイマのインスタンスに.Start()はしたの?
って言うところから質問を一問一答で繰り返していくというのは掲示板というシステム上歓迎できない。
>>590 VB6で動かすという意味が分からないのだが。
VB.NETで作ったものは.NET Frameworkが必要だよ。
//統合開発環境の名前と言語の名前が同じだとややこしいな。
してないです。どうするんですか?
593 :
デフォルトの名無しさん :05/01/13 14:36:03
>>592 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static i As Integer
i += 1
Label1.Text = Convert.ToString(i)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Interval = 1000
Timer1.Start()
End Sub
>>593 タイマーの定義の部分を見せてください。昨日の流れから別のタイマーに代えたりしてませんか?
Label1にアクセスしてますからSystem.Windows.Forms.Timer以外では問題が出るはずです。
なんかびみょーに話がずれてないか?
596 :
デフォルトの名無しさん :05/01/13 15:49:12
うん、始めから話が変だな。 大体System.Windows.Forms.Timerだったら Start() Stop() でも Enableでもどちらでも スタート&ストップ出来るじゃん。
はじめのコードはタイマーより別のところが突っ込みどころ満載だったんだよね。 Sub threadMain() <−ワーカースレッドぽかったり Do thread1.Sleep(100) <−なんか寝てたり If Now.Second = 0 Then <− 意味わかんなかったり Timer1.Enabled = True Timer1.Interval = 100 Timer1.Start() picBar.Height = 500 End If Loop
598 :
デフォルトの名無しさん :05/01/13 16:28:26
配列をリッチテキストボックス(もしくは、ラベルかテキストボックス)に1行ずついれたいのですが、 どうやればできるでしょうか? 配列はstring型で10個です。配列の0〜9を一行ずつ表示させたいです。 調べましたが、簡単すぎるのかヒットしませんでした。お願いします。
599 :
デフォルトの名無しさん :05/01/13 16:37:05
String.Join()だな。
>>598 改行を入れたいって話かな?だったら改行文字で区切ればよい。
VBだとvbCrLfって定数が使えたはず。
一番簡単なのはRichTextBoxのLinesプロパティにそのまま文字列配列を代入する事。 ただし上書きになる。
602 :
599 :05/01/13 16:47:15
1番取った記念にサンプル乗っけちゃお。 Dim str() As String = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj"} TextBox1.Text = String.Join(vbCrLf, str)
ADO.NETのDataSetの使い方がいまいち分からないです。。 ADOでの、ADODB.RecordsetでopenしてFilterでデータをしぼりこんで、 movenextしながらデータ取得。という手順をやりたいんですけど、 DataSetではFilterにあたるものがみあたりません。。。 どうしたらよいのでしょうか? よろしくお願いいたします。
>597 なんで意味わかんないの?
>>603 DataSetは、端的に言えばDataTableのコレクションとそれぞれのDataTableのリレーションを管理するためのクラス。
データそのものはDataTableの中に入ってる。
DataTableのSelectメソッドが目的のものだろうね。
>>603 System.Data.DataViewがそれにあたるのだが、それ以前のところで悩んでそうですね。
System.Data.DataSetは高機能のデータトランスファオブジェクトであって、
データベースのテーブルとは直接の関係はないのですよ。
読み込んだデータをまとめて溜め込んでおいたり、持ち運んだりするためのものなのです。
unixとlinuxの間をみるといいことがあるかも、それからキーボードのuからqを続けて見る。
>>605 >>606 ADO.NETは、リファレンスとか読もうとしても、
情報量が膨大でどこを読めばいいのか良く分からなかった
ところもあったので、読み方の糸口が見つかった気がします。
早速調べてみます。
ありがとうございます。
ついでに便乗質問。 Datatable.Select()は便利だけど、戻り値がDatarow()になる。 ソートのために使うときなんか、結果はDatatableで欲しいんだけど、 Datarow()をFor Eachかなんかで回して1行ずつDatatableを作り直すしかないの? ADO.NET 2.0だと、Dataview.ToTable()ってのが使えるみたいなんだけど……。 あと。 SQLを発行してDatatableを作ったあと、そのテーブルに対して操作を行ないました。 その結果、いっぱい重複行ができちゃったのでDISTINCTしたいんだけど、そういうのはさくっと簡単には書けない? とりあえず、Datatable.Copy()で同じスキーマの空テーブルを作り、全ColumnをUniqueにして、 Tryで例外無視してむりやり全行ぶっこんでみたい。遅い。 全Columnを複合主キーにして、Findできなければ追加、ってやったらちょっとマシになった。 もうちょいスマートに書けないのかなぁ
あ、テーブルに対して操作したのは、単にちょっと便利な配列として使ってただけで、 DBに書き戻すためじゃないからね。 だからキーやら行数やらを変えたりしても問題なし。
初めまして。学生ですが最近企業実践に行っている者です。 JavaとかPHPやPerlなどのWebブラウザ向けの言語は多少かじって いるのですが、企業実践に行っている会社でVB.netをやることになって しまい、いろいろ分からないところがあるので教えてください。 System.IO.StreamReaderとか言うのを使い、テキストファイルから 一行ずつ読み込んで、テキストボックスなどに出力し、また次の行を 読み込んで出力するみたいのを作らなきゃダメなんですが、ファイル の終わりまで(EOF)行ったらファイルの先頭からまた一行読み込んで 出力するようにしてくれと言われました。 つまり、OpenFileDialogで選んだファイルを延々と一行出力しEOFになったら また一行目から出力するものにしなきゃだめらしいです。 んで、私はファイルポインタをファイルの先頭に戻すやり方が良くわかりません。 seekメソッドとかそれらしきモノはあったのですがいかんせんVB.netに 慣れていないので使いかたがよく分かりません。 自分でも説明が下手だと分かるくらい駄文で申し訳ないのですが、真剣に困っています。 どなたか分かる方がいらっしゃいましたらやり方を教えていただけないでしょうか?
一旦クローズして開き直し。 ……ところでその仕様じゃ無限ループにならないのか。
無限ループになりますが、いいらしいです。 タイマーイベントをかまし何秒間に一回出力、それを繰り返すモノ が作れればいいらしいです。
LAN内の共有フォルダの一覧を取得するには、どうしたらいいか誰か教えてください。 最悪の場合、VB.NETじゃなくても構いません。あたりがつけば自分でも調べますので
>>一旦クローズして開き直し。 >>……ところでその仕様じゃ無限ループにならないのか。 開き直すときにまたOpenFileDialogを使わずに継続して 開きたいのですが、何かいい方法とかソースはないでしょうか? ほんと質問してばっかで申し訳ありませんがよろしくお願いします。
>>610 A:
(処理)
goto A
でいいんじゃないの?
>>615 ,616
レスありがとうございました。本当に助かりました。
>>610 全く関係ないが
久々にまともな日本語を読んだ気がする
620 :
598 :05/01/14 13:59:36
>>599 さん
ありがとうございます。joinを使うとできました。
>>600 さん
改行文字で区切るっていうのがわかりません。すいません。
>>601 さん
ファイルから呼び出して使うので無理でした。
621 :
デフォルトの名無しさん :05/01/14 14:35:12
Sub threadMain() Do thread1.Sleep(100) <−なんか寝てたり If Now.Second = 0 Then <− 意味わかんなかったり Timer1.Interval = 100 Timer1.Start() picBar.Height = 500 End If Loop この説明が気になります。これは1分に一回Timer1を起動するものですね。 >thread1.Sleep(100) <−なんか寝てたり この行はあった方がいいのでしょうか? それとも何かまずいのですか。 意図としては、 Now.Second = 0 のチエックは、常時チェックすると CPUのロスになるのでSleepしています。ただし1秒以上スリープすると 最悪0をチエックできないタイミングが発生します。 本当は thread1.Sleep(990)でも十分だと思いますが、判定中に長い処理が 割り込んだ場合、10msecを超える場合があるかもしれません。それで100msec にしています。 しかしこれでも、900msec以上も時間がかかる割り込みが入ると問題があります。 I/O制御ですので一回でも0の判定をミスするとまずいのですが、大丈夫でしょうか?
622 :
デフォルトの名無しさん :05/01/14 14:39:05
質問よろしいでしょうか。 指定したHTMLタグを抽出する.NETのクラスライブラリはありますか。 一応自分で探しましたが見つける事ができなかったので よろしくお願いします。
>>621 なんていうか、泥の台の上で彫刻を作ろうとしている感じだ。
まず一から整理し直して、「なにをするのにこうした、しかしこれこれでうまくいかない」をはっきりさせるべき。
>>621 ワーカスレッドから、Windows.Forms.Timerの操作はしてはいけない。
正常動作する保証はないし、たぶん正常に動作しない。
picBarが Windows.Forms.Control の類だとすると、同じくワーカスレッドからの操作はしてはいけない。
正常動作する保証はない。正常に動作することもある。
そもそもTimer1のイベントハンドラはUIスレッドと同期的にしか実行されないわけだから、
フォームにTimer2でも置いて1分毎にTimer1.Start()でもすれば十分。
フォームのアイコンを非表示にする方法はありますか? 探しても見つかりませんでした。
フォームのアイコンってのが、何を示しているのかわからん。 フォームタイトルの左にある小アイコンのことか? コンパイル時に適用される既定のアイコンのことか? フォーム上にPictureBoxか何かで貼り付けたアイコンのことか?
627 :
デフォルトの名無しさん :05/01/14 15:42:45
>>626 >フォームタイトルの左にある小アイコン
説明が足りませんでしたそれです。
628 :
598 :05/01/14 15:47:12
またわからないことがありました。 Dim mySR As New StreamReader(a.txt)(仮)としてファイルを読み出しました。 Dim mystring As String Dim name(), rank(), ten() As String Dim i As Integer = 0 mystring = mySR.ReadLine() rank = Split(mystring, ",") ten(i) = rank(1) name(i) = rank(0) ファイルの中身は あ,47 い,92 う,39 といった感じです。これを実行させると ten(i) = rank(1)の部分で オブジェクト参照がオブジェクト インスタンスに設定されていません。 と表示されます。 rankの値は1が「47」となっています。0は「あ」です。 rank(0)とrank(1)をそのままlabel.textに入れると表示はされます。 点と名前を分割してファイルから読み出し配列にしたいのですが、なんとかなりますでしょうか? ながったらしくなってすみません。お願いします。
配列もオブジェクトなのでNewが必要。 が宣言時に要素数を指定する事でNewは省略できる。 Splitしたのを入れるrankはSplit内で配列が初期化されているからこちら側でどうこうする必要は無し。 Dim name(1) As Stringとか書けばいいわけだな。
省略というかそもそもVBでは配列はNewを使わないけどな。概念的にはともかく。
>>629-630 さん
すばやいレスありがとうございます。
要素数をいれることでできました。
>>628 前の方にもあったが
ten(i) = rank(1)
↓
Redim ten(i)
ten(i) = rank(1)
こう変えてやってもできる。
初めて書き込みます。VB6ではbasモジュールで宣言すればよかったグローバル変数ですが、 VB.NET 2003でグローバル変数を宣言するには、どうすればいいのでしょうか。 ヘルプや参考書にも載っていなくて・・・。 よろしくお願いいたします。
635 :
621 :05/01/14 17:11:08
>624 >ワーカスレッドから、Windows.Forms.Timerの操作はしてはいけない。 >正常動作する保証はないし、たぶん正常に動作しない。 そうでしたね。上で指摘いただいてました。すいません。 >picBarが Windows.Forms.Control の類だとすると、同じくワーカスレッドからの操作はしてはいけない。 >正常動作する保証はない。正常に動作することもある。 そうなんですか? それではthreadの中で何が動作可能なのでしょうか? たとえばNow.Second=0のチェックは問題ありませんか? DIM I as Integer I=I+1とかはOKですよね。Iが保証されなくてSleepから復帰すると時々11から50 にJumpしてしまうなんてことはないですよね。 問題となるのはContorolと名のつくもの全部ですか?
636 :
621 :05/01/14 17:13:40
>まず一から整理し直して、「なにをするのにこうした、しかしこれこれで >うまくいかない」をはっきりさせるべき。 あんましはっきりしませんが。 >なにをする thread内のdo loop内でNow.Second=0のチエックをしたい。 >こうした リスト参照 >しかしこれこれでうまくいかない 疑問がある。 1)threadないのDoLoopの1loopの時間保証があるか? 確認する方法はあるか? 2)そのた色色
もっと根元的なところの話だがね >なにをする
>>552 のコードなら、わざわざスレッドを用意する必然性が全くない。
picBar.Height-1を行うタイマとpicBar.Height = 500を行うタイマの2つを用意すれば済む話。
//1つでも済むかもね。
639 :
621 :05/01/14 17:31:35
>637 >こういうちゃんとしたドキュメントを無視して誰かに「もっと簡単な説明」を求めても、 >もっといい加減で不適切な説明しか得られないと思います。 ご指摘ありがとうございます。チラッと読みかけましたがかなり解りにくそうですね。 他の参考書を探してみます。 とりあえずの考え方として、 threadないでは使ってはいけないものがあるのですね。 キーワードはthreadSafeという言葉でしょうか? ビルドする時になにかスイッチの設定をするとthreadSafeでないものをthread内部で使うと ワーニングがでるのでしょうか? なにか確認する方法はないですか?
641 :
621 :05/01/14 18:27:54
>640 ありがとうございます。確認してみます。 少し読んでみましたが、色々と問題があるみたいですね。
>619 自演乙
>>642 俺の日本語がおかしいことに気がつかないのか
644 :
621 :05/01/15 00:14:24
>>552 のコードなら、わざわざスレッドを用意する必然性が全くない。
>picBar.Height-1を行うタイマとpicBar.Height = 500を行うタイマの2つを用意すれば済む話。
>//1つでも済むかもね。
そうですね。問題があるときに回避する手立ては重要です。しかし、スレッドぐらい
まともに動いてもよいと思いませんか?
「まともに」と言うのは、thread内で動作が保証されないものがあるなら、コンパイル
時にエラーを出すなり、注意をだしてもいいではないですか。
しごく、当たり前のことだと思いますが。
ライブラリの仕様や制限をコンパイルエラーに出来るかボケ
646 :
621 :05/01/15 00:39:30
>ライブラリの仕様や制限をコンパイルエラーに出来るかボケ ライブラリの仕様の制限を判断できればよいだけです。 方法はいくらでもあります。ライブラリの先頭に「できるかボケ」と入れとけは OK。 ましてVBなら勝手に仕様を作ってるわけだから言語仕様に組み込むことさえできる。
マルチスレッドのサンプルプログラムがきまってコンソールアプリなのは この制限のため。System.Console系は複数スレッド共有できます。
ライブラリの先頭ってどこだ。 ライブラリのヘルプには書いてあるが。 ※分かりにくいのは確かなのでもっと分かりやすいとこに書いといて欲しいのは事実だが。 ついでだがThread内からは使えないと言う意味不明の理解は正しておく事をお奨めする。
VBの人って何でこんなにレベル低いの?
>649 2ちゃん全体がそうだよ。
>651 どこをどう探したか書かないと誰も答えてくれないよ。
>651 ただのネタだと思って普通にスルーしてたけど、難しいのかと 思って今やってみたら1分でできたよ。 でも>651みたいな書き込みしちゃー、もう誰も教えてくれないわな。 残念だったね。
InstallShieldの質問はここでしてよいでしょうか。
>>634 ソリューションエクスプローラ見ても、basモジュールはありませんでした。また、ヘルプでbasモジュールで検索かけても
basモジュール自体については何も書かれていません。質問を変えます。basモジュールを作成するには
℃の様にすればよいのでしょうか??何度もすみません。
656 :
621 :05/01/15 10:49:25
>マルチスレッドのサンプルプログラムがきまってコンソールアプリなのは >この制限のため。System.Console系は複数スレッド共有できます。 そうなんですか? それは無茶苦茶制限ですね。 Console.Write("hello")くらいしかできないとしたら寂しいかぎりですよ。 System.Objectの派生クラスで OK... System.Console NG... System.Windows その他不明 これがMSの公式見解ですかね? 実際に使ってみないと解らないので経験則で 判断してほしいってことでしょうか? しかし「任意のスレッドから安全に呼び出すことができる関数として、コントロールには、 InvokeRequired、Invoke、BeginInvoke、EndInvoke、および CreateGraphics の 5 つがあります。ほかのメソッドを呼び出す場合は、Invoke のメソッドの 1 つ を使用します。」 とありますので、Invokeを使えば、System.Windows.Formsも問題ないと いうことらしいですね。
657 :
621 :05/01/15 10:55:19
>ライブラリのヘルプには書いてあるが。 どこにかいてあるんですか? >ついでだがThread内からは使えないと言う意味不明の理解は正しておく事をお奨めする。 解りません。おしえてください。お願いします。 「threadサブルーチン内でコントロールにアクセスすると変な挙動を示す。」では だめ? そもそも必ず誤動作するのにコンパイラエラーがなぜでないのかが不思議です。
>>622 System.Text.RegularExpressions
660 :
デフォルトの名無しさん :05/01/15 11:31:44
まぁ、621 が馬鹿なのはおいておいても、せっかく属性があるんだから、 スレッドセーフかどうかを示す属性があってもいいな。
661 :
デフォルトの名無しさん :05/01/15 11:33:25
>>655 .bas も .vb に置き換わってる。ということで、.bas モジュールを作成する
ことは不可能。.vb で .bas 相当のものを作ればいい。
ある一定時間ごとに、ファイルを読み込みたいのですが、 ただ、まだ読み込みたいファイルは存在せず、作成されるまで 数秒おきに読み込みを行い、読み込みに成功したら ループを抜け出すというものを作りたいのですが ループの中をうまく作れません。 とりあえず、countという変数を5秒ごとに1増えるというよう にしました。
>>655 ここで書き込んでる連中もC#中心に使ってるやつらはたまに知らないことがあるんで正解を
書いとこう。項目の追加でクラスというのとモジュールというのがあるだろう。
どっちも拡張子は.vbだがモジュールのほうはModule Module1 - End Moduleのブロックが出
てくるだろう。それがBASにあたるわけで、ここでPublicにしたものは他のクラスからその
まま使える。モジュールで定義したものはModule1.の修飾も省略できる。
Public NotInheritable Class GConst
Private Sub New()
End Sub
Shared Sub New()
TESTCONST = "Hello"
End Sub
Public Shared ReadOnly TESTCONST As String
End Class
こういう得体の知れないコードを書いてるやつがいたら間違いなくC#かJava厨なので気をつけろ。
おれも実は最近までこうやってたよぉ〜〜
>663 脳内乙。
サービスに登録するにはどうすればいいのでしょうか。
>666 ありがとう。
>>633 おしい、Imports プロジェクト名.GConst をほかのモジュールの先頭に入れれば完璧。
>>664 乙厨? 乙であります。
>>430 >>642 と同一犯かなアンカーの付け方が一緒。
他でいじめられたんだろうな。
>668
俺のアンカーの付け方って特殊?
>100 か
>>100 の2通りあるだけだと思うんだけど。
自分が
>>100 だから俺を特殊と言ってるの?
ちなみに430や642は俺じゃないよ。
>>668 乙厨に文句言うのはいいんだけど、実際君の書き込みが脳内だから
いまいち説得力ないねw
だれか662よろしくお願いします
>>662 書き込みの続きがあるのかと待ってたのですけど
>>662 タイマーとDIRを使って、ファイルが存在するか調べる。
ファイルが存在すれば、ファイルの読み込みを行い、タイマーを止める。
つーやり方でいいんじゃないの?
>>674 スマソ。あれだけです。
よろしくお願いします
>>675 ループでやってる以上、存在しない間は他の処理をしてはいけないんじゃないか?
しらんけど。
663の脳内書き込みは俺なんだが、匿名版は誰が書いてるかわからんからややこしいな。 ここもIDを出して欲しいよ。書き方はあれだがうそは書いてないつもりだぞ、脳内な部分は 指摘してくれ。受けてたつぞい。
>>675 ファイルが存在しなかったら
またループさせるとこが、うまく作れないんですorz
While Not File.Exists("読み込みたいファイル") End While
インスタンス変数でフラグを持たせて処理が必要ならONにします。 同時にタイマーは数分おき切り替えし起動にします。 タイマーの処理ルーチン内で フラグチェックOFFならルーチン終了 ファイルの存在チェック、無いならルーチン終了 読み込み、エラーならルーチン終了。読まなかったことに。 ファイルを処理済み用の名前に改名、エラーならルーチン終了。読まなかったことに(できるか??) フラグをOFFにしてルーチン終了 タイマーは回り続ける。 ファイルは書き込み途中で読みにいくことがあるから、書き込んでから 処理対象の名前にリネームかけてもらうとよいです。
>>679 >>680 のやり方でいいとおもうけど、数秒おきにしたいなら
While Not File.Exists("読み込みたいファイル")
i = DateTime.Now.Second + "待機したい秒数"
While DateTime.Now.Second < i
End While
End While
へんなコテハンになってしまった orz ロジックがわからないのか、具体的な命令の書き方がわからないのか 教えてください。 誤)切り替えし 正)繰り返し
待機用のループには是非ともThread.Sleepを入れていただきたい。
685 :
デフォルトの名無しさん :05/01/15 16:00:39
タイマーでやれって。
もしかして、ループとかタイマーとか使わなくても ファイルが作成されたら、イベント発生させるような ものがVB.NETにあったりするんですか?
System.IO.FileSystemWatcherクラスがそうだが、NT系限定。
NT系限定とは??
>>689 FileSystemWatcherクラスのヘルプ嫁。
マニュアル読んでもよくわからないのは FileSystemWatcherが 今回の案件に使えるかどうかですね。今ひとつ使いどころが不明。 イベントがもれたり、逆に多すぎたりがないか不安ですね。 素直にタイマーでポーリングのほうが簡単じゃないかな。
>>680 こんなやり方したらメッセージループが固まらないのか?それともそれでも無問題?
まあ無問題にしてもSleep(1)は是非入れないとな。
予定のファイルがなかなかこなかったらずっとループしてますね。 ワーカースレッドやSystem.Timers.TimerならSleepを入れればいいかもしれ ませんが、Windows.Forms.Timerだと画面が固まってしまいます。 それにマルチスレッドだとちょっと前の論争が復活しそうで怖い。
Thread.Sleep(5000)とすれば、タイマいらないんじゃないか?
>>674 どんな続きを期待したの?
>>678 アッヒャッヒャッヒャッヒャッヒャ。腹いてー!!こいつおもしれーよ!!
今度から名前欄に「僕はピエロ」って書いてくれ!
アーーーーッヒャッヒャッヒャッヒャ!!
>>695 期待通りに来てやったぞ。さあ、どこが具体的に脳内か具体例を挙げてくれ。
さぁ。笑うだけなら猿以下だぞ。明日も休みだ思い切ってつられてやるぞい。
>>698 えー、めんどくさいなぁ。他の人はみんな分かってるのに・・・
そのうちスレ違いって怒られるからイヤなんだ。
君が休みとかは全然関係ないんですわ。
例えば
>>663 の下から2行目とかな。
>>699 そこは当然主観だ。サンプルコード以下は最後の1行の笑いを取るための
レトリックって気づけよ。
あげ足取りにもならん、もっと骨のあるやつを頼む。
>>702 意味不明な開き直りはやめてください。
まともな反論もできない方のようですので、もういじめるのは
やめておきます。
きっとあなたはこの後捨て台詞を吐くのだと思いますが、
私が呆れ果て、スレが汚れるのを防ぐために相手をするのを
やめたことは(あなた以外の)誰の目にも明らかですので
構いません。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
さあ、どうぞ!捨て台詞&勝利宣言を!!
↓が変な位置に入ってしまいましたが、捨て台詞&勝利宣言を 次に書き込めよ、という指示事項です。
>>702 すげー開き直りだな。お前専用の別スレ立てな。遊んであげるから。
まだか?
誰か代わりに捨て台詞書けよ。それで次の質問行こう。
まだ?
>>693 ループ内にDoEventsを入れることで画面が固まるのは回避できるが、ループから抜けるコードの作成はしておいた方がいいぞ。
まだ?
While Not File.Exists("読み込みたいファイル") i = DateTime.Now.Second + "待機したい秒数" While DateTime.Now.Second < i End While End While ↑これやったんですが、Fileのとこでエラーでるんですが・・
エラーは実行時かコンパイル時か?エラーの内容は?
コンパイル時にFileが宣言されてませんと なんでや〜わからん
System.IO.Fileだから次の1文がソースの先頭に必要。 Imports System.IO それか While Not System.IO.File.Exists("読み込みたいファイル")
まだ?
ここは質問スレなので、無意味な揚げ足取り等はやめて頂けると助かります。 みんな、分かってて無視してたんだったらごめんなさい。
>>719 荒らしやあおりは完全スルーが良い。
俺は2ch専用ブラウザを使っているので、
目に付く煽りレスや嵐レスは片っ端から透明アポーン。
これで全然気にならなくなるよ。
While Not Sstem.IO.File.Exists("読み込みたいファイル") i = count + 5 While count < i End While End While Label1.text = "test" 'とりあえずできてるどうか試すため countは1秒ごとに1増えるとタイマを 使ってやってみたのですがうまくいかないorz コンパイルはできるのだが、 testが表示されない 砂時計がずっとでてる状態です。 なにを付け加えればいいですか?
>>720 >717
>712
>710
>708
想像つきそうなものだが・・・。
このループでスレッドが占有されてるから、同じスレッドで動くSystem.Windows.Forms.Timerはカウントできない。 カウントにタイマを使うんじゃなくて、ループの中でSystem.Threading.Thread.Sleepを使って時間を稼ぐとか。 というかUIを止めてていいの? ループを使わずに、タイマで発生するイベント内で存在チェックをするべきだと思うんだけど……。
Windows.Forms.Timerを使ってるならそのプログラムがループしてる間は イベントは発生しない。つまり、countは永遠に加算されない。 根本的にロジックを見直したほうがよいが、あえていうなら、内側の ループにDoEventsをいれる。
>>723 バカが。せっかくオレがスルーの練習させようと思ったのによ。
あっさりレスすんなよ。
>>722 While count < i
system.Windows.Forms.Application.DoEvents
End While
こうやれば、countに数値が加算されるので、できないこともない。
が、普通はそう言うやり方はしない。
>>729 えええええ、一体どうやれば。ソースコードを掲載してくださいよ。
ワーカースレッド内ならThread.Sleepでいいが同一スレッド内だとUIが固まる。
732 :
デフォルトの名無しさん :05/01/15 22:39:11
>>722 結局何がしたいのかをもう少し明確にしないとまともな人の回答は得られないよ。
DoEventsとか書いてる人はまともなプログラマじゃないから。
>>732 え?DoEvents使っている人は全てまともじゃないって意味ですか?
>>733 お前が学生なら違うやり方を考えたほうがいい。
お前が働いててVB使ってるなら先輩に相談しろ。
俺は先輩からループ構造はifしか使うなって叩き込まれたなぁ。
736 :
デフォルトの名無しさん :05/01/16 01:09:58
ListViewで選択されているアイテムのインデックス番号を取得する方法はないのでしょうか? 調べてみても、インデックス番号を指定して選択や ListBoxのインデックス番号取得しか見つかりませんでした。
ListView.SelectedIndices
738 :
デフォルトの名無しさん :05/01/16 01:25:41
namespaceを利用してパッケージ化したいんですが、 何かサンプルになるようなページ知りませんか? 基本的な機能をもつクラスをライブラリ化したいです。
>>737 出来ました!ありがとうございました。
それも先ほど見つけたのですが、経験不足故少し勘違いしてたみたいです。
すいません。変数名.ControlChars.NextLineで改行文字が付加できますよね? 今度は改行文字があるかないかを判定してあれば削除したいのですが どうすればできるんでしょうか?すいませんが教えてやってくださいまし。。。
741 :
デフォルトの名無しさん :05/01/16 06:34:42
>え?DoEvents使っている人は全てまともじゃないって意味ですか? そんなことはないと思うよ。DoEventを使ってシーケンシャルに書く方が 処理の流れがわかって解りやすい。DoEventを使うのが正解。 レベルの低い先輩はDoEventを使わない。 さらにレベルの低い先輩はDoEventを多用する。 こういう性質があります。
743 :
MSのバグ発見? :05/01/16 07:37:21
'すいません。で改行文字が付加できますよね? ' 今度は改行文字があるかないかを判定してあれば削除したいのですが() 'どうすればできるんでしょうか?すいませんが教えてやってくださいまし。。。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strData As String RichTextBox1.Text = "test" + ControlChars.NewLine + "A" strData = RichTextBox1.Text Dim src, dest As String, n As Int16 For n = 0 To strData.Length - 1 src = strData.Substring(n, 1) If src = ControlChars.NewLine Then Exit For '判定できないBUGか? dest += src Next RichTextBox2.Text = dest End Sub 何で判定できないの? わーいバグ駄馬具
>>743 改行文字が1文字だと決め付けているおまえがバグ
>>743 アホさ加減でギネスに認定されました。
おめでとう!!
746 :
MSのバグ発見? :05/01/16 08:48:51
Debug.Write("漢字は一文字で判断するくせに、NewLineも一文字で読めよボケー")
身近にいれば泣きたくなるが、遠めに見てると微笑ましいな
748 :
MSのバグ発見? :05/01/16 09:03:14
>改行文字が1文字だと決め付けているおまえがバグ アフォか? NewLineは一文字だろが。漢字が8バイトだから つーて8charに分解するかボケ。 お前な。ストリングつーのは文字あつかうオブジェクトなんだよー。 文字扱うオブジェクトで何でバイト展開すんだよ。 そういうのを中途半端いうんやな。わかったか?
>748 >745
750 :
デフォルトの名無しさん :05/01/16 09:48:55
>これはどういうこと? >>742 .●DoLoopの使い方 Do While (n) Loop Do Loop While (n) Do Until (n) Loop Do Loop Until (n) 'whileは実はしばしば初期化が2重になる。しかも忘れる。 'UNTILは実はしばしば後処理が2重になる。しかもわすれる。 '使い分けが面倒。取り立てて意味なし。馬鹿な言語構造の見本としてしばしば '取り立たされた。 Do If n Then Exit Do Loop '仕方がないから、これに統一する。
751 :
デフォルトの名無しさん :05/01/16 10:29:27
>>748 8バイト漢字ってすごいな。 UTF-64?
>MSのバカ 恥ずかしくて釣り師を装いたくなるのは分かるが、もう痛々しいだけだからやめとけ
754 :
デフォルトの名無しさん :05/01/16 11:50:43
>恥ずかしくて釣り師を装いたくなるのは分かるが、 >もう痛々しいだけだからやめとけ 痒いとか痛いとか、幼児語つかわないで、できたらオブジェクト指向にそって 反論してみたら? どちらかというと君の方が痛いような。
>>754 ちゃんと相手してほしいなら、まず君がみんなと同じ
土俵に上がってこないとね。でも幼児なら時間が立てば
大人になるけど、君の場合はどうなんだろう。
大人は大人だけど健常者じゃないよね。待てば直る?
お前らさ、精神異常の人間をよってたかって袋叩きにするってのは 人間としてどうなのかな。放置してやれよ。せめてもの優しさを見せようぜ。
>>754 ホント典型的な人。議論をケムにまくために、突拍子もない
飛躍をする。
得塁数、ホウボウ、という単語でググってみよう。
きっと君のお友達に会えるよ。
彼なら最後の最後まで君に付き合ってくれると思うから、彼の
掲示板に書き込みしてごらん。
↑
おお、いいアドバイス。オレ精神科医になる素質ありじゃん?
>>758 知ってる。プロ野球板にスレもあったけど消えたな。
ホウボウに比べたら、
>>754 なんて全然可愛いもんだぞ。
オレなんか微笑ましく見てられたもん。
>>760 ホント、分かりやすい人w
あ、ごめんなさい。彼にレスするのはこれで最後にしますね。>他の皆さん
>>760 >>758 は覗いて掲示板に書き込んでみてね。
もちろん喧嘩売るんですよ。
あ、あなたの場合普通に書き込めばいいのか。
>>754 と
>>760 が同じ人なのか別人なのか分からないけど、
いずれにしろ、最近精神異常者のかっこいい捨て台詞ブームが
起こってることはご存知ですよね。ここまでの経緯から、
かなり期待されてますよー。さあ、どうぞ!!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
765 :
デフォルトの名無しさん :05/01/16 13:13:37
>大人は大人だけど健常者じゃないよね。待てば直る? 待ってもむりだね。 >お前らさ、精神異常の人間をよってたかって袋叩きにするってのは >人間としてどうなのかな。放置してやれよ。せめてもの優しさを見せようぜ。 狂いかけってのが天才なんだよね。君は超健康優良児だな。W ま、プログラマーにはもってこいだ。がんばりたまえ。
なぜ放置できない?
767 :
デフォルトの名無しさん :05/01/16 13:14:07
>ホント典型的な人。議論をケムにまくために、突拍子もない >飛躍をする。 ソリャおめーが飛躍してんじゃないの。説明になってないじゃん。 プログラムのプもないし。 760を見習いなせい。 >いい歳してそれが本気で分らないようならそれこそ「精神分析の対象」だわ。 いい歳して、せめて精神分析の対象になれるぐらいにはなりなさいね。
768 :
デフォルトの名無しさん :05/01/16 13:14:46
>760 ご丁寧にありがとう。 印刷と表示の定数 印刷および表示の関数を呼び出すときに、実際の値の代わりに コード内で次の定数を使用できます。 メンバ 定数 等価な値 説明 CrLf vbCrLf Chr(13) + Chr(10) キャリッジ リターン文字とライン フィード文字の組み合わせ。 NewLine vbNewLine Chr(13) + Chr(10) 改行文字。 たいそうにControlChars モジュールのメンバのくせにバイトの組み合わせと等価かよ。W >String.Replace メソッド (String, String) >このインスタンスに出現する指定 String 文字をすべて、別に指定した String 文字に置換します そうだそうだ、これがベストだな。
769 :
デフォルトの名無しさん :05/01/16 13:21:52
>いずれにしろ、最近精神異常者のかっこいい捨て台詞ブームが >起こってることはご存知ですよね。ここまでの経緯から、 >かなり期待されてますよー。さあ、どうぞ!! コラー、精神正常者。可もなし、付加もなし。道端の石ころといっしょだよ。 チョックラ小便ひっかけさせてもらってもいいかい?
>769 0点。ご苦労様。再投稿はいらないですよ。
えらくスレが進んでると思ったら、改行文字すら扱えないバカの 粘着レスかよ。
誰かCRLFぐらい教えてやれよ。
773 :
デフォルトの名無しさん :05/01/16 16:24:49
0D 0Aの順番をポカミスして0A 0Dになっててハマったことならあるな。
vb定数(vbCrLf)が楽でいいじゃん。
iモードのメールを閲覧するプログラムを作っているのですが、絵文字の表示で躓いています。 絵文字の画像(gif)は用意してあり、ブラウザコントロールで表示させたいのですが、 実行ファイル内に埋め込んだ画像をブラウザコントロールで表示する(imgタグで使う?)方法はないでしょうか?
すいません、
>>740 の者なんですが、結局改行文字(CRLF)を
削除するメソッドってないんでしょうか?
基本的な事かとは思いますがわからないので教えてください。
テキストファイルの内容を全部読みこむ にはどうすれば?
778 :
デフォルトの名無しさん :05/01/16 21:22:28
Inputとかではできないのですか?
>>760 さんが教えてくれたMSDNを見て、自分でちょっと考えてみたんですけど
行末の改行文字を削除するなら
Dim str1 As String = str2.Replace(ControlChars.NewLine, "")
で出来るんでしょうか?それか
Dim str1 As String = str2.Replace(Chr(13) & Chr(10),"")
でやればいいんでしょうか?改行コードはCRLFです。
782 :
デフォルトの名無しさん :05/01/16 21:42:18
>>781 やってみりゃわかるじゃん。こんなとこで質問するより余程結論が早い。
>>777 その辺のことってMSDNに結構丁寧に書いてあると思うが。。
まずMSDN読めば?読んでわからなきゃプログラミングなんてやめるが吉。
>>780 Inputってなんだよ? もっと具体的にやりたいことを書いて。
StreamReaderを使わないなら、ループしながら一行ずつ変数に
加算していくような手段しかないよ。
>>781 実際にやってみた?
>>784 テキストファイルの内容を全部読み込んで
その中身を別のテキストファイルに付け加えたい
のです。
書き込むときはどうすれば?
>>782 、
>>785 実際に試す事ができるならすぐにでもやりたいんですが、
VB.netを使って作業するのが会社のPCでして、自宅のPCには
.net環境がないんですよ。なのでとりあえずこんな感じでいいのかなって
いうのが聞きたかったんです。勘違いさせてすいません。。。
何度もスイマセン 読み込んだものを、テキストファイルの中身のテキストの後に 付け加えるのがどうしてもわからないです・・
StreamWriter(String, Boolean, Encoding)で追加される方のファイルを追加モードで開ける StreamReader(String, Encoding)で追加する方のファイルを開ける StreamReaderのReadToEnd()メソッドで全部読み込んだのを StreamWriterのWrite(String)メソッドで書き込む 両方ともClose()を呼んでストリームを閉じる こうやって一見親切に教えてやって本人の成長を妨害してみるテスト。
>>790 これ、すごそうですね。いずれVS.net買おうと思ってますけど
それまでの自主勉強用に入れてみたいと思います。
有難うございました。
テキストファイルがEOFかどうかを判定する方法を教えていただけないでしょうか?
まずその文章の意味を教えていただけないでしょうか? StreamReaderで開けてるのならPeek()メソッドで返値が-1かどうかで判断する。
テキスト関連の質問が続いてるようだが、同一人物か? 貼ってるリンクとかしっかり熟読してから質問したほうがいいよ。
VB6もほとんどやった事無いのに面接で 「VB.NETならまかせて下さい。」 って大見得切ってしまった派遣プログラマーと予想。 会社で試行錯誤してる姿なんて周りに見せられよう筈も無い。
他のスレで無視されたのでここで質問します。 waveファイルを鳴らす方法(apiを利用して?)がなんとか分かったんですが、 その後再生中か停止中かの情報を取得するにはどうしたらいいのでしょうか?
>>663 できました!!何でこんな大事な事を、ヘルプや参考書は載せないんだろう・・・
.NET2002の時にはあったのかな??
いつまでもこんな非オブジェクト指向な仕様に頼ってんじゃねぇ、という暗黙のメッセージ。
805 :
デフォルトの名無しさん :05/01/17 13:56:43
VB.NETから、java起動させて、javaのプログラム を実行することはできるでしょうか? どうしてもそのやり方がわからなくて困ってます。。
807 :
デフォルトの名無しさん :05/01/17 14:43:47
>>807 それだけでいけるんですか?
ファイルの実行はどうすれば?
>>808 >>それだけでいけるんですか?
いけるかどうか試してみろ
>>ファイルの実行はどうすれば?
同上
ファイルの実行できないですよ?
Shell("ここに実行したいファイル名")ですよね? Shell("@") ↑がコマンドプロンプトに@を入力してるのと同じなんですか?
812 :
デフォルトの名無しさん :05/01/17 16:09:16
>>808 Shell("java.exe javaのファイル名")
Shell("start javaのファイル名")
か、Process.Start() でも使え。
813 :
デフォルトの名無しさん :05/01/17 16:12:06
ASP.netなんですけど、ADへのログインユーザーIDを取り出したいのですが、どうやれば良いのでしょう? System.Environment.UserDomainName だと名前 System.Environment.UserName だと、ASPの名前?が出てきます。 他に何かありませんか?
Processコンポーネントを使って↓ようにやってみたのですが うまくいきません・・・・・何が違うのでしょうか? Shellでやりたいんですがうまくいかないですし・・ With Process1.StartInfo .FileName = "java.exe" .WindowStyle = ProcessWindowStyle.Normal .Arguments = "ファイル名.class" Process1.Start() End With
開始時のディレクトリ?
816 :
デフォルトの名無しさん :05/01/17 17:18:49
Shell上手くいかないか? ”CMD /C "+... で上手く行くんじゃないか Process.Startってはじめてきいた。そんなんができるんか? なら、Shellよりその方がいいとおもう。 理由はしらんけど。
System.Diagnostics.Process.Start("ファイルパス") だな。 jarが動くか確認してみたが、問題なく動いたぜよ。
マイクロソフトのサンプルに良く書いてある Console.Write だけど Consoleとはいったいどこだろうか。 サンプルファイルを実行してもなにも表示されなくてこまっちゃう
コンソールとか標準出力とかいう概念を分からない人までいるのか……。
820 :
814 :05/01/17 17:36:18
適当にノートパッドとかいろいろ開いてみたんですが うまく起動するし、ファイルも開けるんですよ。 でもclassファイル実行しようとすると コマンド画面が一瞬でてすぐ消えるって感じです。 Shellはよくわからないんですが、javaでtest.classを 実行したい時は具体的にどのように記述すればよいのですか? 一向に進まないので、恥じを承知で書きます。
せっかちだな プロジェクトファイル作るときに指定してる 作った後に変更したければ プロジェクトのプロパティ 出力の種類 「windowsアプリ」→「コンソールアプリ」
つーか、 java test だろ? コマンドラインで試してからShellで呼べよボケ。 環境変数とかカレントフォルダとかうぜえならバッチファイル作って叩け。
823 :
814 :05/01/17 17:54:35
普通に実行したらできるんですけど・・・ やばいまじわかんないorz
>>823 >.FileName = "java.exe"
振るパスにしてもダメ?
>>822 怒りたい理由はわかるが、落ち着け
>>823 出来ないってことは、エラーを吐き出してるんだが、なんていうエラーを吐き出してるか、まずそれを書いてみ。
最近のjavaは java test.java なんていいかげんな書きかたで動くようになったのか?
828 :
デフォルトの名無しさん :05/01/17 19:18:40
Shell と Processコンポーネントどうちがうんですか? ハッキシ言ってこたえてほしい。
814のやり方でなんですが、java.exeは起動 できるようなんですが、実行がうまくできて ないようです。テストとしてjavaのプログラムは "hello"をループで永遠表示させるものにしました。 VBを実行して、一瞬でるコマンドプロンプトの画面に E〜〜〜NoFoundERROR\Z:MY〜〜って表示され、その下に helloと一回だけ表示されます。 一瞬でほとんど読み見とれなかったのですがかんな感じです。 全く実行されてないわけではないようですが・・・
>>829 javaのソースを抜粋して載せてください。
そっちに原因があるかも。
831 :
デフォルトの名無しさん :05/01/17 19:22:16
JAVAってドットネットのプロジェクトにいれて、動かせないの? C#とVBとC++と1プロジェクトで混在しても動くんでしょ?やったこと ないけど。
832 :
デフォルトの名無しさん :05/01/17 19:24:11
>829 結果をファイルに落とすのがふつのやり方でしょ。javaの場合。
ハードディスクに保存してあるShift-JISテキストファイルをSystem.IOで文字列変数に読み込むと 勝手にUnicodeに変換されちゃってるのかい?オレたちの許可なしに。
>>833 Shift_JIS とかそういうのは文字列そのものじゃなくて文字列を「バイト列」に符号化するときの取り決め。
VB的には文字列は昔からUnicode。生のデータに触りたければ byte の配列にでも入れておくべし。
>>790 こういうのってどういう人が使ってるの?
普通にVisual Studioじゃダメなの?
>>830 いや。全く問題なかったです。
VBとおさないと普通に実行できます。
>>828 俺もその違い気になるな。
誰かあJAVA実行するプログラムかいてやれ!
と初心者の俺が言ってみた
>>837 それはいまだに上手く実行できていないあなたの判断でしょ。
色々意見もらっといて、もしそこに原因があったらどうするの?
>>837 単独で動かすときの現在ディレクトリと、VBから動かすときの
現在ディレクトリの違いは?
842 :
デフォルトの名無しさん :05/01/17 20:21:53
終了モードが違うのでは
>>389 試験的なプログラムなんで、こんな簡単なものです
public class Hello {
public static void main(String[] args) {
for(;;){
System.out.println("Hello");
}
}
}
>>841 同じですね
814のプログラムはまちがってますか?
With Process1.StartInfo .FileName = "java.exe" .WindowStyle = ProcessWindowStyle.Normal .Arguments = "ファイル名.class" Process1.Start() ←この行をEnd With の外に書く End With
ファイル名を指定して実行で「java Hello」と入力してOKを押すとどうなる?
最近、VS.netを買ったんですけど VB.netとC#って何が違うんですかね〜? 文法が違うとか見た目が違うとかそういう事じゃなくて VBだと、こんな苦労する物がC#だとお手軽に作れちゃうよとかその逆とか・・・ どちらも詳しい方、いましたら教えてくださ〜い。
>>845 もう相手する必要ねーって。どうせ実行時ディレクトリが違うだけなんだから。
>>843 で同じとか言ってるけど確認方法書いてないし。
どうせ見当違いのことしてんだよ。
>>846 その質問に至るまでにあなたが調べて分かったことは?
レポートよろしく。
>>847 あれから返事が無いところを見ると、まさに図星みたいだね。
>>802 何かもうマジで有難う。求めてたものです。
透過処理画像が重なったとき、ちゃんと下の画像が見える(
>>30 と同じ)
プログラム教えてください(;´Д`)調べても全然わからないしできないし
フォームにテキストボックスを貼り付けました。 そのテキストボックスをダブルクリックすると Private Sub TextBox1_TextChanged(... というメソッドができました。 他のイベント(メソッド)はどのように作成すればよいですか? VB6ではイベントの一覧から選べたのですが・・・ すみません。よろしくお願いします。
>>852 いま開いてるコードエディタの右上に見当たらないか?
>>853 通常はVB6と同じように表示されるのですか?
こちらでは
(Declarations)
Finalize
InitializeComponent
New
TextBox1_TextChanged
しか表示されていません。
何か設定があるのでしょうか?
ちなみに.NET2002です。
すみません。わかりました。 左のコンボボックスでコントロールを選択しないといけないのですね ありがとうございました。
テキストボックスで、現在選択されているテキスト上にマウスカーソルが来た時、マウスポインタを変更。 現在選択されているテキスト上からマウスカーソルが離れると、マウスポインタを元に戻す。 ということをやりたいのですが、どのようにすればできるでしょうか? テキストのサイズを測ってやるやり方だと、スクロール前なら何とかなるのですが、 スクロールが起こると座標が変化してしまい、位置がずれてしまいます。
857 :
デフォルトの名無しさん :05/01/18 18:16:54
あげ万
こ
859 :
814 :05/01/18 20:10:55
昨日ここに、java実行について質問したものです。 ちょっと用があって、今ここチェックしました。 いろいろ答えてくれた方々ありがとうございました。 どうも、エラーは、 Exception in thread "main" java.lang.NoClassDefFoundError: こんなので、どうもクラスパス設定に問題があるようです。
>>859 じゃあインポートしているクラスが見えてないんじゃないの?
起動時に java -cp 〜 でクラスパスを指定すれば?
>>859 NoClassDefFoundError:
の後ろに何か付くだろ?
>>861 バカのくせに、この情報は必要不要の判断を勝手にするから
なかなか正解に辿り着けないんだよな。
っていうか、昨日から釣りとしか思えないんだよな、回答する側も。 フォルダが違うか余計な拡張子付けてるかだけの話だろうに。
エラー出してるVBコード自体から、出てるエラーメッセージまで 余すところ無く全部吐き出してみそ。話はそれからだ。
もう誰かこいつと同じ事やってやれ
VBでボタンはっつけて、クリック↓これ
With Process1.StartInfo
.FileName = "java.exe"
.WindowStyle = ProcessWindowStyle.Normal
.Arguments = "Hello"
End With
Process1.Start()
javaは、↓これ
public class Hello {
public static void main(String[] args) {
for(;;){
System.out.println("Hello");
}
}
}
これまんまやって、ここのやつができたら,
>>859 は
諦めろということだ
ちなみに俺は、家にjava入ってないから無理だ
869 :
デフォルトの名無しさん :05/01/19 00:21:21
あれできね、なんでだ
ゲームとかリアルタイムっぽい事するために、 スレッドの基本的な使い方まではなんとか分かったのですが、 正確に16msごとにループ(1秒に60回にするため)する制御が出来ません・・・ いまんとこGetTickCount()を使ってヘタレながらループしてるけど このタイマーの精度は良くないっぽいです。。。
871 :
デフォルトの名無しさん :05/01/19 02:37:10
すいません、VB.NETの初心者ですが、 vb>netの使い方など分かりやすいサイトもしくは本 ってありますか?なんかたくさんありすぎて 困ってます。。
VB.NETには標準でデータを入力できるグリッドはありますますか?
ありますますます
>>874 DataGridでしょうか?
これはDBと接続しなくても使えますか?
使える。
いろいろ調べたんですが、mSecオーダで時間を返してくれるやつが無いです・・・。 間隔を測ってメソッドを呼ぶもの?は見つかりましたがそれじゃないです・・・。 誰か知りませんか?
>>876 どうも!
ちなみに使い方がわかるサイトなどあれば・・・・
だめ?
DataGrid貼り付けました。 カラムヘッダーを設定したいのですがそれらしいメソッドがありません。 激しくむずい
881 :
イチゴ :05/01/19 14:43:38
vb.net2003でスキャンディスク・デフラグの自動実行・終了させたいのですが どうすればいいですか?
Protected Overrides Sub Finalize() っていつ動くの? ブレーク張っててもさっぱり来ないんだけど・・・
GCに片づけられる時。 具体的には(或いは魔法の呪文的には)、 WeakReferenceによる参照を除く参照が無くなってから、 そのオブジェクトのジェネレーション以上のオブジェクトを片づけるGCが走った時。 実例を挙げれば、 Dim a As new Hoge() a = Nothing GC.Collect() で発生する。
誰でも読めるMSDNも読まずに質問してる奴が多いな。流石VB
ガベージコレクタの仕様は.NET開発者ガイドに明記してある。
仕方ないよ。VB6上がりが多いんだから。これからドットNETやるとなって、 C#があるのにわざわざ好き好んでVB選ぶ奴なんかいるわけないだろ。
それにしたって、マイクロソフトがせっかく手間ヒマかけて用意してくれた ドキュメントを読もうとしないのはなぜなんだろうね。 あーいうのはちゃんと読んだほうが時間と労力の節約になるのになー。 字が読めないわけでもなさそうだし・・・
テキストボックス(複数行)の文字列内の改行を他の文字に変換したいのですが、 どうしたらいいでしょうか? 例 りんご ごりら らっぱ ↓ りんご→ごりら→らっぱ
894 :
デフォルトの名無しさん :05/01/20 01:06:22
>>892 TextBoxのTextプロパティは改行を含めた文字列を持っているから、
適当に文字列操作関連のメソッドを使って好きな文字列に置換。
相談なんですが VB.NETでOracleのデータベースへ接続する普通のC/Sアプリを 作ることになりました。 この際、Oracleへ接続する方法がいくつかあるようですが お勧めはなんでしょうか? OLE.NETやODP.NETなどがあるようですが・・・・ よろしくお願いします。
>>895 それならまずADO.NETのOracleClientを使いたくない理由を説明すべきだろ?
>>896 ADO.NETが標準的なやりかたですか?
ありがとう
OLE.NETがADO.NETだと思ってました。違うんですね。
ありがとうございました。 バッチリできました。
質問です。 Chr関数を使って文字コードを取得したいんですが、 128(&H80)以上になると文字コードが0と表示されてしまいます。 こういった場合はどうしたらいいですか?
たとえばパネルとかに、線とか画像とか描画した今、正にそれ自体を Imageに格納できないのですか??? ファイルに保存はできるのに・・・。
>>902 入力されたキーのコードを取得したいのか、コード表を生成したいのか
などなど、もう少し具体的に「何をしたいのか」を書いてくれないと、
できるのかできないのか、そもそも方法が合ってのかもアドバイスできません。
>>903 902です。
すいませんでした。説明不足で・・・。
具体的にはコード表を生成したいんです。
ですから0〜255(FF)の文字コードがあれば可能なんですけど、
chr関数には0〜127までしかなく、128以上は・・・。
もし、chr関数を使えないとしたら
chr関数を使わない別の方法でコード生成とかできる方法とかって
ありますか?
どうかよろしくお願いいたします。
>>904 文字コードの128以上に「何を」表示したいんだ?
>>904 以下の6つのコードを chr関数で Char型にして String型の1つの変数に
代入してごらん。128以上のコードが何に使われているのかが解るよ。
138 230 146 163 130 234
>>901 Imageに格納できないのですか?
自分がこんな質問されたらムカつかないのかな。
>>907 別にいいんじゃないか?
やり方を聞いてるわけじゃないし。
後出しで「じゃぁどうやればいいんですか」なんて言い出してきたら放置だが。
>>901 出来る。
諸先輩方教えてください。 VB6.0は結構やりました。 このたびVB.NETの仕事をやることになりました。 こういった人間が参考にしたらいい書籍がありましたら 教えてください。
幅が広過ぎてなんとも。 大きめの本屋でVB.NETの欄をざっと立ち読みしてみたら?
質問です。 HttpWebRequestでサーブレットと通信するソフトを作るのですが、中身をgzipで圧縮したり、解凍したいのです。 どこかにgzipのDLLはありませんか? もしくは参考書、おすすめのHPとかないでしょうか。 よろしくお願いします。
↑ すみません。 なんか誤解をまねくというより書き方がおかしいです。 ×:サーブレット ○:Webサーバー
915 :
デフォルトの名無しさん :05/01/21 15:42:58
Compact Framework にてPDAのアプリを作り始めました。 ・form1にはbutton1〜button4がある。 ・それぞれクリックした時に画像ファイル名を引数で渡してform2を生成 ・form2にはform1で選択した画像を大きく表示する。 こんなん作りたいです。でもよくわかりません。 [button1クリックでtest.jpgをform2に渡してform2のloadイベントで自身のpictureboxに取得した画像を表示] の方法について教えてください。
普通にコンストラクタに書けばいいんじゃないか?
質問です。 Bというスレッドで作ったコントロールを、Aというスレッドで作ったフォームに貼り付けたいのですが、どうすればよいでしょうか?
諦めてフォームが動いているスレッドでコントロールを作るようにする。
>913 >914 ありがとうございました。 やってみます。 ただ、英語が…orz
英語のドキュメントぐらい読めないとやってけないよ。 技術系のドキュメント英語は基本的に平易だし。
俺は難解な日本語のMSDNを四苦八苦しながら読んでいるうちに、 英語のMSDNもなんとなく読めるようになった気がする。(w
M$の訳はおかしいから日本語と英語見比べないとはまる事もあるぞ。
実情は米M$の外注に勤める日本人PGが 和英辞典片手にせっせと書いてたりするがなw
なんかきな臭いときは必ず英語版も確認するようにしてる。
画面のプロパティでDPI設定を「大きいフォント」に変更すると フォームのレイアウトが崩れてしまうのですが、どう対処 したらよいでしょうか。 おそらくFormのAutoScaleというプロパティが関係あると 思うのですが、これをTrueにしただけではダメでした。 他に注意しなければならないプロパティ等はあるでしょうか。
テキストファイルからStreamReaderで1行ずつ読み込み、それを指定ミリ秒毎に 送信ってなものを作ろうとしてるんですけど、ツールのタイマーコントロールって 精度悪いですよね?1秒単位とか500ミリ秒単位なら大丈夫っぽいけど 200ミリ秒単位くらいからかなり精度が怪しくなります。 高精度のタイマーを作るにはやっぱりAPI使うしかないんでしょうか? APIはさっぱり分からないので、どなたかいいサイトなんかありましたら 教えてください。
System.Timers.Timerを使う。
>>926 .NETはどうかしらんが、6.0時代はTimerを使うと処理の間隔が
マシン環境によって変わってくるからなぁ・・・。
スレッド立ててループで回して送信したら?
>>907 何か良く分かりませんが、迷惑掛けたのならあやまります。
すみませんでした。
932 :
デフォルトの名無しさん :05/01/22 14:07:06
vbではglobalでフォーム間の共通変数がみれたのに vb.netはなくなったのですか? どうやればいいのだろう?
933 :
デフォルトの名無しさん :05/01/22 14:15:12
>>926 ていうか本当にmSec単位で処理する必要なんてあるの?
こういうこと書く人って9割方本人の「思い込み」で書いてると思う。
気になるな。テキストファイルの1行ごとを定期送信するのにAPIのタイマーじゃ精度不足って どんな案件なんだろうか。
他プロセスの動作負荷にはげしく増減があるとか? ‥‥つか、パソコンの処理能力が足りてないのかも。
いや、そういう意味じゃなくてmSecオーダーのリアルタイム性が要求される処理なんて そんなにないんだよ。 単に「バッファ」って考え方がわかってないだけのような気がするんだけど。
Javaで言うHTMLEditorKit.Parserみたいなクラスはないでしょうか。
>>939 人に物を尋ねるときはまず自分の問題が他人に正確に過不足なく伝わるような
文章を書くこと。
他人に「エスパー」であることを期待しないこと。
こんなの中学卒業までにしっかりマスターしとけよ。
フォームのレイアウトが崩れるって言われてもねえ。。
文章で問題を表現する自信がないなら、
とりあえずどっかのアプロダに画像上げるとか手はあるでしょ。
938は具体的にそのクラスがどういう機能なのか説明すべきだな。
他の方どうぞー 940さんはもう書き込まなくていいですよ。
>>942 はあ?説明しなきゃいけないの?常識として知っといてほしいな。
まぁあんた以外には伝わってると思うが・・・
随分下手な煽りだな。
>>945 わかんないのか・・・なんでわかんない奴に限って書き込むんだ?
おっとと・・・そう書いたらみんな黙っちまったか。 ホントしょーもねー奴ら
>>948 あれ?とっくに自己解決してたんですけど。知ってますよ。
調査に何時間もかけちゃいました?だとしたらすいません。
950 :
デフォルトの名無しさん :05/01/23 10:32:45
forループ処理でコントロールのロックを防ぐ、DelphiでいうとProcessMessageのような 機能は.NETではどのようにするのでしょうか?
Application.DoEvents()かな。
952 :
950 :05/01/23 11:39:09
>>951 純粋に問われたことに対する答えとしては正しいけどなんかなあ。
こういう質問には、「そもそもUIスレッドにそういうコード書くのが間違い」
って答えが正解だと思う。