1 名前:デフォルトの名無しさん [2007/07/10(火) 12:23:42 ] 前スレ VB.NET質問スレ (Part21) pc11.2ch.net/test/read.cgi/tech/1177299756/ テンプレは2〜10くらいまでの間にある予定
652 名前:651 mailto:sage [2007/08/14(火) 18:16:58 ] >>650 e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1) ちなみにこれは座標(10,10)だけが塗りつぶされます。 あおる前に試してから書き込め、糞が。
653 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 19:52:58 ] どうでもいい
654 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 19:55:35 ] >>558
655 名前:デフォルトの名無しさん [2007/08/15(水) 11:52:54 ] VB.NETからエクセルに出力する時の質問です。 データベースの内容をエクセルに出力したいのですが(行は100行×列は10列くらい)、 この場合、VB.NETからエクセルのセルに直接書き込んだ方が早いですか? それとも、エクセルのマクロを呼び出して、マクロ側でデータベースの内容を セルに書き込んでいった方が早いですか?
656 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:23:04 ] 後者
657 名前:デフォルトの名無しさん [2007/08/15(水) 15:17:28 ] 教えてください。 DataGridViewにて、指定したセルの左上の座標を取得する方法はありますでしょうか? ありましたらその方法を教えてください。 宜しくお願いします。
658 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 15:22:30 ] DataGridViewのメンバに目を凝らすんだ
659 名前:657 mailto:sage [2007/08/15(水) 15:52:18 ] >>658 AccessibilityObjectプロパティを利用して解決できました。
660 名前:デフォルトの名無しさん [2007/08/15(水) 20:51:23 ] Windowsフォームで別スレッドからコントロールを操作するには? (www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html ) 引数がない場合、サンプルのように次の書き方でOK。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox2.Focus() End Sub ↓ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t As New Thread(New ThreadStart(AddressOf worker)) t.Start() End Sub Delegate Function FocusDelegate() As Boolean Sub worker() ' textBox2.Focus()の実行 Invoke(New FocusDelegate(AddressOf TextBox2.Focus)) End Sub 次のように引数も渡したい場合、どのように書きなおせばよいのでしょうか? Dim dtNow As DateTime = DateTime.Now Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox2.Text += dtNow.ToString() & vbcrlf End Sub ↓ ?
661 名前:デフォルトの名無しさん [2007/08/16(木) 09:59:26 ] 文字列のフォーマットについて教えてください。 "abcdefgh" という文字列を "abcd-ef-gh" という風に変換したい場合、 VB6の時は Format("abcdefgh","@@@@-@@-@@") で出来ました。 これをVB2005で表現するには、 VB6.Format("abcdefgh","@@@@-@@-@@") といった風にしかできないのでしょうか? VB6.Formatを使わずに簡単に上記操作が出来る方法があれば教えてください。
662 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 10:07:34 ] SubstringでぶったぎってConcatで繋げればいいよ
663 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:51:09 ] ToStringメソッドを調べると良いと。
664 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:05:33 ] TreeViewについて教えてください。 あるノードが、あるノードより上にあるか下にあるか 調べたいのですが簡単にわかる方法はありますでしょうか? If hogeNode.index > hoge2Node.index Then End If ですと階層が同じでないと比較できないので困っています。 よろしくお願いします。
665 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:22:03 ] 上?
666 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:29:26 ] >>665 ツリーを全展開したときに、より左上にあるものが上といった感じです。
667 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:34:31 ] TreeNode.Parentを辿って数えれば?
668 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:48:04 ] 右上にあっても上?
669 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:58:41 ] 上位という意味だろ より親
670 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 15:34:46 ] 右上も上です。
671 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:02:58 ] プロパティの質問です。 会社の先輩にクラスのフィールドは必ずプロパティで介せよ!って言われたのですが、 以下のコードのようにmfield1とmfield2の違いがよくわかりません。 mfield1はプロパティ内で入出力操作みたいなことはできるのですが、下のコードのように 特に何もしないプロパティなんて意味あるのでしょうか?こういうプロパティがクラスに沢山あるのですが、正直面倒です。 先輩に聞いたら元請にそう指示されたと言ってましたが・・・ Public Class Class1 Private mfield1 As String Public mfield2 As String Public Property Field1() As String Get Return mfield1 End Get Set(ByVal value As String) mfield1 = value End Set End Property End Class 確かに以前Javaの引継ぎの仕事で貰ったソースも、getter、setterが無数に書かれてましたが、return とクラスの変数の割り当て以外何もしていませんでした。 いまいち利点がわかりません。
672 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:11:34 ] >>671 そのうち昔は無駄なことをしていたなぁ ということになるからそれまでは我慢
673 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:41:00 ] C#3.0をまて
674 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:55:15 ] >>671 読み書きの処理をインターセプトして値のチェックや変換ができるというのも利点だが、 そういう処理の必要でない単純なプロパティを含む場合の利点としては フィールドと違いInterfaceにしたり継承でoverrideできること。 特にリモート呼び出しなどではInterfaceであることは重要になる。 その為プロパティが花盛りなのは事実だが大半が単純な構造のプロパティであることから、 プロパティによるコードの増大を何とかしようとする動きはある。 1.IDEのサポート機能で強引にsetter/getterを大量生産する。 2.基本的な構造のプロパティを簡単な構文で書けるようにする。 3.パブリックなフィールドは自動的にプロパティにする。 1は現状のJavaやらC#で盛ん。 2と3は言語の拡張で対応。次版のVBやC#はこの方向。 3はあまりみないが、VB6のActiveXクラスのパブルックフィールドがこのやり方だった。
675 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 20:02:10 ] >660 解決しました。 660の質問は却下します。
676 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:38:41 ] >>664 nodeにlevelってプロパティがあった様な。
677 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:48:32 ] 質問させてください。 ドラッグアンドドロップのコードを記述してるのですが、 ドラッグ元のオブジェクト名を取得するにはどうすればいいのでしょうか? VB2005EEを使っています
678 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:54:51 ] オブジェクト名って何さ 型名? それともひょっとして変数の名前のこと?
679 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 22:09:06 ] >>678 picturebox1とかlabel1みたいなクラス?の名前のことです
680 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 22:14:08 ] 1付きはForm1以外はクラス名じゃなくて変数名だと思うぞ で、そんなもんは仮の名前なのでとれるわけもないが 結局その名前を使って何がしたいの?
681 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 22:14:30 ] おまえ却下てw
682 名前:677 mailto:sage [2007/08/16(木) 22:24:00 ] ドラッグ元の画像をドラッグ先の画像にドラッグアンドドロップしたときに ドラッグ元の画像を非表示にしたかったのですが、ドラッグ元の情報を どうやって取得したらいいのか分からなかったので質問しました。
683 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 22:29:25 ] DoDragDrop の返り値見てドラッグ元側が処理すればいい ドラッグ元とかドラッグ先とかの状況が分からないから一般論だが
684 名前:671 mailto:sage [2007/08/17(金) 00:09:30 ] >>674 ありがとう。とりあえずプロパティにしておくのは間違いではないのですね。 ググルと既にJava界ではgetter setterでいろいろ賛否両論が行われてました(@ITの掲示板はついて行けませんでしたが…) しかし、オブジェクト指向のソースとか何の為?って思う箇所が多々あって辛い。 周りに詳しい人もいないんで、何を頼りにすべきか…。デザインパターンとかとりあえず目を通した方が良いのかな。
685 名前:デフォルトの名無しさん [2007/08/17(金) 10:49:21 ] 質問です。 DataGridViewで、”スクロールバーが現在表示されているかどうか”を取得できるプロパティみたいなものはあるのでしょうか? それともDataGridViewの高さ(幅)と、表示されている行(列)の高さ(幅)の合計を比較するしかないでしょうか?
686 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 13:40:41 ] DataGridViewを継承したコントロールですと、 HorizontalScrollBar.Visible で判定できるみたいですね。 それでいってみます。
687 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 15:27:14 ] Textbox(Multiline)のIMEModeの挙動がおかしいです。 No Control に設定(デフォのまま)してあるのに、実行時に 普通に入力できていたのに突然、カナ入力になったり、 オフ固定になったりします。 フォーカスが、他のアプリなどへ移動して、再度該当の TextBoxに来た時に症状がおきやすい様ですが、明確な 発生状況の原因は突き止められていません。 ネットで検索した所、似たような症例が見受けられたが、 クリティカルな回避方法が分かりません。 何か良い方法はありませんでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:52:19 ] 以下のソースで文字をPictureBox1に描画してるのですが、 この文字を、BMP保存したい場合どうすればいいのでしょうか? Dim g As Graphics = PictureBox1.CreateGraphics() ' PictureBox1のGraphicsオブジェクトを取得 Dim fnt As New Font("MS 明朝", 20, FontStyle.Bold) ' フォントオブジェクトの作成 g.DrawString("文字をを描画", fnt, Brushes.Blue, 50, 20) ' 文字を描画 'リソースを開放する fnt.Dispose() g.Dispose()
689 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:56:53 ] 普段から直接描くんじゃなくてBitmapに描くようにすればいいよ
690 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 21:57:14 ] Graphics.FromImage(Bitmap)で取得したオブジェクトに対して描画してBitmap.Save 保存しない場合でもPictureBoxに直接書くよりBitmapに描画してDrawImageの方がいいと思うよ
691 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 22:04:38 ] >698,690 うまくいきました、ありがとうございます
692 名前:デフォルトの名無しさん [2007/08/17(金) 22:58:20 ] すみません、教えてください。 TreeView において、+ 印をクリックしたときにも、MouseUp イベントが発生する のですが、、 それを、Node 本体をクリックしたときと区別する方法はあるものでしょうか? IsSelected プロパティを見てみたのですが、無関係のようで、どうしたらいいもの かと思いまして。すみませんがよろしくお願いします。
693 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 23:13:02 ] NodeMouseClick とかじゃ駄目か .NET 1.1 以前なら駄目か、じゃあ HitTest だな
694 名前:デフォルトの名無しさん [2007/08/17(金) 23:26:06 ] >>693 どうもです。 2.0でしたが、NodeMouseClick でもやはり + 印の方でも反応していました。 HitTest でしたか。調べてみます、ありがとうございました!
695 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 08:47:26 ] >>692 TreeViewMouseDownで マウスダウンポイント = New Point(e.X, e.Y) 選択ノード = ツリービュー.GetNodeAt(マウスダウンポイント) 範囲 = 選択ノード.Bounds() If 範囲.Contains(マウスダウンポイント) Then ボディを選択した Else +を選択した End If
696 名前:デフォルトの名無しさん [2007/08/18(土) 12:15:27 ] >>695 おお!!そうやってやるのですか!!! すばらしい、どうもありがとうございました!! 助かりました!!!
697 名前:デフォルトの名無しさん [2007/08/18(土) 15:07:21 ] VS2005のIDEですが、ソースコード・エディタ上でマウスであちこちクリックしたり、 検索で移動したり、「シンボルの検索結果」での選択で移動したり、とこれらの操作で キャレットの位置が変わっていったとき、その位置を復元して逆たどるためのツールボタン があったと思うのですが、 PCが壊れて、別のPCに変えて同じボタンと思われるものを使ってみたのですが、 同じその機能が働いてくれません。 この機能のボタンはありますよね。なんという名前のボタンかがわかりません。 (試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」 「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で 右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)
698 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 15:13:24 ] そういうのって人に聞くより自分で実際やってみる方が早くないか? それともIDEのメニューやツールバーのカスタマイズ方法を知らないの?
699 名前:デフォルトの名無しさん [2007/08/18(土) 15:56:40 ] >>697 ですから、それをやってみたと書いていますが・・・。それでもできなかったもので。 ↓ (試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」 「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で 右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)
700 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:14:24 ] 進む、戻る、かなんかのボタンだよね 俺も見つかられんのだわw
701 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:14:55 ] たしかすごい意外なとこにあった記憶はあるんだが…
702 名前:デフォルトの名無しさん [2007/08/18(土) 17:46:36 ] 分類:表示 の 一番下のほうにある 戻る か?
703 名前:697 [2007/08/18(土) 20:36:38 ] >>702 あー、それでした!!どうもありがとうございました!
704 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 01:05:24 ] 質問なんですが、フォントスタイルに太字と斜体の両方を 設定した場合に、太字(もしくは斜体)のみを標準状態に 戻す場合のコードってどう書けばいいのでしょうか?
705 名前:704 mailto:sage [2007/08/20(月) 01:12:05 ] 自己解決しました、お騒がせしました。
706 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 09:31:20 ] どれだけ下らなく稚拙な質問でも、同じ疑問を持ってるやつがいるかもしれないから、 自己解決した場合でも、解決法は書くべき。 現在のスタイル-太字 TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold) ちなみに 現在のスタイル+太字 TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)
707 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 12:31:46 ] 地獄への道は善意で舗装されている、という言葉の意味を706は噛み締めるべきだね。 そういう「善意」は、結局のところ、基礎の理解や自分の頭で考えることをスキップする 「コピペ馬鹿」を生み出すだけだと思うが。
708 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 13:14:31 ] >>707 善意から莫迦が産まれるとでも思ってんのか? 莫迦は元々莫迦なんだよ。
709 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:47:18 ] まあ少なくとも馬鹿を矯正するスレじゃないからね
710 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:43:07 ] 質問答えたらだめじゃんw
711 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 17:36:01 ] コントロールを名前で選択するにはどうすればいいのでしょうか。 例えばForm1上にButton1があったとすると、 Dim btn As Button = hoge("Button1") みたいなことがしたいのです。 ググると、Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで 探すというのは見つけたのですが、名称からダイレクトに選択したいです。
712 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:27:44 ] またコントロールを名前で選択したいです厨か
713 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 20:42:55 ] >>711 >Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで >探す という関数を作成すれば >名称からダイレクトに選択 できますよ。
714 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:01:40 ] >>711 Form.Controls(string) やめとけやめとけやめとけやめとけ
715 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:04:12 ] 712じゃないけど(いや712は別に何も言ってないがw) >>711 みたいな「要求」は、ほとんどの場合勘違いの産物だと思うぞ。 ありていに言えば頓珍漢なんだよたぶん。
716 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:49:53 ] >>711 は結局それで何がやりたいのだろう
717 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 21:53:11 ] ちゃんと理解してて目的があって使うならいいんだけど >>711 はそれ以外に方法がないと思い込んでるだけだろうな
718 名前:デフォルトの名無しさん [2007/08/20(月) 23:06:46 ] ListView上をMouseでClickしたとき、何かのListViewItemをHitすると MouseUpイベントが連続して2回立つ、ということはありうるでしょうか? そういう現象が出て悩んでいました。 下に何もないところをClickしたときはMouseUpは正常に一回しか立たない のですが、下にItemがあるところをMouseでClickすると、2回連続してMouseUpが 立つのでした。 そのためか、そのListViewItemは、選択された印のBackColorが付かず、 Selected状態になっているのかどうかわからないのでした。 MouseDownイベントを挟まずにMouseUpが2回連続するというのは変だと 思うのですが、どこを通ってきてそうなっているのかわからないのでした。 こういう現象になった方いらっしゃったら何かご指導ください。よろしくお願いします。
719 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 01:21:52 ] >>718 ありうるかどうかはdebug.printしてみればわかる。
720 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 07:53:11 ] DirextXを使用しているものから色を取得して判定したいのですが Win32APIのGetPixel等では不可能のようでしたが、何か良い方法は ないでしょうか。
721 名前:711 mailto:sage [2007/08/21(火) 09:20:41 ] >>714 さんの方法でできました。ありがとうございました。 やりたいことは、
722 名前:デフォルトの名無しさん [2007/08/21(火) 09:59:05 ] >>719 そうなのです、それをやってみた結果、それがわかったのでした。 MouseUpというのはMouseDownが起きて初めて起こるはずなので、Upだけ 2回連続するというのは、理屈でいけばおかしいと思われました。 しかし、確かにDownを挟まずに、2回通っているのでした。 これは、どこかでDownに準じる何かが起きているが、それがおもてに 現れずにいるというようなことなのか、それとも、どこかまだ不明なところを 経由して再びMouseUpが実現してしまうという構造なのか・・・?? それで、そういったことは起こりうるのか、それが疑問になったのでした。 で、現実にItemが選択状態のBackColorにならない、ということは、その 2回連続しているMouseUpがおきてしまうことと関係があるのだろう、 と推測されたわけでしたが、どなたかアドバイスがありましたらお願いしますです。
723 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:14:55 ] >>720 DirextXを使用している「もの」って具体的に何 >>722 再現しなかったのでした。 そのListViewItemについて詳しく教えてほしいと思ったのでした。
724 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:19:28 ] >>723 スルーされるの覚悟ですが、フルスクリーンで動作するゲームです。 DirectXについて詳しくないのですが、普通にSpy++でハンドル調べて Findwindow等で取得したハンドルを使ってGetPixelしたのですが 駄目でした。
725 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:29:50 ] 普通にGraphics.CopyFromScreenでできない?
726 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 10:35:20 ] 有り難う御座います。帰ってから試してみます。
727 名前:デフォルトの名無しさん [2007/08/21(火) 11:31:28 ] 行列クラスを作ろうとしています。今、 Dim ary(,) As Integer = {{1, 0}, {0, 1}} Dim matrix As New Matrix(ary) のようにやっていますが、 Dim matrix As New Matrix({{1, 0}, {0, 1}}) とやることはできないでしょうか。 また、a22 = matrix(2, 2) で a22に1が入るなどとやりたいのですが、 そういうことは可能でしょうか。 Array は Inherits できないようなので、無理なんですかね?
728 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:34:12 ] >>724 FPSゲームのチートソフトでも作る気かw
729 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:38:29 ] >>727 >Dim matrix As New Matrix({{1, 0}, {0, 1}}) コンストラクタの引数に配列をとる >a22 = matrix(2, 2) 既定のプロパティ
730 名前:729 mailto:sage [2007/08/21(火) 12:00:46 ] すまん上の方はもうやってたな Dim matrix As Matrix = New Matrix(New Integer(,) {{1, 0}, {0, 1}}) にするだけ
731 名前:724 mailto:sage [2007/08/21(火) 13:23:15 ] >>728 チートだなんてとんでも無い。ちょっとしたマクロ程度です。 >>725 も試してみたんですが、上手く使えずWin32APIで GetWindowDC(0)としてデスクトップ全体のDCからGetPixelしたん ですが、DirectX(フルスクリーン)だと上手く行かないみたいですね。 今会社なので試せてませんが…。 ググってみると、どうも出来ないという話ばかりありました。 もう何て言うか、他のソフトで窓化してから組んだ方が手っ取り早い 気がしてきました。UWSCのPeekColorなんかだと出来るんですが どうやって実現しているんだろう…。
732 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:23:02 ] DirectXとフルスクリーンには、何にも因果関係はないと思うが。 DirectXで描画しているDCを取得しないと駄目なんでないの?
733 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:39:07 ] WebBrowserコントロール内のドキュメントの反転範囲の取得は可能ですか?
734 名前:733 mailto:sage [2007/08/21(火) 14:40:27 ] 連レスすいません、「クリップボードの利用は無し」が条件です。
735 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:43:37 ] >>733 可能です
736 名前:733 mailto:sage [2007/08/21(火) 14:45:27 ] >>735 ありがとうございます
737 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:54:33 ] VB2003で開発しています。 ここで質問していいかわからないので、もし他スレが適切なら 誘導をお願いします。 OSがWin2003Serverでドメインコントローラになっているサーバに Everyoneでフルコントロールできる共有フォルダがあります。 この共有フォルダに、LANで繋がっているOSがXpHomeEditionのPC からファイルをアップロードしたりダウンロードしたりするアプリを 作りたいのです。 使用するPCはちょっと特殊なPCでHomeEditionしかプリインストールされていません。 ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは しません。 クライアントがProfessionalEditionなら問題はないのですが、HomeEdition なのでサーバの共有フォルダにアクセスしようとすると、ユーザ名と パスワードを要求されてしまいます。 最初にエクスプローラから共有フォルダを開こうとしてユーザ名とパスワードを 通しておけば次からは要求されないので問題がないのですが、この開発中の アプリからいきなり共有フォルダにアクセスしようとすると、ユーザ名と パスワードが通っていないためにエラーになります。 プログラムからユーザ名とパスワードを認証させる方法はありますでしょうか?
738 名前:724 mailto:sage [2007/08/21(火) 14:55:53 ] >>732 そうなんですか。すいません。あまり詳しくなくて。。 oshiete1.goo.ne.jp/kotaeru.php3?q=1145477 この辺みて勘違いしてたかもしれません。 取りあえず、↓みたいな感じの関数で帰ってから試してみます。 有り難う御座いました。 Private Function PeekColor(ByVal x As Integer, ByVal y As Integer) As Integer Dim ret As Integer ret = GetWindowDC(0) 'スクリーン全体のデバイスコンテキストを取得 PeekColor = GetPixel(ret, x, y) ret = ReleaseDC(0, ret) 'スクリーン全体のデバイスコンテキストを解放 End Function
739 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:00:47 ] >>737 WNetUseConnection
740 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:03:46 ] >>738 どんなフルスクリーンか知らんが解像度が変更されている場合もあるので気をつけれ 多分デスクトップのDCのピクセル情報はフルスクリーンキャプチャに移るのと一緒だと思うから一回撮ってペイントに貼り付けてみて確認してみるのもいいかも
741 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 15:16:15 ] >>737 >ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは >しません。 これだけの為にProにアップグレードするべきだとは思わんが、一応教えておく。 ドライバはHomeだろうがProだろうが一緒。互換性を心配するのは間違い。
742 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 17:20:47 ] VB2005です。 TextBoxで未入力のときに数値の0とみなしたいのですが、次のようなやり方以外に 簡単な方法はありますか? if textbox1.text.length = 0 then val = 0 elseif isnumeric(textbox1.text) then val = cint(textbox1.text) else 'error end if
743 名前:737 mailto:sage [2007/08/21(火) 17:47:49 ] >>738 さっそくWNetUseConnectionをぐぐってみました。 で参考になるサンプルを見つけたので ttp://64.233.167.104/search?q=cache:e1IfQnfsW9UJ:www.vbalab.net/vbaqa/c-board.cgi%3Fcmd%3Dntr%3Btree%3D36579%3Bid%3Dexcel+WNetUseConnection&hl=ja&ct=clnk&cd=9&gl=jp&lr=lang_ja 真似てやってみたのですが その関数の戻り値が 487 となり、失敗します。 で、その戻り値を調べたら ERROR_INVALID_ADDRESS 487 0x000001E7 無効なアドレスにアクセスしようとしています。 とありました。 しかし、そのアドレスは確実に間違っていないはずなんですが・・・。 そのアドレスをエクスプローラのアドレス欄に貼り付けるとちゃんと表示されます。 これ以上はスレ違いでしょうかね? apiスレに移動したほうがいいでしょうか? >>741 ドライバの互換性云々というのではなく、ドライバ類がOSの再セットアップ用に 提供されていないという問題なんです。 一応、ハードディスクにはリカバリイメージが格納されているのですが 隠蔽されているっぽいのです。 ドライバCDもなく、webでも公開もされておらず・・・
744 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:14:50 ] >>743 ヒント:上書きインストール
745 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 18:33:56 ] >>742 それで十分簡単だと思われ。
746 名前:727 mailto:sage [2007/08/21(火) 18:57:05 ] >>729 a22 = matrix(2, 2) はできました。ありがとうございます。 Dim matrix As New Matrix({{1, 0}, {0, 1}}) の方は、以下のようにしてみましたが、式が必要です というエラーが出ます。対策を教えていただけないでしょうか。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim matrix As new Array2({1, 0}) End Sub End Class Public Class Array2 Public elements As Array Public Sub New(ByVal ary As Array) elements = ary End Sub End Class
747 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:15:26 ] >>743 Win32APIの意味や失敗の原因を調べるならWin32API質問箱スレに移動すべきだが、 Win32APIを呼び出すためのVB.NETの記述方法について知りたいなら、ここのままでも よいのでは?
748 名前:737 mailto:sage [2007/08/21(火) 21:10:20 ] Win32API質問箱スレにいってきます。 ありがとうございました。
749 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 21:24:00 ] >>746 >>730
750 名前:746 mailto:sage [2007/08/22(水) 09:59:10 ] >>749 見逃してました。。。 うまく行きました。ありがとうございました。 型に配列就職誌をつけられるとは知りませんでした。
751 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 10:15:43 ] 配列型という型なんだよ 変数名じゃなくて型名の後に括弧を付ける方がその意味では正しい
752 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 11:06:56 ] 746はVBしかしたことないんかな