No.4ベストアンサー
- 回答日時:
前回の記載内容にいくつか誤りがありましたので訂正します。
下のコードは Windows XP + Excel 200 VBA で動作確認しました。
VB6 でも、同様にすれば動作すると思います。
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal uCmd As Long) As Long
Private Declare Function ListView_GetItemRect Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal MSG As Long, ByVal lngIndex As Long, ByRef rc As RECT) As Long
Private Declare Function ListView_SetItemPosition Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal MSG As Long, ByVal lngIndex As Long, ByVal lngPosition As Long) As Long
Private Type LVITEM
mask As Long
iItem As Long
iSubItem As Long
state As Long
stateMask As Long
pszText As Long
cchTextMax As Long
iImage As Long
lParam As Long
iIndent As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const LVM_GETITEMRECT As Long = &H100E
Private Const LVM_SETITEMPOSITION As Long = &H100F
Private Const GW_CHILD As Long = 5
Private Const LVIR_ICON As Long = 1
Private Sub CommandButton1_Click()
Dim lngTopWindow As Long
Dim lngChildWindow As Long
Dim lngSysListView32 As Long
Dim lvi As LVITEM
Dim rc As RECT
lngTopWindow = FindWindow("Progman", "Program Manager")
If lngTopWindow Then
lngChildWindow = GetWindow(lngTopWindow, GW_CHILD)
If lngChildWindow Then
lngSysListView32 = GetWindow(lngChildWindow, GW_CHILD)
If lngSysListView32 Then
' インデックス= 0 のアイコンの位置を取得します。
rc.Left = LVIR_ICON
ListView_GetItemRect lngSysListView32, LVM_GETITEMRECT, 0, rc
' X 方向に +100 移動させます
ListView_SetItemPosition lngSysListView32, LVM_SETITEMPOSITION, 0, rc.Top * &H10000 + rc.Left + 100
End If
End If
End If
End Sub
No.3
- 回答日時:
ご使用のソフトは何でしょう?
VB6とVBAは比較的似ていますが、VB.NETはVB6、VBAとはかなり異なった仕様となっています。
とは言っても、いずれにせよ WIN32API を使用することになると思います。
ソースコードではなく概略だけ書きます。
1. API の FindWindowを使用して、
クラス名:Program
タイトル:FolderView
のウインドウのハンドルを取得します。(Windows7で確認した内容なので、他のWindowsでは違っているかもしれません。)
2. API の GetWindowを使用して 1.の子ウインドウのハンドルを取得します。
3. API の GetWindowを使用して 2.の子ウインドウのハンドルを取得します。(このハンドルが SysListView32 になります。)
4. 3. のハンドルに対してAPI の SendMessage で LVM_GETITEMRECT を送り、アイコンの位置を取得します。
5. アイコンの位置を変数するには 3. のハンドルに対してAPI の SendMessage で LVM_SETITEMPOSISION を送ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン デスクトップのアイコンの位置が勝手に変わる 2 2022/12/18 21:45
- Windows 10 アイコンの位置 3 2022/04/24 08:47
- フリーソフト アイコンとして保存アプリが不調 2 2022/04/16 06:39
- Windows 10 アイコンの位置 1 2022/03/25 09:01
- Windows 10 ネットからファイルをデスクトップにダウンロードする際、既存のファイルの並びが崩れてしまう 4 2022/04/19 08:20
- Windows 10 デスクトップにファイルを保存すると既存のファイルアイコンの列に割り込むように保存されて困ってます 2 2022/04/25 19:00
- Windows 10 アイコンの位置 1 2022/04/23 09:23
- デスクトップパソコン デスクトップのフォルダーアイコンがおかしい 2 2023/07/13 15:42
- デスクトップパソコン デスクトップの表示がおかしい 4 2022/06/20 22:51
- デスクトップパソコン windows11のタスクバー登録について 6 2022/12/03 10:55
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBでデスクトップ上のアイコン座標を取得することはできますか?
Visual Basic(VBA)
-
デスクトップのアイコンの位置を取得したいのですが(C#
その他(プログラミング・Web制作)
-
既存のアプリのsyslistview32から文字列取得
Visual Basic(VBA)
-
-
4
デスクトップ上のアイコン名の取得方法
C言語・C++・C#
-
5
エクセルvba:自己セルの情報取得方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaから他のアプリを終了
-
VBAでコントロールのハンドルを...
-
メッセージボックスの選択ボタ...
-
キーボードフックについて
-
CloseHandle()
-
msgboxの表示位置
-
他のウィンドウのボタンを自動...
-
VBでのハンドルの使い方
-
DLL VB Wheel ホイール
-
マウスの右クリック+Shiftキー...
-
VB.netでFindWindowExやると・...
-
ウインドウの位置を知る。
-
コンソールからのメッセージボ...
-
SetWindowsHookEx(グローバル...
-
エクセルで作った新しいウイン...
-
フォントの大きさ
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
-
コンボボックス内の文字サイズ変更
-
エクセルのコントロールツール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaから他のアプリを終了
-
他のウィンドウのボタンを自動...
-
メッセージボックスの選択ボタ...
-
msgboxの表示位置
-
VBAでコントロールのハンドルを...
-
メッセージハンドラ
-
SetWindowText関数について
-
WM_NCLBUTTONUPについて
-
VB.netでFindWindowExやると・...
-
デスクトップ上のアイコンの位...
-
点滅で知らせる方法
-
SendMessage で ESC など
-
チェックボックスのキーダウン...
-
キーボード・フックのアプリを...
-
マウスフックについて
-
DEVICECHANGE() の受け取り
-
CloseHandle()
-
システム例外のメッセージを変...
-
VB6でシャットダウン、ログオフ...
-
Excel VBA で外部アプリケーシ...
おすすめ情報