|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
SendKeys Visual Basic 6.0
Salve gente, ho questo bel problema con un mio programmino in Visual Basic 6.0
Il piccolo applicativo, ad un creto punto dell'esecuzione, si trova costretto a salvare un file Pdf sul disco fisso. Per compiere questa banale operazione utilizza un SendKyes che invia una serie di caratteri ad una DialogBox "SaveAs" che andranno a formare il nomefile. L'80% delle volte funziona mentre nel 20% dei casi l'intera stringa o parte di essa va persa. Questo perchè la SendKeys invia i valori alla finestra attiva e, probabilmente, un lieve ritardo della DialogBox produce l'errore descritto prima (questo è ciò che penso e non ne sono sicuro al 100%). Come posso risolvere questo problema di sincronizzazione? premetto che la nella SendKey invio non solo il nomefile ma ache le combinazioni di tasti per spostarmi correttamente nel giusto TextBox e la pressione del tasto invio.
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Solo un informazione, ma il tuo applicativo lancia anche il programma per PDF o è già aperto?
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
Ho creato con crystalreport dei documenti che vengono creati dinamicamente dal programma a seconda dei valori inseriti. Questi report devo allegarli ede inviarli tramite Mial. Per sicurezza abbiamo deciso che i report, prima di essere inviati,debbano essere convertiti in Pdf dalla stampante virtuale Pdf995.
Questa stampante crea il Pdf ed immmediatamente dopo ti chiede in che posizione del disco vuoi salvalo: è propio in questo momento che entra in ballo la SendKeys. L'Adobe non è aperto ed il documento viene mostrato tramite un oggetto preview che fornisce crystal report. si composrta in modo "random"... penso che sia un problema di sincronia tra le applicazioni. La SendKeys comunque invia sempre i caratteri (lo senti dai beep del computer)
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ma in che momento del programma fai partire il sendkeys ?
Più che altro in che routine?
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
la SendKeys parte in un evento click di un tasto. Questo evento controlla che i dati inseriti siano corretti, crea il report e lancia la stampa nel seguente modo:
CrystalReport.PrintReport: DoEvents SendKeys "%n", True SendKeys pdf, True SendKeys "%s", True cao la SendKeys scritta così mi sposto nel campo nomefile (%n), Scivo il nomefile (pdf) e confermo la scelta (%s). ::ATTENZIONE:: Io posso creare 2 tipi di Pdf: il primo è più macchinoso ed in genere la stampa del pdf è più lunga (non da problemi). Il secondo tipo di documento cviene creato in modo rapidissimo ed è in questo caso che la SendKeys non va (alcune volte). Inoltre la DialogBox "SaveAs" appare a piacimento: alcune volte prima della stampa, altre al termine di essa.
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ora io nn ho mai suto il crystal perchè per i report uso l'Active, cmq penso che bene o male anche il crystal report in se abbia delle routine, nn so per esempio del "report completato", così facendo sei sicuro che lui lancia la tua sendkeys nn mentre carica il report ma quando è finito!
Prova a vedere se c'è qlc del genere ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
Ma crystalreport non centra nulle con il mio problema: i report vengono creati perfettamente. La stampa del Pdf avviene solo a report completato. Ed è al Pdf che non riesco sempre a dare un nome.
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
Inoltre crystalreport e tutti i suoi OCX non posseggono eventi!!!! Sono veramente disperato..in tutto il Web non trovo la risposta che fa per me. HELP ME PLEASE!!
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Il punto che il sendkeys è molto pericoloso perchè se perde il focus la schermata lui spara sulla schermata con il focus nuovo.
Se nn funziona il 20% delle volte sembrerebbe quasi che a volte appunto lui lanci il sendkeys prima che si attivi la schermata e quindi perdentoti le fasi iniziali del sendk si sfalda la sequanza. Prova a mettere la funzione SLEEP tra la riga che lancia il report e la riga che lancia il sendk , prova a mettere 3000 (3 secondi, dovrebbero bastare come attesa) ES: Codice:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Me.Caption = "Your system will sleep 5 sec." 'Sleep for 5000 milliseconds Sleep 5000 Me.Caption = "" End Sub Private Sub Form_Load() Me.Caption = "" Command1.Caption = "Sleep ..." End Sub
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Mar 2004
Città: Guarene
Messaggi: 45
|
Grazie...grazie di cuore. Potrai immaginare la gioia di un programmatore in erba nel vedere il suo programma funzionare senza fronzoli.
__________________
Sapere è potere, i potenti però...sono ignoranti! |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:42.