ACESSO NEGADO
Olá, pessoal, acho que estou perdido agora.
Aqui na empresa tem um sistema que controlava os pedidos de compras. Funcionava muito bem enquanto o micro de quem utilizava ele tinha o XP, agora trocou o Sistema Operacional para Windows 7. Ferrou, porque agora toda vez que o usuário tecla ENTER para ir para o próximo campo, aparece a mensagem de Erro 70 Acesso Negado. Pesquisei aqui no site e descobri que há uma incompatibilidade de versões do Windows onde me parece que o comando SendKeys não funciona no W7. O problema maior é que não temos mais o fonte do programa, o micro onde tinha os fontes [Ô]deu pau[Ô] há algum tempo e perdemos eles. E agora, há outra solução, ou vamos ter que reescrever tudo de novo?
Até mais.
Aqui na empresa tem um sistema que controlava os pedidos de compras. Funcionava muito bem enquanto o micro de quem utilizava ele tinha o XP, agora trocou o Sistema Operacional para Windows 7. Ferrou, porque agora toda vez que o usuário tecla ENTER para ir para o próximo campo, aparece a mensagem de Erro 70 Acesso Negado. Pesquisei aqui no site e descobri que há uma incompatibilidade de versões do Windows onde me parece que o comando SendKeys não funciona no W7. O problema maior é que não temos mais o fonte do programa, o micro onde tinha os fontes [Ô]deu pau[Ô] há algum tempo e perdemos eles. E agora, há outra solução, ou vamos ter que reescrever tudo de novo?
Até mais.
desative o controle de contas de usuario do windows 7 que funciona..
Isso acontece desde o Vista. Só consegui contornar com API ao recompilar o código. Sem fontes? Deve ser complicado hein!
Há sempre um código-gambiarra para cada situação. Use esta função:
Antes, faça as seguintes declarações em um módulo:
Public Function SendKeysA(ByVal vKey As Integer, Optional booDown As Boolean = False)
[ô]Codigo by CDias (22/02/2009)
Dim GInput(0) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = vKey
If Not booDown Then
KInput.dwFlags = KEYEVENTF_KEYUP
End If
GInput(0).dwType = INPUT_KEYBOARD
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
Call SendInput(1, GInput(0), Len(GInput(0)))
[ô]ex.: SendKeysA vbKeyTab, True
End Function
Antes, faça as seguintes declarações em um módulo:
[ô]função SendKey API
Public Const KEYEVENTF_KEYUP = &H2
Public Const INPUT_KEYBOARD = 1
Public Type KEYBDINPUT
wVk As Integer
wScan As Integer
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type GENERALINPUT
dwType As Long
xi(0 To 23) As Byte
End Type
Public Declare Function SendInput Lib [Ô]user32.dll[Ô] (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Putz ... agora que li o [Ô]sem fontes[Ô]... soda !
Pois é, colegas, vai ser muito difÃcil. Vamos ter que programar tudo novamente, infelizmente.
Até mais e obrigado pelas tentativas.
Até mais e obrigado pelas tentativas.
Tente o que eu falei. Nao sei se da certo ja que o sistema ja esta compilado.. mas pra mim resolveu..
Não sei se vai ser possÃvel, pois aqui tudo é controlado pelos administradores. Mas vou tentar.
Até mais.
Até mais.
Não sei se vai ser possÃvel, pois aqui tudo é controlado pelos administradores. Mas vou tentar.
Até mais.
Até mais.
executa o programa em modo de compatibilidade com windows xp, para ver se resolve.
TENTA ASSIM:
INSTALA UMA VIRTUAL MACHINE VIRTUAL BOX, VMWARE, ETC...
E COLOCA O WINDOWS XP DENTR DO WIN7, instala o seu programa e tenta rodar.
INSTALA UMA VIRTUAL MACHINE VIRTUAL BOX, VMWARE, ETC...
E COLOCA O WINDOWS XP DENTR DO WIN7, instala o seu programa e tenta rodar.
Tópico encerrado , respostas não são mais permitidas