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 писал(а):Открывает окна в интернете.
Сейчас этот форум просматривают: Yandex-бот и гости: 12