Newsgroup: it.comp.lang.visual-basic
Titolo: xp e sendkeys

ci ho messo un po' a capire..
1. un programma prende la lista dei pc in rete. ne punto uno, apro vnc, 
immetto la pass con sendkeys, e faccio login spedendo login e pass sempre 
con sendkeys.
win2000 il mio, win2000 gli altri, tutto ok.
2. xp con aspetto win2000 il mio, tutto ok.
3. attivo gli effetti di xp sul mio
risorse > proprieta' > avanzate > aspetto migliore
il mio prog non funziona piu'. durante la sequenza, attiva altre finestre, e 
i sendkeys agiscono sulle finestre sbagliate.
4. dato che l'avevo rimaneggiato, controllo il codice. zero, non va 
qualunque cosa io faccia.
5. pc nuovo con xp. dato che col look xp ha casini vari, metto il look 2000.
il mio programma, portato pari pari, va com'e' sempre andato.
dal mio continua a non andare.
a.p.

 immetto la pass con sendkeys
Sendkeys NON e' molto affidabile
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias _
"SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, _
wParam As Any, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName _
As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias _
"FindWindowExA" (ByVal hWndParent As Long, ByVal hwndChildAfter _
As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
Private Const WM_SETTEXT = 12
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
  Public Sub ToNotePad(x As String)
      Dim h As Long, ed As Long, t As Long
      h = FindWindow("Notepad", "Senza nome - Blocco note")
     Debug.Print h
      If (h <> 0) Then
          ed = FindWindowEx(h, 0, "Edit", "")
         Debug.Print ed
          If (ed <> 0) Then
     SendMessage ed, WM_SETTEXT, ByVal 0, ByVal x
          Else
              MsgBox "Could not find notepad's edit"
          End If
      Else
          MsgBox "Could not find notepad"
      End If
  End Sub
Private Sub Form_Load()
Shell "notepad", vbMaximizedFocus
  ToNotePad "hello world"
End Sub
' 
http://www.allapi.net/cgi-bin/redirect.cgi?place=apiguide
-- 
Fosco

 Private Declare Function FindWindow
grazie, buona idea.
ciao, a.

 grazie, buona idea.
De nada , se NON (io non lo adopero) il WMI sembrerebbe piu'
adatto a quello che vuoi fare
http://tinyurl.com/2tc3dl
http://tinyurl.com/33pfhh
--
Fosco

 Sendkeys NON e' molto affidabile
stremato dai bottoni tondi, mi e' venuta in mente una cosa.
ok, la finestra del login di vnc posso trovarla.
ma una volta che la lancio, il sendkwys mi tocca farlo comunque. o c'e' un 
modo di beccare la maschera di logon _dentro_ a una finestra di vnc?
btw, qualcuno ha provato questo controllo?
http://www.veridicus.com/tummy/programming/vncx/
un esempio vb e' linkato nella pagina.
funziona benone. unica cosa, la tastiera risulta bloccata proprio nella 
maschera di logon. si sblocca all'improvviso, magari lanciando 
contemporaneamente il viewer allegato all'ocx, ma non e' sufficientemente 
costante da poterlo usare sul lavoro. al momento non sono riuscito a 
risolverlo.
ciao, a.

 di vnc?
Alternativa: memorizzare le opzioni dei vari pc, pwd compresa,
e lanciare direttamente il .vnc corrispondente, con una shellexecute
o quello che è, in modo che la connessione avvenga automaticamente.
Questo, *se* ho capito quello che stai facendo, il che non è detto :-).
Bye, G. 

 o quello che è, in modo che la connessione avvenga automaticamente.
