|
|
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
подскажите, пожалуйста, как работает функция SetWindowPos. какие бы я ей координаты не давал, окно растягивается на весь экран. почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 16:39 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 16:58 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
да, теперь не на весь экран. но все равно не так, какие координаты указаны, если не сказать честно, вообще никак не меняется при их изменении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 17:08 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
kb_nn, ну нельзя же быть таким ленивым! SWP_NOSIZE уберите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 17:21 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
не помогло.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 10:17 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Что значит не помогло? Код приведите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 10:33 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
слушайте, я вот что обнаружил. перед SetWindowPos у меня стоял msgbox с дескриптором окна. он оказывается портил все дело. если его выкинуть, у меня вырезается кусок в окне, (меняющемся в зависимости от параметра hWndInsertAfter в SetWindowPos), как раз по размеру и положению равный параметрам SetWindowPos и в нем виден рабочий стол. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 11:36 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
такое чувство, что это дескриптор совершенно другого окна Option Explicit Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Public Declare Function GetDesktopWindow Lib "user32" () As Long Public Const GW_HWNDFIRST = 0 Public Const GW_HWNDNEXT = 2 Public Const GW_CHILD = 5 Public Function fnGetWindowHwndByProcessID(lngProcessID As Long) As Long Dim lngCurProcessID As Long Dim lngRetVal As Long Dim hwndTemp As Long On Error GoTo HandleErr hwndTemp = GetDesktopWindow() hwndTemp = GetWindow(hwndTemp, GW_CHILD) Do While hwndTemp <> 0 lngRetVal = GetWindowThreadProcessId(hwndTemp, lngCurProcessID) If lngCurProcessID = lngProcessID Then fnGetWindowHwndByProcessID = hwndTemp Exit Do End If hwndTemp = GetWindow(hwndTemp, GW_HWNDNEXT) Loop Exit Function HandleErr: fnGetWindowHwndByProcessID = 0 End Function Sub Main() Dim lngProcessID As Long Dim AppName As String Dim hwnd As Long Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_HIDEWINDOW = &H80 Const SWP_NOACTIVATE = &H10 Const SWP_NOCOPYBITS = &H100 Const SWP_NOMOVE = &H2 Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering Const SWP_NOREDRAW = &H8 Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Const SWP_NOSIZE = &H1 Const SWP_NOZORDER = &H4 Const SWP_SHOWWINDOW = &H40 Const HWND_BOTTOM = 1 Const HWND_BROADCAST = &HFFFF& Const HWND_DESKTOP = 0 Const HWND_NOTOPMOST = -2 Const HWND_TOP = 0 Const HWND_TOPMOST = -1 AppName = "C:\WINDOWS\explorer.exe" lngProcessID = Shell(AppName, vbNormalFocus) hwnd = fnGetWindowHwndByProcessID(lngProcessID) SetWindowPos hwnd, HWND_TOP, 0, 0, 500, 380, SWP_SHOWWINDOW 'Or SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE End Sub пс, простите, не нашел как выделить код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 12:51 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
У меня ваша fnGetWindowHwndByProcessID возвращает ноль. Попробуйте через FindWindow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 13:20 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
нет, у меня не 0. а нормальное 6-7 значное число. 0 у меня вылазит в том случае, если это окно уже открыто, а я его хочу открыть второй раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 13:58 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
такое чувство, что это дескриптор совершенно другого окна Option Explicit Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Public Declare Function GetDesktopWindow Lib "user32" () As Long Public Const GW_HWNDFIRST = 0 Public Const GW_HWNDNEXT = 2 Public Const GW_CHILD = 5 Public Function fnGetWindowHwndByProcessID(lngProcessID As Long) As Long Dim lngCurProcessID As Long Dim lngRetVal As Long Dim hwndTemp As Long On Error GoTo HandleErr hwndTemp = GetDesktopWindow() hwndTemp = GetWindow(hwndTemp, GW_CHILD) Do While hwndTemp <> 0 lngRetVal = GetWindowThreadProcessId(hwndTemp, lngCurProcessID) If lngCurProcessID = lngProcessID Then fnGetWindowHwndByProcessID = hwndTemp Exit Do End If hwndTemp = GetWindow(hwndTemp, GW_HWNDNEXT) Loop Exit Function HandleErr: fnGetWindowHwndByProcessID = 0 End Function Sub Main() Dim lngProcessID As Long Dim AppName As String Dim hwnd As Long Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_HIDEWINDOW = &H80 Const SWP_NOACTIVATE = &H10 Const SWP_NOCOPYBITS = &H100 Const SWP_NOMOVE = &H2 Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering Const SWP_NOREDRAW = &H8 Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Const SWP_NOSIZE = &H1 Const SWP_NOZORDER = &H4 Const SWP_SHOWWINDOW = &H40 Const HWND_BOTTOM = 1 Const HWND_BROADCAST = &HFFFF& Const HWND_DESKTOP = 0 Const HWND_NOTOPMOST = -2 Const HWND_TOP = 0 Const HWND_TOPMOST = -1 AppName = "C:\WINDOWS\explorer.exe" lngProcessID = Shell(AppName, vbNormalFocus) hwnd = fnGetWindowHwndByProcessID(lngProcessID) SetWindowPos hwnd, HWND_TOP, 0, 0, 500, 380, SWP_SHOWWINDOW 'Or SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE End Sub пс, простите, не нашел как выделить код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 13:59 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Еще раз повторяю: ваша функция фозвращает что-то не то - используйте FindWindow, например. Кстати, если поменять в вашем коде "explorer" на "notepad", все прекрасно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 14:40 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Findwindow - это же надо знать заголовок окна. как мне его узнать? я уже с ней изрядно помучился. кстати, что касается NOTEPAD, то единственное, в чем разница - при повторном открытии дескриптор ненулевой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 15:07 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
мне известен только путь к файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 15:09 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
у меня заработало, большое вам спасибо! Option Explicit Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long Const GW_HWNDNEXT = 2 Dim hWnd As Long Function InstanceToWnd(ByVal target_pid As Long) As Long Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long 'Find the first window test_hwnd = FindWindow(ByVal 0&, ByVal 0&) Do While test_hwnd <> 0 'Check if the window isn't a child If GetParent(test_hwnd) = 0 Then 'Get the window's thread test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid) If test_pid = target_pid Then InstanceToWnd = test_hwnd Exit Do End If End If 'retrieve the next window test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT) Loop End Function Private Sub Main() Const HWND_TOPMOST = -1 Const SWP_SHOWWINDOW = &H40 Dim Pid As Long Dim i As Integer LockWindowUpdate GetDesktopWindow Pid = Shell("c:\windows\notepad.exe", vbNormalFocus) If Pid = 0 Then MsgBox "Error starting the app" hWnd = InstanceToWnd(Pid) SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 512, 384, SWP_SHOWWINDOW Putfocus hWnd LockWindowUpdate False End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 11:22 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
слушайте. у меня опять проблемы. функция Shell что, работает только с exe- шниками? что-то для некоторых (например txt,doc) у меня возникает ошибка Invalid procedure Call or Argument и SetWindowPos работает не для всех запущенных приложений. от чего это может зависеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 13:45 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
kb_nnслушайте. у меня опять проблемы. функция Shell что, работает только с exe- шниками? Вы совершенно правы. Если хотите открывать другие типы файлов - вам сюда. kb_nn и SetWindowPos работает не для всех запущенных приложений. от чего это может зависеть? А хэндлы точно правильные берете? Может, ресайз в этих приложениях вообще не предусмотрен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 13:50 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
насчет Shell спасибо, буду пробовать. а насчет ресайза - ну вручную-то я могу его изменить, отсюда следует, что это может сделать SetWindowPos ? что касается хендлов, то для некоторых файлов это работает прекрасно. а для каких-то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 16:18 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
авторПричем здесь процесс? AllApi The GetExitCodeProcess function retrieves the termination status of the specified process. If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. kb_nn например notepad.exe она мне открыла в текстовом виде, а explorer.exe предложила сохранить из с:\windows. Скорее всего это связано с политиками безопаности Windows. Когда вы а командной строке выполняете "explorer.exe", что происходит? Не стоило ради этого старый топик поднимать, у вас уже есть один такой же. нет, если я запускаю их через командную строку, то все нормально. что- то я совем запутался. как мне иметь возможность открыть совершенно произвольный файл, чтобы иметь возможность работать с его окном.?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 13:01 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 13:18 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
kb_nn что- то я совем запутался. как мне иметь возможность открыть совершенно произвольный файл, чтобы иметь возможность работать с его окном.?? Что-то вы меня совсем запутали. Ссылку на то, как вам открыть произвольный файл, я вам дал. Но объясните, что вы собрались открывать с помощью explorer.exe? Какое вообще отношение ко всему этому имеет explorer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 13:42 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
explorer.exe был примером открываемого окна. ладно, файлы у меня открываются теперь, любого типа, спасибо. но вот SetWindowPos на получаемый дескриптор не реагирует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 15:38 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
всё таки проблема изменения размеров функцией SetWindowPos остается. дескриптор получается ненулевой. в каких-то случаях все работает нормально., в каких-то нет вручную размеры я могу задать не могу понять от чего это может зависеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 17:56 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
я обнаружил такую вещь- SetWindowPos у меня работает только для Вордовских файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:20 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Не говорите ерунды. Для каких конкретно не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:27 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
для всех остальных, какие я пробовал html, txt,xls, exe а вообще, если я сразу после загрузки приложения могу изменить его размеры, то отсюда следует. что это можно сделать программно? Option Explicit Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessID As Long dwThreadID As Long End Type Private Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Const NORMAL_PRIORITY_CLASS = &H20& Const INFINITE = -1& Const SW_SHOWNORMAL = 1 Const GW_HWNDNEXT = 2 Dim workArea As RECT Function InstanceToWnd(ByVal target_pid As Long) As Long Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long 'Find the first window test_hwnd = FindWindow(ByVal 0&, ByVal 0&) Do While test_hwnd <> 0 'Check if the window isn't a child If GetParent(test_hwnd) = 0 Then 'Get the window's thread test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid) If test_pid = target_pid Then InstanceToWnd = test_hwnd Exit Do End If End If 'retrieve the next window test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT) Loop End Function Private Sub Main() ' константы для wFlags Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_HIDEWINDOW = &H80 Const SWP_NOACTIVATE = &H10 Const SWP_NOCOPYBITS = &H100 Const SWP_NOMOVE = &H2 Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering Const SWP_NOREDRAW = &H8 Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Const SWP_NOSIZE = &H1 Const SWP_NOZORDER = &H4 Const SWP_SHOWWINDOW = &H40 ' константы для hWndInsertAfter Const HWND_BOTTOM = 1 Const HWND_BROADCAST = &HFFFF& Const HWND_DESKTOP = 0 Const HWND_NOTOPMOST = -2 Const HWND_TOP = 0 Const HWND_TOPMOST = -1 Const SPI_GETWORKAREA = 48 Dim Pid1 As Long, Pid2 As Long Dim wr As Long, wb As Long Dim hWnd1 As Long, hwnd2 As Long Dim AppName As String Dim sFinal As String Dim s As String Call SystemParametersInfo(SPI_GETWORKAREA, vbNull, workArea, 0) wr = workArea.Right wb = workArea.Bottom AppName = "D:\1.xls" sFinal = AppName 'If (Right(AppName, 4) <> ".exe") Then s = String$(255, 0) FindExecutable sFinal, "", s sFinal = Mid$(s, 1, InStr(1, s, Chr$(0)) - 1) & " """ & sFinal & """" 'End If Pid1 = Shell(sFinal, vbNormalFocus) hWnd1 = InstanceToWnd(Pid1) 'MsgBox "Идентификатор процесса: " & Pid1 & vbCrLf _ & "Дескриптор окна:" & hWnd1 & vbCrLf SetWindowPos hWnd1, HWND_TOPMOST, 0, 0, 2 * wr / 3, wb, SWP_SHOWWINDOW 'MoveWindow hWnd1, 0, 0, 2 * wr / 3, wb, 1 End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:43 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
kb_nnдля всех остальных, какие я пробовал html, txt,xls, exe Странно, у меня этот код работает правильно (раскрывает окно на 2/3 экрана) для все перечисленных вами типов, и еще нескольких, которые я попробовал. Вы на других машинах запускали этот код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 14:30 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
нет. и на других машинах не получается. какие-то, работают, для каких-то в запускаемом приложении образуется вырезка, в которую виден рабочий стол(занимающая как раз 2/3) для каких-то , если при открытии приложения запускается какое-то вспомогательное. окно, то принимает нужную форму именно оно. какие-то просто виснут при таком запуске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 17:00 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
какие-то просто открываются на весь экран, и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 17:02 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
Хм. Я тестировал на WinXP SP2, Office 22003, DirectX 9. Вы запускаете под учеткой админа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 17:06 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
и админом, и не нет, на разных машинах. но ведь от этого не должно зависеть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 17:42 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
тогда можно ответы на два вопроса 1)если после полной загрузки какого- либо приложения я могу изменить его размеры вручную, отсюда следует, что эти размеры можно изменить программно? 2)можно ли как-либо узнать, поддерживается ли ресайз у данного приложения, через дескриптор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 11:32 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
1. Да 2. Посмотрите в сторону функции GetWindowLong ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 11:45 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
нет, у меня упорно не хочет работать SetWindowPos. всё- таки от чего это может еще зависеть? вот например такой нюанс- при открытии, например Автокада в плюс к нему появляется окно с заголовком "GDI+ Window" (попасть туда мне не удалось, об этом я сужу только по панели задач) и от SetWindowPos расположение его не меняется... (при ручном открытии все нормально) html- файлы все без исключения открываются на весь экран, и все. всё- таки от чего это может еще зависеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 13:22 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
MSDN SetWindowPos.Remarks If the SWP_SHOWWINDOW or SWP_HIDEWINDOW flag is set, the window cannot be moved or sized. А вот почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 19:40 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
а что тогда там должно быть? и еще такой вопрос- если у меня идут несколько подряд SetWindowPos, то почему-то они загружаются не в порядке очередности, а в порядке быстроты звгрузки. это почему может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 10:19 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
kb_nn и еще такой вопрос- если у меня идут несколько подряд SetWindowPos, то почему-то они загружаются не в порядке очередности, а в порядке быстроты звгрузки. это почему может быть? Это что еще значит? С каких это пор бэйсик научился самопроизвольно распараллеливать вычисления? Просто судя по всему SetWindowPos - функция асинхронная, и хотя выполняются они последовательно, вы видите результат по мере загрузки различных форм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 10:36 |
|
||
|
функция SetWindowPos
|
|||
|---|---|---|---|
|
#18+
ну я же вижу уже открытый следующий файл, когда предыдущий еще загружается. да, конечно, начинают они может быть и в том порядке (по другому и не будет), но почему начинает загружаться второй файл, если не завершилась загрузка первого? и все таки что мне делать c SetWindowPos? ведь в каких-то случаях она работает нормально.... пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 16:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2165892]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 537ms |

| 0 / 0 |
