1 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:53:36 ] 前スレ VB.NET質問スレ(Part28) pc11.2ch.net/test/read.cgi/tech/1229695062/l50 テンプレは>>2 〜
411 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:20:57 ] 403=407 だが 自分で実装してみようと頑張ったが Dim MyList As New List(Of MySt) で宣言したところまでは出来たが いざMyListに値をAddしようとすると訳分からなくなった タダの配列 s(0).hoge s(0).moge をSortしようとしてもVBに怒られた 俺もお手上げ DataTable使いたくなるw
412 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:27:36 ] ソート以前にリストの使い方からとは想定外でした
413 名前:411 mailto:sage [2009/03/17(火) 17:07:08 ] 何とか動いた この方法が正しいのかは分からんが s()の配列をAddRangeで代入して Structure要素の数だけhikakuを追加してやればいけた
414 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:09:13 ] >>411 MyListが何でいきなりsになってんだか。 >>404 がすでに説明しているとおり、Sortメソッドでデリゲート関数を呼び出して、戻り値でソートしてる。 Sortメソッドがクイックソートアルゴリズムを用いて>>403 のレスでいけばhikaku関数に比較データを渡してその戻り値で判定してソートを実行している。 ただこの場合だと、ソート対象メンバがひとつだけしかできない。 ソート対象を場面によって変えたい場合は、 Private Class HogeComparer Implements IComparer(Of MySt) Public Function Compare(ByVal x As MySt, ByVal y As MySt) As Integer Implements IComparer(Of MySt).Compare Return x.hoge.Length - y.hoge.Length End Function End Class Private Class MogeComparer Implements IComparer(Of MySt) Public Function Compare(ByVal x As MySt, ByVal y As MySt) As Integer Implements IComparer(Of MySt).Compare Return x.moge - y.moge End Function End Class といった感じで、IComparerインターフェイスを実装したクラスをソート対象にしたいメンバごとに作成し、 Dim?MyList?As?New?List(Of?MySt) とした場合(ソートしたい配列がMyListのとき) hogeでソートしたい場合は Dim hogeCmp As New HogeComparer() ArrayList.Sort(MyList, hogeCmp) 'Array.List.Sort(MyList, New HogeComparer())でもよい mogeでソートしたい場合は Dim mogeCmp As New MogeComparer() ArrayList.Sort(MyList, mogeCmp) '同上 と呼び出せばそれぞれのメンバでソートができる まあ、わざわざ対象ごとにクラス作らないといけないところがめんどくさいが。
415 名前:411 mailto:sage [2009/03/17(火) 17:29:42 ] >>414 スマン ちょっと間違った Private s As New List(Of MySt) Dim r(3) As MySt r(0).hoge = "ccc" r(0).moge = 123 r(1).hoge = "bbb" r(1).moge = 234 r(2).hoge = "aaa" r(2).moge = 345 r(3).hoge = "xxx" r(3).moge = 0 s.AddRange(r) s.Sort(AddressOf hikaku1) で Function hikaku1(ByVal x As MySt, ByVal y As MySt) As Integer Return x.hoge > y.hoge End Function Function hikaku2(ByVal v1 As MySt, ByVal v2 As MySt) As Integer Return v2.moge - v1.moge End Function こんな感じにした ちなみにVS8です しかしこういうやり方で並べ替えが出来るとは知りませんでした 勉強になりました(自分はめんどくさがりなのでDataTable使いますw)
416 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:42:51 ] >>415 VS8ならLinqも使うと幸せになれるかも知れない
417 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:13:12 ] 構造体を自分で改変できるなら、 宣言の先頭 (Structure MySt の次の行) で implements IComparable(Of MySt) と入れて Enter、てのが早道だべ。
418 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:34:45 ] ファンクションプロシージャってのがよくわからんなサブしかつかっとらんし
419 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:38:20 ] 2chブラウザをつくるとして 携帯のIDとパソコンのIDは何が違う?
420 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:42:06 ] IDってユーザーエージェントのことか?
421 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:24:46 ] >>408 並べ替えのレスいろいろありがとうございました。 おかげさまでなんとか並べ替えできました。 慣れないのが多くてむずかしくて良く理解できていませんが便利なので使わせていただきます。 ありがとうございました。
422 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:29:29 ] 理解して使わんとなんか不満が出た時に見動く取れなくなるぞ
423 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:49:09 ] メイン Delegate Sub AdLogDlg(ByVal Log As String) Thr = New Thread(New ThreadStart(AddressOf MovThr)) Thr.IsBackground = True Thr.Start() Thr.Join() Sub MovThr() Form1.Invoke(New AdLogDlg(AddressOf Form1.AdLog), New Object() {Txt}) End Sub ってやった時にInvokeのとこで固まるんだがJoinしてるから?
424 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:08:30 ] ListViewのItemのフォントとSubItemのフォントを別のものに指定することは出来るでしょうか?
425 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 03:58:34 ] NumericUpDownコントロールのスピンボタン?は消せないんですか?
426 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 08:45:41 ] >>423 そう。Invokeはその処理の完了を待機するから、 メインスレッド>サブスレッドが終了するまで待ち サブスレッド>メインスレッドに依頼した仕事が終わるまで待ち の典型的デッドロック。 BeginInvokeにすれば完了待たずに次に進むからデッドロックは起こらないけど、 そもそもメインスレッドでJoinとかはやるべきじゃない。 >>424 ListViewItem::UseItemStyleForSubItems
427 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:03:42 ] >>425 それテキストボックスじゃね?
428 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:22:32 ] >>427 数字フィールドとして使いたい
429 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:02:44 ] TextBox の KeyPress イベントで、数字以外のキー入力を 蹴れば (イベント構造体の Handled = True) いい。
430 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:36:02 ] >>428 テキストボックスを数字入力専用にすれば済む話ではないのかと・・・・・
431 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:19:40 ] >>430 そんなこと出来るの? >>429 は別にして
432 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:22:46 ] NumericUpDownも内部では数字以外をはじいてるんだと思うが…
433 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:51:58 ] >>431 カスタムコントロール作るのが簡単じゃね
434 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:31:00 ] >>431 MaskedTextBoxでいいんじゃね
435 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:22:34 ] >>433 なんで態々カスタムコントロール? 派生すりゃいいじゃねえか。
436 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 13:07:34 ] >>431 ごめ言葉足らずだった、標準機能ではそんなこと出来ない そういう機能ならどうせ使いまわすんだろうし継承してカスタムコントロールで使いまわし効くようにしたら という意味 つうか、社内でそういう機能くらい作ってそうなものだけど
437 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 18:25:05 ] コントロール配列はなぜ無くなったんですか?
438 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 20:43:26 ] レイトバインド(Create Object)できますか?
439 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:32:30 ] >>437 いらないからじゃない? >>438 はい
440 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:12:45 ] TabControlのTabPageなのですが、 コードを書いてデバッグして色々してるうちに いつの間にかページの順番が変わってしまうのですがこれは何故でしょうか?
441 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 09:58:55 ] vb.net2005のあぷりをはいふするときは、 ゆーざーには 最新のネットフレームワークをまいくろそふとのさいとからだうんろーどしてください って言っとけばいいの?
442 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 07:43:53 ] VB2008での質問です。 NumericUpDown1.value = Data1 NumericUpDown2.value = Data2 NumericUpDown3.value = Data3 このようなステートメントが500程あります。 まとめる方法をご教授下さい。
443 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 10:25:26 ] ファイルコレクションを取得する時に特定の文字列を含んだ名前のファイルだけを抜き出すときは GetFiles("*.jpg") とするけど GetFiles("*.jpg" and "*gameCG*") とか GetFiles("*.jpg" or "*.gif") みたいにやるのはどうやんの?
444 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:00:28 ] ,
445 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:13:45 ] >442 NumericUpDown1〜NumericUpDown500までを配列にして、 Data1〜Data500も配列にしておいた上で代入する
446 名前:442 mailto:sage [2009/03/21(土) 14:26:33 ] >>445 できました。ありがとうございました。
447 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:54:52 ] スピンボックスを500個並べたってか… DataGridView 使うわけにはいかんのか。
448 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:35:43 ] DataGridViewとListViewは何が違いますか? どういう時に使いわける?
449 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:55:50 ] ちいさめのいろんな種類の画像をズラズラ並べたい場合はなにコントロールをつかうのか
450 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:49:44 ] インターネットからHTMLソースを取得する方法について教えてください。 認証が必要なサイト(ニコ動なんですが)からの取得ができません。 dobon.net/vb/dotnet/internet/index.html d.hatena.ne.jp/kkkos/20090114 主に↑のサイトを参考にVB.NETで書いてみたのですが、 httpWebRequest.GetResponse() に当たる所で処理が止まってしまい、 「System.Net.WebException:操作がタイムアウトしました。」となります。 POSTを使わない↓であれば正常に取得できます。(ログインページになってしまいますが。。) dobon.net/vb/dotnet/internet/webrequest.html 何か他に設定など必要でしょうか?
451 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:54:01 ] だから Wireshark(ry
452 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 14:12:15 ] ああ、、類似の質問がいくつかorz すみません、ieHTTPHeaders入れて頑張ってみます。
453 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:15:30 ] Dim Sng as Single =3.141 などを小数点第三位で四捨五入してラベルコントロールには3.14と表示するにはどうするんだろぅ Format(Sng , "0.00")だと四捨五入しないで切り捨てになっちゃう
454 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:50:14 ] >>453 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/700mathround/mathround.html
455 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:20:32 ] おk
456 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:25:55 ] フォームがあるアプリを作ったのですが、 これで起動時にコマンドライン引数を受け取るようにしたくて Shared Function Main(ByVal CmdArgs() As String) As Integer というプロシージャを作ったのですが、 そうするとフォームが出ないまま終了してしまいました。 そこで、 Public Shared F As New Form1 を宣言してMain内で F.Show()を実行したのですが、 一瞬出てすぐにアプリ自体が終了してしまいました。 正しい方法が分かりましたら教えて頂けると助かります。
457 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:29:14 ] >>456 ttp://www.google.co.jp/search?sourceid=navclient&q=VB%2enet+%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e5%bc%95%e6%95%b0
458 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:35:19 ] コマンドライン引数の受け取り自体は出来ているのですが フォームが消えてしまい困っています
459 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:37:37 ] >>456 そのファンクションは何に戻り値を返すんだい?
460 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:41:33 ] >>457 すみません。 Form1_Load内に System.Environment.GetCommandLineArgs() で出来ました。 >>458 これはおかしいですね。 使っていないので消しておきます。 ありがとうございました。
461 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:48:49 ] 先輩方教えてください。 textboxのmultilineを有効にして、そこに編集したデータを入れています。 1列目データ1 データ2 データ3 2列目データ1 データ2 データ3 3列目データ1 データ2 データ3 プログラム上ではこのように表示されているのですが、 この表示されているデータをコピーしてメモ帳やExcelに貼り付けると 1列目データ1 データ2 データ3 2列目データ1 データ2 データ3 3列目データ1 データ2 データ3 こんなふうに1行追加されてしまいます。 編集時はvbNewLineを使っているのですが、何が原因でしょうか?
462 名前:461 mailto:sage [2009/03/22(日) 23:10:48 ] コード一行ずつコメントアウトして確認してたところ原因解りました。 string.split(vbNewLine) これがいけなかったようです。多分Crだけで分割されてLfが残ってたんだと思います。 (ドキュメントにもvbCrLfで分割するなって書いてありましたね。。) お騒がせ致しました。
463 名前:デフォルトの名無しさん [2009/03/23(月) 18:17:49 ] フォルダのコピーをする際に、コピーが完了するまで待機するには どうしたら良いですか? (ダイアログなどは非表示の予定です。)
464 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:33:10 ] コピーの方法次第
465 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:28:50 ] なるほど ありがとうございました
466 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:09:18 ] 納得するのかよ!
467 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:29:23 ] InputBoxに説明をズラズラと書きたいのですが、はみ出してしまうのですが InputBoxの大きさを変えるにはどうしたら良いでしょうか?
468 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 09:06:23 ] サイズかえれないんじゃなかったっけ? 俺はC#でも使えるし自作して使ってるけど・・・ そっちのが制御も自由だし融通きいていいと思う
469 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 10:21:43 ] つか、InputBox ってまだあったのか…
470 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 13:45:34 ] ダイアログで自作したらどうだ? InputBoxの代わり程度なら簡単に作れそうだが…
471 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 16:58:32 ] コピペするだけでつかえる 画面解像度を1280*720にするプログラムは?
472 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:12:09 ] 調べる気ゼロときたか。 つ[ChangeDisplaySettingsEx] つ[Microsoft.DirectX.DirectDraw.Device]
473 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:41:34 ] 調べる気ゼロなヤツにヒントを与える>>472 の優しさに泣いた
474 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 18:03:40 ] 次の質問者の入場です。 どうぞぉ〜〜↓
475 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 18:15:09 ] 3年ほど夜のあれがないです。 出会いもなかなか無いので、お金で解決したほうがいいでしょうか?
476 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 18:57:45 ] 俺ももう何年も無いな… 最後に夢精したのはいつだっただろうな
477 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 19:04:39 ] ・・・・ さっさと風俗に行く準備を始めるんだ
478 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:07:23 ] >>476 10日間のオナ禁を申し渡す。
479 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 01:38:03 ] >>478 そんなもの渡されても困る
480 名前:デフォルトの名無しさん [2009/03/25(水) 05:03:48 ] 先輩方質問です。 プログラムを組んでいると 精神や人間性に異常をきたすのは どうしてですか?
481 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 05:10:55 ] コンピュータとシンクロしてるから
482 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 10:49:33 ] VB.NETアプリを終了すると解像度がもどっちゃうんだけど
483 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 10:59:09 ] そうか
484 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:35:03 ] VB2008を使用しています。 プログラムを実行中、そのプログラムで使用するフォルダを削除されないようロック(使用中に)したいのですが、 どのようにすればよいでしょうか?
485 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:36:40 ] (追記) カレントディレクトリとは別の任意のフォルダとなります。
486 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 12:30:02 ] >>484 適当に削除したくないフォルダの中にファイルを作ってオープンしておけば良いんじゃね?
487 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 13:14:17 ] >>486 その方法で良いと思います。どうもありがとうございました。
488 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 14:34:01 ] >>471 Imports System.Runtime.InteropServices Public Module resChanger Private Declare Function cds Lib "user32" Alias "ChangeDisplaySettingsA" (ByRef dm As DM, ByVal f As Integer) As Integer <StructLayout(LayoutKind.Sequential)> _ Private Structure DM <MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst:=32)> _ Public a As String : Public b, c, d, e As Short : Public f As Integer Public g, h, i, j, k, l, m, n, o, p, q, r, s As Short <MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst:=32)> _ Public t As String : Public u, v As Short : Public w, x, y, z As Integer End Structure Public Sub main() Dim d As New DM() : d.d = &H7C : d.v = 32 : d.w = 1280 : d.x = 720 : d.f = &H1C0000 : cds(d, &H80000000) End Sub End Module
489 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:03:34 ] < > この中カッコはなに?
490 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:12:06 ] >>489 属性
491 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:14:44 ] ?_?
492 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:31:44 ] ここで聞く質問じゃないかもしれないけど VB.NETでSSE等のレジスタ命令を直接叩けるフレームワークって出てる? Cじゃないとダメ?
493 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 00:57:22 ] 3時間の10倍の速さは30分でいいの?
494 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 01:14:27 ] 3時間 3時間の10倍→30時間 3時間の10倍の速さ→30時間の速さ 30[時間の速さ]<>30[分] ∴答え: ちがうよ。
495 名前:デフォルトの名無しさん [2009/03/26(木) 09:08:55 ] pc12.2ch.net/test/read.cgi/tech/1233757615/914 の質問なのですが、あちらでアドバイス頂けずにおりました。 すみませんが何卒よろしくお願い致します。
496 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 01:56:15 ] ニコニコ動画をダウンロードしたいお
497 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 19:01:31 ] 複数のビットマップファイルから1つのGIF動画を作る方法を教えて
498 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 22:03:38 ] >493 3時間の10倍の早さ これは通常3時間掛かる所を10倍の早さで着くにはと解釈すると 3時間→180分→10倍の早さ=18分
499 名前:デフォルトの名無しさん [2009/03/29(日) 10:33:30 ] 499
500 名前:デフォルトの名無しさん [2009/03/29(日) 10:34:21 ] 500
501 名前:デフォルトの名無しさん [2009/03/29(日) 16:07:58 ] リモートコンピュータが応答するかどうか確認する方法を教えてください。
502 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 16:24:45 ] >>501 Ping する
503 名前:501 mailto:sage [2009/03/29(日) 20:43:11 ] Pingしますた
504 名前:デフォルトの名無しさん [2009/03/29(日) 21:15:18 ] Dim cc As CookieContainer = New CookieContainer にクッキーを取得することができましたが このccを使ってwebページのhtmlソースを取得することができたのですが、 jpgなど画像のバイナリデータをダウンロードしたいのですがどんな風にやれば良いでしょうか?
505 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 21:18:03 ] >>504 一緒。同じように、jpg の URL にリクエストを投げる。 帰ってきた Stream を使って画像を表示するか、ファイルに保存。
506 名前:504 mailto:sage [2009/03/29(日) 21:57:11 ] そうしますた。ありがとう
507 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 01:29:34 ] vb2005でクリップボード操作について質問が…。 クリップボードに特定の文字列を貼り付けるexeを作ったのですが テキストエディタを起動中だと失敗してしまいます。 どうしてなんでしょうか。
508 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:33:16 ] どんなエラーが出るかくらいは書いた方が情報多いと思うぞ
509 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 10:22:28 ] >>498 小学生の問題に全力で答えるあなたが素敵♥
510 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 11:27:56 ] VB2005で "image/jpeg"に対応する拡張子を取得 もしくは逆に "jpg"に対応するContent-typeを取得 みたいな事がしたいのですが、そのような事ができるメソッド等を教えてください。
511 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 11:50:02 ] Imports System.Drawing.Imaging Private Function getJpegExtensions(ByVal mimeType As String) As String() For Each enc As ImageCodecInfo In ImageCodecInfo.GetImageEncoders() If enc.MimeType = "image/jpeg" Then Return enc.FilenameExtension.Split(";") End If Next Return Nothing End Function Private Function getJpegMimeType(ByVal ext As String) As String For Each enc As ImageCodecInfo In ImageCodecInfo.GetImageEncoders() For Each fileExt As String In enc.FilenameExtension.Split(";") If fileExt.ToLower() = "*." & ext.ToLower() Then Return enc.MimeType End If Next Next Return Nothing End Function