Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-12-2002, 18:09   #1
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
problemi con FINDWINDOW

Chi sà spiegarmi perché, se ci sono altri file di excel aperti (ridotti a icona), questa sub non riesce ad aprire “cambi.xls”?
Se Excel non è in esecuzione tutto ok, su load della maschera di access viene aperto il file di excel e attivato il foglio “query web”, se “CAMBI.xls” è già aperto, ma solo lui!, esce dalla sub e carica direttamente la maschera.

Codice:
'In un modulo di access 2000'

Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub excel()

Dim path
Dim MyXL
Dim hWnd As Long

hWnd = FindWindow(vbNullString, "Microsoft Excel - CAMBI.xls")

If hWnd = 0 Then '0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject("C:\documenti\CAMBI.xls")
    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
    MyXL.Sheets("query web").Activate
Set MyXL = Nothing

Else
 Exit Sub
End If

End Sub

'In una maschera di access'

Private Sub Form_Load()
 excel
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:30   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non ho capito bene qual è il problema... Me lo potresti rispiegare ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:43   #3
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Questa sub mi serve per aprire CAMBI.xls da access all'apertura di una maschera, ma se ci sono altri file di excel aperti la sub non riesce ad aprire il file.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:46   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quale ramo dell' If fa nel caso che sia già aperto un file di Excel ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:47   #5
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
La modifica è per togliere 2 dim che non c'entravano nulla.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:50   #6
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Con questa riga vorrei controllare se CAMBI.xls è aperto :If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione.

Codice:
'In un modulo di access 2000' 

Option Compare Database 
Option Explicit 

Private Declare Function FindWindow Lib "user32" Alias _ 
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 

Sub excel() 

Dim path 
Dim MyXL 
Dim hWnd As Long 

hWnd = FindWindow(vbNullString, "Microsoft Excel - CAMBI.xls") 

If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione. 

Set MyXL = GetObject("C:\documenti\CAMBI.xls") 
    MyXL.Application.Visible = True 
    MyXL.Parent.Windows(1).Visible = True 
    MyXL.Sheets("query web").Activate 
Set MyXL = Nothing 

Else 
Exit Sub 
End If 

End Sub 

'In una maschera di access' 

Private Sub Form_Load() 
excel 
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 18:55   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "CIUFFO"

Con questa riga vorrei controllare se CAMBI.xls è aperto :If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione.
Ok... ma che ramo dell'if ti fa nel caso che un altri documento xls sia aperto (che se ho capito è il caso in cui non ti viene aperto CAMBI.xls) ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:33   #8
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
Quote:
Originally posted by "CIUFFO"

Questa sub mi serve per aprire CAMBI.xls da access all'apertura di una maschera, ma se ci sono altri file di excel aperti la sub non riesce ad aprire il file.

forse perchè devi portare cambi.xls in primo piano
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 10:23   #9
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Per misterX:
come lo porto in primo piano da VB?
Già c'è
Codice:
MyXL.Sheets("query web").Activate
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 10:27   #10
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Per Cionci

Non c'è un ramo dell'if per il caso che un'altro .xls sia aperto
L'if controlla solo se "CAMBI.xls" è già aperto ed esce dalla sub se è gia aperto altrimenti lo apre, solo che se ci sono altri .xls non ci riesce e non capisco perchè.
Ciao
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 16:09   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
ho provato anch'io le API da te proposte, in effetti, se sul titolo della windows non compare per intero

"Microsoft Excel - Cartel1.xls"

la window non viene trovata

non sono un profondo conoscitore di VB ma per similitudine, ho idea che devi utilizzare ulteriori API del tipo

GetNextWindow() passandogli come handle

hwnd = FindWindow(0,"Microsoft Excel")

GetNextWindow(hwnd,GW_HWNDNEXT)


ma sicuramente in VB vi è un metodo più semplice

hai provato la FindWindowEx()?

