下記のとおり同じ内容のものを見つけたのですが、結局どうしたらいいかわからないので
質問です。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

やりたいことは、
VBにて、WebBrowserコントロールを使用しサイト表示させたものを作り
それ(exe)をデスクトップ上に常駐させておく というものを作成目的としています。
要するにWindows7においてのActiveDesktop機能の実現です。
(Combooなどフリーソフトも試してますが、適切なものが見つかってません。)

そこで1つ問題があり、
デスクトップにあります「デスクトップの表示」で、全体が最小化されますが
作ったプログラムだけは最小化されず残したままの状態にする方法がわかりません。

プログラムやツール等どの方法でもかまいませんので、ご存じの方が
いらっしゃいましたら教えていただければと思っています。

ちなみに「Layout」イベントではイベントが走りません。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

理屈はよくわからないんですけど、


MinimizeBox = False
TopMost = True
にすると「デスクトップの表示」でも最小化されずに残りました。( Windows7 で )
が、やはり、TopMost = True はよろしくないんでしょうね・・・。

あと、Layout イベントについてですが、こちらの環境 ( Windows7 + VB 2008 ) では
MinimizeBox = False
だと Layout イベントに飛んできませんでしたが、
MinimizeBox = True
にすると Layout イベントに飛んできました。
( かといって、どうにかなりそうな感じでもなさげですが・・・)
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q無料壁紙のサイトから素敵な海の写真を見つけ、デスクトップの背景に設定し

無料壁紙のサイトから素敵な海の写真を見つけ、デスクトップの背景に設定しました。
あまりにきれいなので、後日ブログの背景にも使いたいと思ってさがしたのですがどうしてもたどり着くことができません。
今デスクトップの背景になっている写真をフォトギャラリーに入れることはできますか?
パソコン初心者ですのでわかりやすく教えていただきたいのですが・・・
どうぞよろしくお願いいたします!!

Aベストアンサー

著作権はクリアされているとして、背景に設定した画像はそのままコピーしてフォトギャラリーに入れることは可能です。

マイピクチャフォルダの中の画像を右クリックから「背景に設定」とした場合
C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Windows Photo Viewer
に「Windows フォト ビューアー壁紙」という名称で保存されます。

Web上の画像をIEで右クリックから「背景に設定」とした場合
C:\Users\<ユーザー名>i\AppData\Roaming\Microsoft\Internet Explorer
に「Internet Explorer Wallpaper」という名前で保存されます。

QVBでデスクトップ上のアイコン座標を取得することはできますか?

Windows98上でVB6(SP4)を使っています。
デスクトップに散らばっているフォルダやショートカットの座標を取得したいです。
そもそもVBでアイコンの座標を取得する事ができるのでしょうか?
また、そのアイコンを動かしたいのです。

MSDN等で調べてみたのですが、期待しているドキュメントがひっかかりません。
GetIconInfo等が使えそうかな・・・と思ったのですが、「ここ見ろ」でも結構なので教えてください。よろしくお願いします。

Aベストアンサー

デスクトップの実体はリストビュー(SysListView32)なので、ウインドウハンドル
を取得して、LVM_* メッセージを投げればいいと思います。
詳しくはgoogle で"Desktop SendMessage"を検索して下さい。

Qパソコンのデスクトップが一杯になったら

パソコンのデスクトップが一杯になった状態でPDFをデスクトップ上に保存しましたが、デスクトップ外に保存されたようで、エクスプローラーで確認したら、そのPDFはデスクトップ状に存在していることになっていました。
なのでデスクトップ上に空きを開けて、デスクトップ左クリックで最新の状態に更新しましたがでてきません。どうすればデスクトップ内に表示させられますか?

Aベストアンサー

どうしてもデスクトップに置きたいのなら、ちょっと整理をして見ましょう。
ジャンルで分類してもいいですが、最低ここ1ヶ月使ったことのないファイルを入れるホルダーと
PDFってホルダーを作ってはいかがでしょうか?
そして、PDFはPDFってホルダーに全部入れてしまいましょう。
そうすると、ディスクトップは非常にすっきりするはずです。
もちろんそのPDFってホルダーをクリックすると、PDFだけが表示されます。
それでもPDFでいっぱいになったら、新しいホルダーを作って保存するか、
いっそのこと、用意されたホルダを使うか、c;なりd:に移動させてそこで
展開させましょう。今あなたがやっている方法は、起動にとても時間がかかる方法です。
ディスクトップは最小限しか置いておかないのは鉄則です。

QVB.NETでボタンクリックイベントの後に来るPage_Loadのようなイベントはありますか?

タイトルのとおりなのですが、
VB.NETでボタンクリックイベントの後に来るPage_Loadのようなイベントはありますか?
教えてくださいーー

Aベストアンサー

お世話になります。

ボタンを押そうが何をしようが、
PostBack するたびに、Page_Load は走りますよ。
そこで判断をしたいのであれば、
Page.Load イベント内で以下の様に記述してやれば
よいかもしれません。

