Страница: 1 | 2 |
Вопрос: Как скрыть окно?
Добавлено: 17.01.06 16:55
Автор вопроса: SerJ
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
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, 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 CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
Public Sub ExecCmd(cmdline As String)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
Dim ret As Long
start.cb = Len(start)
start.wShowWindow = 0
ret = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, vbNullString, start, proc)
ret = WaitForSingleObject(proc.hProcess, INFINITE)
ret = CloseHandle(proc.hProcess)
End Sub
Sub Main
ExecCmd "Calc.exe"
End Sub
Данный код при выполении загружает в память прогу типа калькулятор, но не прячет её. Подскажите, в чём тут допущена ошибка?
Ответы
Всего ответов: 20
Номер ответа: 1
Автор ответа:
GeorgeGA
Вопросов: 1
Ответов: 101
Профиль | | #1
Добавлено: 17.01.06 19:43
SerJ
Если тебе надо просто открыть калькулятор, то используй shell("",vbhide),vbhide тебе его и спрячет.Проверить завершение проги можешь по её хендлу.вот и всё, зачем ты так замарачивался?
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 17.01.06 20:44
Public Function Window_show(hWnd As Long, ShowOptions As Byte)
'Куча действий с окном
'Значения ShowOptions:
'0 - Hide
'3 - MAXIMIZE
'6 - MINIMIZE
'9 - RESTORE
'5 - SHOW
'10 -SHOWDEFAULT
'3 - SHOWMAXIMIZED
'2 - SHOWMINIMIZED
'7 - SHOWMINNOACTIVE
'8 - SHOWNA
'4 - SHOWNOACTIVATE
'1 - SHOWNORMAL
ShowWindow hWnd, ShowOptions
End Function
Номер ответа: 3
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #3
Добавлено: 18.01.06 00:32
И чё мне её в таймер запихнуть? Неее. Нет и нет!!! Ну это же по-ламмерски как-то. Где вы, профи?
Номер ответа: 4
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #4
Добавлено: 18.01.06 00:35
Серьёзно? Да ну? Я, чесн говоря, и не знал! Нууу, спасибо...
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 18.01.06 01:18
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 18.01.06 13:53
Может он имеет ввиду скрыть из списка процессов?
Номер ответа: 7
Автор ответа:
Эндрю
ICQ: 303-304-826
Вопросов: 24
Ответов: 103
Web-сайт:
Профиль | | #7
Добавлено: 21.01.06 00:30
А можно где-нибудь написать строчку Form1.Visible = False
Номер ответа: 8
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #8
Добавлено: 24.01.06 19:30
Хорошо, а как тогда мне дать среагировать на WaitForSingleObject?
нет, этого делать не нужно.
Это как? Разве что
Окно-то не моё. Что внести в данный код, что энто всё реализовать-запустить прогу "cmd.exe" с некоторыми параметрами. И когда данное окошко закроется (а его работа займёт несколько сек), дать знать это моей проги
Номер ответа: 9
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #9
Добавлено: 24.01.06 19:32
ЗЫ. Сорри за некорректнось работы моего драйвера - "myhands.sys"
Номер ответа: 10
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #10
Добавлено: 24.01.06 22:07
Цитата MSDN:
Ignored unless dwFlags specifies STARTF_USESHOWWINDOW. ...
Номер ответа: 11
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #11
Добавлено: 24.01.06 22:28
wShowWindow
Ignored unless dwFlags specifies STARTF_USESHOWWINDOW. ...
Если можно, поподробнее, или если сам не можешь, дай плиз полную ссылочку на этот ресурс
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 24.01.06 23:43
Блин! Как скрыть окно зная хендел я показал, найти хендел по заголовку
- FindWindow Что ещё?
Номер ответа: 13
Автор ответа:
SerJ
Вопросов: 24
Ответов: 332
Профиль | | #13
Добавлено: 25.01.06 02:34
да при чём здесь FindWindow? Не катит он! смотри из монего прримера:
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
[B]wShowWindow As Integer [/B]
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Как ЭТО реализовать?
неуж-то решение этого вопроса ч/з FindWindow?
Тем более, если реализовать его, то обязательно надо таймер!
Хакер, твой способ я знаю - он простенький, но ресурсоемкий!
Народ, Victor, подскажите ссылочку на этот МСДН-ресурс или если кто помнит - выложите этот маленький (уверен) кусочек кода! Заранее благодарен всем
Номер ответа: 14
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #14
Добавлено: 26.01.06 10:34
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
 WORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
[B]LPSTARTUPINFO[/B] lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
Полностью цитировать не буду, сейчас ссылочку поищу.
Номер ответа: 15
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #15
Добавлено: 26.01.06 10:38
Вот по STARTUPINFO а дальше ссылочки...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/startupinfo_str.asp