a me purtroppo molte API sotto Excel non funzionano quindi non posso fare molte prove
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 09:22   #12
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Se metti un msgbox qualunque nella open del workbook del file .xls richiesto:
Codice:
Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
Find windows apre il file .xls anche se ce ne sono altri aperti, ma una volta dato l'ok a msgbox excel dà il focus ad un'altro file .xls e quello richiesto che era apparso con l'msgbox sparisce!
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 09:26   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma se è già aperto CAMBI.xls, ma non ha il focus, FindWindow te lo trova ?
In questo caso dovrebbe bastare usare nuovamente FindWindow per ottenere l'handle alla finestra di CAMBI.xls...poi gli setti il focus con l'API SetFocus...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 15:16   #14
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Se Cambi.xls è già aperto l'IF va su else ed esce dalla sub.
Io voglio aprire Cambi.xls solo se non è già aperto, solo che se ci sono altri .xls findwindows non ci riesce, ovvero, ci riesce ma una volta dato ok a msgbox sparisce.
se provi questo esempio capirai:
Codice:
'in un modulo
Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub excel()
Dim path
Dim MyXL
Dim hwnd As Long

path = "c:\documenti\excel\Cartel1.xls"

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")

If hwnd = 0 Then ' 0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject(path)

    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
   
Set MyXL = Nothing

Else
 Exit Sub
End If

End Sub

'in una maschera
Private Sub Form_Load()
excel
End Sub

'in Cartel1.xls

Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 15:29   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "CIUFFO"

Se Cambi.xls è già aperto l'IF va su else ed esce dalla sub.
Appunto... Guarda come lo modifico per rendere attivo CCAMBI.XLS

Codice:
'in un modulo
Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

Sub excel()
Dim path
Dim MyXL
Dim hwnd As Long

path = "c:\documenti\excel\Cartel1.xls"

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")

If hwnd = 0 Then ' 0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject(path)

    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
   
Set MyXL = Nothing

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")
If hwnd <> 0 Then
SetForegroundWindow(hwnd)
SetFocus(hwnd)
End If

Else
 Exit Sub
End If

End Sub

'in una maschera
Private Sub Form_Load()
excel
End Sub

'in Cartel1.xls

Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 18:30   #16
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Ho provato la tua modifica, ma non cambia nulla!
Dopo aver dato l'ok a msgbox cartel1 sparisce!
E poi hai messo:
Codice:
hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls") 
If hwnd <> 0 Then 
SetForegroundWindow(hwnd) 
SetFocus(hwnd) 
End If
Io devo dare il focus a Cartel1 dopo averlo aperto con getobject(path) e solo se non è già aperto.
E' chiaro che se è già aperto non devo aprirlo ancora.
La mia sub serve per aprire Cartel1 solo nel caso non sia già aperta.
Spero di essere stato chiaro.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 19:11   #17
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
devi andare a cercarla la window con GetNextWindow()

ci sono in rete un sacco di esempi adatti allo scopo


prova una cosa del genere:

Codice:
  hwindow = FindWindow(vbNullString, "Microsoft Excel")

  if hwindow <> 0 then
    hwindow = FindWindowEx(hwindow, 0, "Cambi.xls", vbNullString)
  end if

  If hwindow = 0 Then msgbox "Cambi.xls non trovata"
  msgbox hwindow
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 19:14   #18
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
sob, doppio post
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 19:28   #19
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Già provato, non funzia!
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 19:29   #20
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
hai provato enumerando le window?
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Porsche: addio alla produzione di batter...
WD Blue SN5100: Sandisk rinnova la serie...
Oracle espande la sua offerta di modelli...
Come il robot DEEBOT X8 PRO OMNI sta con...
Come TPM 2.0 e SecureBoot sono diventati...
17 svendite imperdibili Amazon, da 9,85€...
BOE punta a diventare partner di Samsung...
Modifica foto come mai prima! Arriva su ...
NVIDIA GB10 Grace Blackwell: il 'piccolo...
Le 4 migliori occasioni per potenziare i...
Squadron 42 (Star Citizen) sfida GTA 6? ...
Il robot AiMOGA di Omoda Jaecoo ora &egr...
Core i9-14900KF a 9,13 GHz con elio liqu...
Stellantis fa retromarcia: sospeso il pr...
Irlanda, sui treni si fa silenzio: multe...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:54.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v