64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151

Управлять стилем стороннего приложения во время работы

07.09.2012, 21:20. Показов 958. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток появилась нужда управлять стилем приложения как это делается с функции shell
Visual Basic
1
Shell "Path", vbMaximizedFocus
только не при запуске, а уже при рабочем приложении если так можно помогите с этим плиз
заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2012, 21:20
Ответы с готовыми решениями:

Определить время работы приложения
помогите пожалуйста вывести время программы за которое оно работает #include <stdio.h> #include <string.h> int...

Ошибка во время работы приложения
Доброго времени суток. Во время работы приложения вылетает такая ошибка. Пробовал переустановить - не помогает. Microsoft .NET Framework...

Блокировка ip во время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался ip например 145.345.8.9?

5
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.09.2012, 22:16
Bringing an application to the foreground and altering it's window state
2
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
08.09.2012, 18:06  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Option Explicit
 
 
Private Type POINTAPI
    x As Long
    y As Long
End Type
 
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type WINDOWPLACEMENT
    Length As Long
    flags As Long
    showCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type
 
Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_MINIMIZE = 6, SW_NORMAL = 1, SW_MAXIMIZE = 3, SW_RESTORE = 9
 
 
'-------METHOD 1--------------
 
'Purpose   :    Brings the specified application to foreground and alters it's window state.
'Inputs    :    [sFormCaption]                  The caption of the dialog to bring to the foreground.
'               OR
'               [lHwnd]                         The window handle of the dialog to bring to the foreground.
'               [lWindowState]                  Specifies the windowstate of the application (defaults to normal)
'Outputs   :    Returns True on success
'Notes     :    Specify either the application caption or it's windows handle
'Revisions :
 
Function AppToForeground(Optional sFormCaption As String, Optional lHwnd As Long, Optional lWindowState As Long = SW_NORMAL) As Boolean
    Dim tWinPlace As WINDOWPLACEMENT
 
    If lHwnd = 0 Then
        lHwnd = DialogGetHwnd(sFormCaption)
    End If
    If lHwnd Then
        tWinPlace.Length = Len(tWinPlace)
        'Get the windows current placement
        Call GetWindowPlacement(lHwnd, tWinPlace)
        'Set the windows placement
        tWinPlace.showCmd = lWindowState
        'Change window state
        Call SetWindowPlacement(lHwnd, tWinPlace)
        'Bring to foreground
        AppToForeground = SetForegroundWindow(lHwnd)
    End If
End Function
 
 
'-------METHOD 2--------------
 
'Purpose   :    Brings the specified application to foreground and alters it's window state.
'Inputs    :    [sApplicationCaption]           The application caption.
'               [lHwnd]                         The handle to the application.
'               [lWindowState]                  Specifies the windowstate of the application (defaults to normal)
'Outputs   :    Returns True on success
'Notes     :    Specify either the application caption or it's windows handle
'Revisions :
 
Function AppToForeground2(Optional sApplicationCaption As String, Optional lHwnd As Long, Optional lWindowState As Long = SW_NORMAL) As Boolean
 
    
    If lHwnd = 0 Then
        lHwnd = DialogGetHwnd(sApplicationCaption)
    End If
    If lHwnd Then
        'Alter window state
        AppToForeground2 = ShowWindow(lHwnd, lWindowState)
        'Bring to foreground
        AppToForeground2 = SetForegroundWindow(lHwnd)
    End If
End Function
 
 
'Demonstration routine, brings Excel to foreground and maximises it
Sub Test()
    Dim lHwnd As Long
    
    'Get Excel's handle
    lHwnd = DialogGetHwnd(, "XLMAIN")
    If lHwnd Then
        If AppToForeground(, lHwnd, SW_MAXIMIZE) Then
            MsgBox "Maximized Excel", vbSystemModal
        Else
            MsgBox "Failed to Maximised Excel", vbSystemModal
        End If
    Else
        MsgBox "Please open Excel before trying this demonstration"
    End If
End Sub
 
 
'Purpose   :    Returns the Windows Handle of a Dialog based on its caption.
'Inputs    :    [sDialogCaption]                The dialog caption.
'               [sClassName]                    The class name of the dialog. If unknown, do not specify
'                                               this parameter.
'Outputs   :    The Dialogs Window Handle
'Notes     :    Specify either a dialog caption or class name or both.
'Revisions :
 
Function DialogGetHwnd(Optional ByVal sDialogCaption As String = vbNullString, Optional sClassName As String = vbNullString) As Long
    On Error Resume Next
    DialogGetHwnd = FindWindowA(sClassName, sDialogCaption)
    On Error GoTo 0
End Function
Извиняюсь, всё никак не разберусь с вашим кодом, можете пояснить здесь как определяется процесс.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.09.2012, 21:58
Строка 93 вызывает API-функцию, которая определяет Хендл процесса по названию его окна.

FindWindow
Получает дескриптор окна верхнего уровня, имя класса или имя окна которого соответствуют указанной строке. Эта функция не ищет дочерние окна. Эта функция не выполняет поиск с учетом регистра.
MSDN
2
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
09.09.2012, 21:27  [ТС]
Dragokas, у меня максимизируется только окно EXCEL причём в строке 93
Visual Basic
1
lHwnd = DialogGetHwnd(, "XLMAIN")
когда меняю XLMAIN на имя своего процесса эффекта нет
в чём тут дело?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.09.2012, 22:45
Ну правильно. Почитайте заголовок процедуры DialogGetHwnd:
1 параметр - название окна (должно быть полное совпадение с учетом регистра)
2 параметр - имя класса (можете воспользоваться бесплатным Spy++, чтобы его узнать).
Указываете один из них.
XLMAIN - это имя класса.

Здесь я описывал, как получить хендл по имени процесса
Завершить сторонний процесс
(строка 44)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2012, 22:45
Помогаю со студенческими работами здесь

Повышение прав приложения во время работы
Имеется проект графической программы. Этой программе необходимо во время работы повышать права до суперпользователя. Во время работы...

Смена языка приложения во время работы
Добрый день. Подскажите, как сменить язык во время работы приложения? Thread.CurrentThread.CurrentUICulture = new...

Узнать время работы консольного приложения
Получить время работы консольного приложения (время выполнения кода) в формате: часы:минуты:секунды (например: 00:01:37)

Закрыть порт на время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался для исходящий подключений порт например 7777, а после...

Не видно уведомление во время работы приложения
Я разрабатываю под андроид приложение для радиостанции. Когда запускаю приложение,должно вверху выскакивать уведомление со значком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru