RESTAURAR CALCULADORA

ADEILSON 18/11/2004 16:30:58
#50959
Pessoal Boa Tarde,
Tenho uma aplicação rodando e o calc.exe do windows na mesma maquina,
gostaria que minha aplicação restaurasse essa calculadora que esta na barra do iniciar do windows(minimizada). Pesquisei alguma coisa sobre a API "sendmessage", mais não obtive sucesso. Gostaria de saber se alguem tem algum exemplo para me passar com relação a essa API.


Grato !
USUARIO.EXCLUIDOS 19/11/2004 04:35:44
#51034
Resposta escolhida
Considerando que a calculadora está aberta e minimizada...
 
'No módulo:
Option Explicit

Declare Function EnumWindows Lib "user32" (ByVal wndenmprc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Public Const WM_SYSCOMMAND = &H112
Public Const SC_MAXIMIZE = &HF030&

Private Target As String

Public Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long

Dim buf As String * 256
Dim title As String
Dim length As Long

length = GetWindowText(app_hWnd, buf, Len(buf))
title = Left$(buf, length)

If InStr(title, Target) <> 0 Then
SendMessage app_hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0
BringWindowToTop app_hWnd
EnumCallback = 0
Else
EnumCallback = 1
End If

End Function

Public Sub MaximizeTask(app_name As String)

Target = app_name
EnumWindows AddressOf EnumCallback, 0

End Sub


 
'No Command:
MaximizeTask "Calculadora"

O chato é que fica realmente maximizada....
Vou procurar um código melhor...
Por enquanto, tente alterar o valor de SC_MAXIMIZE
Tópico encerrado , respostas não são mais permitidas