If IsPostBack Then
  ' 初めてページを読み込んだ時処理
Else
  ' そうでない時処理
  If Not Request("ボタンの name") Is Nothing Then
    ' ボタン押下により発生した PostBack
  End If
End If

参考URL:http://msdn2.microsoft.com/ja-JP/library/system.web.ui.page.ispostback.aspx

Qデスクトップのアイコンがなくなった

いつもクイック起動にデスクトップのアイコンがあってたくさんファイルを開けててもデスクトップのアイコンをクリックするとすぐにデスクトップの画面に戻っていたのですが、
この前、デスクトップのアイコンが邪魔だったのでゴミ箱に入れてしまいました。それからというものデスクトップのアイコンが見つかりません。ファイルの検索をして「デスクトップ」って入れても出てきません。デスクトップのアイコンを出すにはどのようにすればいいのでしょうか?
宜しくお願いします。

Aベストアンサー

こちらのFAQが参考になるかも。

できるネット - [クイック起動]にあった[デスクトップの表示]アイコンが消えてしまったが、どうすれば元に戻せるか
http://dekiru.impress.co.jp/faq/win/win001.htm
秘密結社 - 006 クイック起動の「デスクトップの表示」アイコンを削除してしまった場合の復帰方法
http://www.efix.co.jp/sc/himitu/006.htm


> ファイルの検索をして「デスクトップ」って入れても出てきません。

あれ?
サブフォルダを探すのチェックが無かったから失敗…とかなら良いのですが。

参考URL:http://dekiru.impress.co.jp/faq/win/win001.htm, http://www.efix.co.jp/sc/himitu/006.htm

QVBでデスクトップアクセサリを作りたい

VB6を始めたばかりの超初心者です。すごいくだらない質問かもしれませんが、教えて下さい(^^;)
デスクトップアクセサリを作りたいのですが、VBで作れますか?
具体的には、例えばりんごの絵を表示したい時に、実行するとりんごの絵の部分だけ表示されて、余白の部分は表示されない(余白の部分はデスクトップの壁紙が見える)というような物を作りたい時にどうすれば良いか教えて下さい!ほんと初心者の質問ですみませんm(__;)mお願いします!
それから、VBでデスクトップアクセサリを作る時に参考にするのに、何か良いHPがあれば教えて下さい。お願いします。

Aベストアンサー

田吾作7です。

とりあえず、ぼくもいろいろやってみました。いやー勉強になりました。
いちばん簡単だと思った方法をとりあえずアップしておきます。

以下のソースをフォームに貼り付けてください。
Formのプロパティで、
BorderLine=なし
ScaleMode=ピクセル
に設定してください。

ドラッグできるようにしてますが、ドラッグルーチンをはずしたら、ドラッグ付加になります。ついでにShowInTaskbar=Falseにしてやれば、デスクトップに書いたようになりませんか?


Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_DblClick()
'フォームをダブルクリックしたら終了
Unload Me
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'エスケープキーを押されたら終了
Select Case KeyCode
Case vbKeyEscape
Unload Me
End Select
End Sub

Private Sub Form_Load()
Dim wkWnd As Long
Dim wkPoint(3) As POINTAPI
Dim wkRgn As Long

With Me
'パスブラケットを開く
Call BeginPath(.hdc)

'三角形の描画
wkPoint(0).X = 100
wkPoint(0).Y = -10
wkPoint(1).X = 100
wkPoint(1).Y = 100
wkPoint(2).X = -10
wkPoint(2).Y = 100
Call Polygon(.hdc, wkPoint(0), 3)

'楕円の描画
Call Ellipse(.hdc, 0, 0, .ScaleWidth, .ScaleHeight)

'パスブラケットを閉じる
Call EndPath(.hdc)

'リージョンの作成
wkRgn = PathToRegion(.hdc)

'リージョンをウィンドウにセット
Call SetWindowRgn(.hwnd, wkRgn, 1)

End With
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'フォームのドラッグ
Call SbDragStart(Me)
End Sub