Ops, mancava un pezzo.
Oppure, se non vuoi memorizzare le pwd (che comunque devi
avere nell'exe, no ?) puoi sempre lanciare il viewer passando la
password sulla riga di comando.
Bye, G. 

"Paperino" <non...@lo.dico> ha scritto

dunque
(tutte le pass sono hardcoded, che non e' il massimo, ma al momento tant'e', 
non siamo al norad)
1. lancio vnc. ha una sua pass. questa finestra potrei recuperarla, e 
mandarle un messaggio. posso anche lanciare il .vnc, ma non e' questo il 
problema...
2. ... _dentro_ vnc, devo fare logon su alcune macchine. al momento c'e' una 
serie di sendkeys (ctrl-alt-del, e gia' qualcuno qui mi ha suggerito 
ultravnc, che con tight non si riesce, poi per lo shortcut dell'utente, che 
devo essere sicuro sia quello giusto, e sua pass, poi shortuct della pass e 
pass, poi enter). (pregando che qualche idiota non abbia mosso il dominio da 
rete a locale, che cominciano con la stessa iniziale :).
mal che vada apro vnc e vado a mano, piuttosto che andare li' e' gia' 
qualcosa. ma e' diventata una questione di puntiglio...
nb che il tutto con win2000 e xplook2000 funziona. e' con xp-look-xp che 
qualche effetto incasina il tutto e manda avanti la finestra sbagliata.
a parte questo, mi piaceva cercare (gia', il tempo abbonda :) una soluzione 
piu' pulita. nascondere meglio le pass non sarebbe un problema.
ma non so riesco a pensare come catturare una finestra _dentro_ vnc.
ciao, a.

 ma non so riesco a pensare come catturare una finestra _dentro_ vnc.
Io non ci proverei neanche. Ti serve in ogni caso un programma
locale, che magari potresti anche lanciare da vnc... *dopo* aver
fatto il logon, però :-(.
Bye, G. 

 utenti, credo anche lanciando il .vnc
Eh... no. :-(.
Ho trovato un'altra macchina (locale ;-) ) su cui provare.
Nel .vnc si può memorizzare solo la "normale" pwd, non la
coppia user/pass per il logon MS. In compenso, la finestra
in cui fare il logon è locale, non remota... io proverei così.
Bye, G. 


 > Dottor Wiittorione Quadricampione wrote:
 >
 > > Ultimamente, mentre sto scrivendo un documento o anche solo "trafficando"
 > > con dei files, capita che il programma in uso sembri.."tornare al
 > > desktop" ! Mi spiego meglio: se ad esempio sto battendo un testo, mi
 > > sparisce il cursore e la finestra diventa più chiara
 > [...]
 >
 > Se hai installato Spamihilator, vai su Impostazioni e deseleziona la casella
 > "Verifica automaticamente aggiornamenti", poi riavvia il pc.
 > Spamihilator ha qualche problema con i suoi server da circa una settimana.
 > La conseguenza assurda è che nel tentativo di aggiornarsi, crea problemi al
 > focus delle finestre attive.
PS :
sulla macchina che ha problemi :
.cit
Tweakui XP
http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
Tweakui generale
http://www.systemsmedic.com/TweakUI.htm
Ci dovrebbe essere qualcosa tipo >> prevent application from
stealing focus
a memoria pure flash tasbkar o similia .. prova a smanettare li
-- 
Fosco

 in cui fare il logon č locale, non remota... io proverei cosě.
si, uso la 1.0.1
l'hanno imboscata bene, ma spiega
file:///C:/Programmi/UltraVNC/doc/features/authentication.html
grazie, provo senz'altro.

 a memoria pure flash tasbkar o similia .. prova a smanettare li
si', dai tempi di win95 sui pc nuovi installo sempre subito alcuni 
powertoys, command prompt here, sendtox e tweakui.
prevent e' spuntato, e flash 3 times. ma mi sembra strano.
grazie, a.

 prevent application from stealing focus
yes. togliendo la spunta (c'era) con tweakui, si e' rimesso ad andare.
sull'altro pc su cui andava e va, la voce e' spuntata.
mi sta venendo un gran mal di testa, ma non importa :)
grazie e ciao, a.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it