




Private Sub Form_Load()
Form1.Hide
Shell "explorer /select,C:", vbNormalNoFocus
Shell "explorer /select,C:", vbNormalNoFocus
End Sub


caa2000 писал(а):Shell "explorer /select,C:", vbNormalNoFocus
caa2000 писал(а):Если узнать ID процесса, то что с ним можно делать ?


Shell-интерфейсы это интерфейсы начинающиеся с IShell?Хакер писал(а):Только лучше всё это решать через Shell-интерфейсы, а не ковыряясь с хендлами.


ger_kar писал(а):Shell-интерфейсы это интерфейсы начинающиеся с IShell?

Хакер писал(а):caa2000 писал(а):Shell "explorer /select,C:", vbNormalNoFocus
ОПЯТЬ ЧТО-ЛИ???
Только что, несколькими темами ниже обсуждалось:
viewtopic.php?f=1&t=4729
caa2000 писал(а):Мне нужно открыть два окна так, чтобы они распологались рядом, не наезжая друг на друга.

Код Visual Basic .NET
Imports System.Runtime.InteropServices
 
Public Class Form1
 
    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, _
     ByVal hWndInsertAfter As IntPtr, _
     ByVal X As Integer, _
     ByVal Y As Integer, _
     ByVal cx As Integer, _
     ByVal cy As Integer, _
     ByVal uFlags As UInteger) As Boolean
    End Function
 
    Const SWP_HIDEWINDOW = &H80
    Const SWP_SHOWWINDOW = &H40
 
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As String) As IntPtr
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim HWND = FindWindow(vbNullString, "Выполнить")
        SetWindowPos(HWND, 0, 100, 100, 100, 100, SWP_SHOWWINDOW)
    End Sub
 
End Class

caa2000 писал(а):Смотрел Shell interfaces, но ничего не нашёл про размер и позицию открываемого окна.


caa2000 писал(а):Может кто знает, как перевести это на VB6?

caa2000 писал(а):Может кто знает, как перевести это на VB6?
Хакер писал(а):в котором единственное полезное и релевантное для данного


Qwertiy писал(а):При желании сделать жирный костыль, можно найти окно проводника по имени папки в заголовке...

Хакер писал(а):может быть 10 окон с одинаковым заголовком, и только одно окно будет тем, в котором мы заинтересованы. Как отличить?





caa2000 писал(а):А как с помощью API получить hwnd окна






Qwertiy писал(а):Что касается завершающего слеша - у меня одинаково работает с ним и без него.
Английская Windows 7 Enterprise SP 1.
Qwertiy писал(а):Может тебе отказаться от этой идеи с проводником, поставить Q-Dir,

Хакер писал(а):А у меня процессы мрут сразу
Хакер писал(а):а завершающий слеш влияет на то, будет ли выделен диск в «Моём компьютере» или просто будет открыт «Мой компьютер»
Хакер писал(а):Тогда можно просто сделать форму, положить на неё два контрола WebBrowser, в обоих вызвать метод Navigate, указав нужные пути, и показывать экземпляр такой формы.


Qwertiy писал(а):Мой компьютер - никак...

Option Explicit
Private Sub Form_Load()
    Dim oExplorer As Object
    Set oExplorer = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
    With oExplorer
        'Двигаем окно эксплорера
        .Left = 200
        .Top = 200
        .Width = 600
        .Height = 500
        .Visible = True
        .Navigate "C:\Windows"
        'Дожидаемся окончания загрузки
        Do While .Busy
            DoEvents
        Loop
    End With
End Sub






    Option Explicit
    Private Sub Form_Load()
        Dim oExplorer As Object
        Set oExplorer = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
        With oExplorer
            'Двигаем окно эксплорера
            .Left = 200
            .Top = 200
            .Width = 600
            .Height = 500
            .Visible = True
            .Navigate "C:\Windows"_________.Navigate "\\"  Откывает окно  "My computer"________
            'Дожидаемся окончания загрузки
            Do While .Busy
                DoEvents
            Loop
        End With
    End Sub

    Dim oExplorer As Object
    Dim WinCount As Integer
    Dim WinDown As Long
    Dim WinUp As Long
    Dim WinLeft As Long
    Dim WinWidth As Long
    Dim i As Integer
    Dim ScrHeight As Long
    Dim ScrWidth As Long
Private Sub Form_Load()
    
                 WinCount = 2 'Number of windows to open
                 WinUp = 70   'Offset from top
ScrHeight = Screen.Height / Screen.TwipsPerPixelX
ScrWidth = Screen.Width / Screen.TwipsPerPixelY
                 WinDown = ScrHeight - 100 'Offset from bottom
WinLeft = 0
WinWidth = ScrWidth / WinCount
    
 For i = 1 To WinCount
        Set oExplorer = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
        With oExplorer
            .Left = WinLeft
            .Top = WinUp
            .Width = WinWidth
            .Height = WinDown
            .Visible = True
            .Navigate "\\"
            WinLeft = WinLeft + WinWidth
            Do While .Busy
                DoEvents
            Loop
        End With
Next
    End
End Sub


 
  .Navigate "https://www.google.com"
 
 caa2000 писал(а):Открывает окна в интернете.



 
  
  Я согласен
 Я согласен  
Сейчас этот форум просматривают: AhrefsBot и гости: 13