'ドラッグルーチン
Public Sub SbDragStart(Frm As Form)
'フォームのドラッグルーチン
ReleaseCapture
Call SendMessage(Frm.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End Sub


実験方法としてはPolygonとEllipseによってリージョンを作成する座標が決定してますので、どちらかをコメントすると、よりそれぞれの機能を勉強することが出来ると思います。


でわでわ

田吾作7です。

とりあえず、ぼくもいろいろやってみました。いやー勉強になりました。
いちばん簡単だと思った方法をとりあえずアップしておきます。

以下のソースをフォームに貼り付けてください。
Formのプロパティで、
BorderLine=なし
ScaleMode=ピクセル
に設定してください。

ドラッグできるようにしてますが、ドラッグルーチンをはずしたら、ドラッグ付加になります。ついでにShowInTaskbar=Falseにしてやれば、デスクトップに書いたようになりませんか?


Option Explicit
Private Ty...続きを読む

Qデスクトップのアイコンがいっぱいになってきたのですがデスクトップで管理

デスクトップのアイコンがいっぱいになってきたのですがデスクトップで管理するのが便利だと思うようになりなかなか整理できずにいいます。
自分はデスクトップに何もおかないデザインが好きなで、Dockさえあればいいと思っています。

そこでデスクトップをもう一つつくれないかと思い、探してみましたが
デスクトップをもう一つつくれるのはつくれるのですが、既存のアイコンは変わらずウィンドウだけが消える仕組みです。
なのでデスクトップは見栄えの悪いままです。

デスクトップフォルダをもう一つ作るような気持ちで
二つのデスクトップができるようなフリーソフトを知りませんか?
雑な文ですいません;

回答よろしくお願いします。

Aベストアンサー

 
デスクトップに「もう一つ」という名のフォルダーを作り、その中にデスクトップのアイコンを入れればすっきりする
 

Qデスクトップなど特殊フォルダのフルパスを取得したい

VB6を使用しています。
デスクトップやシステムフォルダなどの特殊フォルダのフルパスを取得したいのですが、方法がよくわかりません。

No.260113の方の質問と同様になってしまうのですが、参考URLがすでになくなっているみたいで判りませんでした。

取得方法をご存知の方、ご教授いただきますよう、よろしくお願いいたします。

Aベストアンサー

#1で最初のSetに=が抜けてました。
すみません。
あとついでに使えるKeyの一覧を書いときます。
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Templates
Fonts
Desktop
StartMenu
Programs
Startup
Favorites
MyDocuments
Recent
SendTo
NetHood
PrintHood

Q「デスクトップの表示」をタスクバーに移動すると…

「デスクトップの表示」というコマンド(絵で表現されてます)がデスクトップにあります。これをクリックすると当たり前ですが、デスクトップが表示されるのですが、これ、デスクトップにあったら何の意味もありませんよね。
そこでこれをクリックし、タスクバーに移動し、元のコマンドをゴミ箱に移動しました。
その後タスクバーに移した方の上に、矢印を持っていくと「デスクトップの表示へのショートカット」となり、これをクリックすると、「ショートカットの検索」となります。
これおかしいです。
タスクバーに「デスクトップの表示」と素直に出ればいいものを「デスクトップの表示へのショートカット」です。
だとすると、オリジナルの「デスクトップの表示」を削除してしまうと、この機能は完全に消えてしまうのでは?

正しい「デスクトップの表示」のタスクバーへの入れ方について教えてください。

Aベストアンサー

↓にやり方が出ています。

参考URL:http://dekiru.impress.co.jp/faq/win/win001.htm

QVB2005 で NetworkStream で取得したデータのバイト数の取得方法について

VB2005 の初心者です。

System.Net.Sockets を利用して、Windows端末のAシステムとLinux端末のBシステムの通信部分のサービスを開発しています。

その際、NetworkStream で受信したデータのバイト数を取得したいのですが、やり方が分かりません。

データを取得している部分のソースは下記です。
10000バイトずつ取得していますが、
最後、10000バイトに満たない場合、取得したデータのバイト数が知りたいです。

Dim LNetworkStream As NetworkStream
Dim LbEndFlg  As Boolean
Dim LucData(10000) As Byte

Do While LbEndFlg
LNetworkStream = objClient.GetStream()

Redim LucData(10000)
LsLen = LNetworkStream.Read(LucData, 0, LucData.Length)

 LbEndFlg = FindEndOfClaim(LucData)
LstrText = System.Text.Encoding.UTF8.GetString(LucData, 0, LsLen)

MstrXML = MstrXML & LstrText

Loop


NetworkStream には、SetLength というメソッドがありますが、
これは必ず例外を発生させてしまうので、
例外を発生させずにバイト数を取得したいです。

何かヒントになることでも良いので、
皆様の知恵をお借りできれば幸いです。
よろしくお願い致します。

VB2005 の初心者です。

System.Net.Sockets を利用して、Windows端末のAシステムとLinux端末のBシステムの通信部分のサービスを開発しています。

その際、NetworkStream で受信したデータのバイト数を取得したいのですが、やり方が分かりません。

データを取得している部分のソースは下記です。
10000バイトずつ取得していますが、
最後、10000バイトに満たない場合、取得したデータのバイト数が知りたいです。

Dim LNetworkStream As NetworkStream
Dim LbEndFlg  As Boolean
Di...続きを読む

Aベストアンサー

追記。

>以下のように「自分で実装する必要」があります。

もちろん、自分で実装などせずに「ReadTimeoutプロパティに適切な値をセットし、DataAvailableプロパティがTrueだろうがFalseだろうが構わずにReadメソッドを呼び出し、Readメソッドが0以外を返した場合は処理を継続し、Readメソッドが0を返した場合はセッションが切れたかタイムアウトした時だからそこで強制終了する」と言う実装をした方が、遥かに簡単です。


人気Q&Aランキング