[Risolto] SendKeys-invio messaggi Whatsapp

Creare una macro - Scrivere uno script - Usare le API
Rispondi
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

[Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da patel »

Vorrei inviare stringhe ad una applicazione exe, riesco ad inviare il carattere TAB in modo da far posizionare il cursore nel campo di immissione ma non ad inserirci un testo, questo il mio codice

Codice: Seleziona tutto

Sub Main				

Dim oShell, MyApp, i  
doc = ThisComponent
Sh = doc.Sheets(0)
Set oShell = CreateObject("WScript.Shell")
MyApp = "C:\Users\patel\AppData\Local\WhatsApp\WhatsApp.exe"
i = 0
i = oShell.Run(MyApp, 1 ,false)
wait 8000
oShell.SendKeys "+{TAB}", True
oShell.SendKeys "+{TAB}", True
oShell.SendKeys "+{TAB}", True
oShell.SendKeys "+{TAB}", True
startrow = 1
startcol = 0
    contact = sh.GetCellByPosition(startcol,startrow).String
    line1 = sh.GetCellByPosition(startcol + 1,startrow).String
    oShell.SendKeys "+" & contact, True
    oShell.SendKeys "~", True
    oShell.SendKeys "+~", True
    oShell.SendKeys line1, True
    oShell.SendKeys "+~", True
    wait 5000
    oShell.SendKeys "+{TAB}", True
    oShell.SendKeys "+{ENTER}", True
    oShell.SendKeys "~", True

End Sub
Ultima modifica di patel il venerdì 25 novembre 2022, 15:56, modificato 2 volte in totale.
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: SendKeys

Messaggio da Gaetanopr »

Così funziona su whatsapp web.

Codice: Seleziona tutto

Sub InvioWhatsApp				

doc = ThisComponent
Sh = doc.Sheets(0)

startrow = 1
startcol = 0
contact = sh.GetCellByPosition(startcol,startrow).String
line1 = sh.GetCellByPosition(startcol + 1,startrow).String

Stringa = "https://web.whatsapp.com/send?phone=%2B" & contact & "&text=" & line1 & "&app_absent=1&send=1" 
Dim shell As Object 
Set shell = CreateObject("shell.application") 
shell.Open Stringa 
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: SendKeys

Messaggio da patel »

Strano, a me non va, apre la pagina web.whatsapp.com , appaiono per un attimo i dati da inviare e poi spariscono.
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: SendKeys

Messaggio da Gaetanopr »

Non so che dire a me apre https://web.whatsapp.com/ il contatto indicato su A2 e scrive il messaggio indicato su B2, devo solo inviarlo.
Non ho provato la tua macro in quanto non ho ancora scaricato whatsapp desktop, appena ho due minuti la provo.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: SendKeys

Messaggio da patel »

C'è qualche documentazione su sendkeys ? non trovo niente, comunque non c'è fretta, si tratta solo di curiosità,
-
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: SendKeys

Messaggio da Gaetanopr »

Ho installato Whatsapp desktop ma cosa strana non riesco a risalire al suo percorso, dovrebbe trovarsi su

Codice: Seleziona tutto

"C:\Users\gaetano\AppData\Local\"
ma niente, hai provato con la funzione collegamento dal foglio direttamente?
Allegati
APRI_WHTSAPP.ods
(11.02 KiB) Scaricato 1 volta
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: SendKeys

Messaggio da patel »

Il percorso è C:\Users\gaetano\AppData\Local\WhatsApp\WhatsApp.exe.
Con l'app si può mettere il nome utente invece del numero di telefono, io avevo provato la tua macro per la versione web col nome utente, invece col num di telefono funziona ma aspetta l'invio manuale, quindi non è adatta per spedire messaggi ad una lista di contatti.
Con Excel usando SendKeys riesco a farlo e provavo a farlo anche con libre.
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: SendKeys

Messaggio da Gaetanopr »

patel ha scritto: giovedì 24 novembre 2022, 20:48 Il percorso è C:\Users\gaetano\AppData\Local\WhatsApp\WhatsApp.exe
Si questo intendevo, ma non esiste e la tua macro va in errore.
Con excel pure a me funziona sempre con whatsapp web, faccio una prova per vedere se riesco ad inviarlo tramite nome contatto.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: SendKeys

Messaggio da Gaetanopr »

L'ho testata con invio multiplo(due contatti) funziona sia con i numeri che con i nomi
Allego pure file

Codice: Seleziona tutto

Sub InvioWhatsApp				

doc = ThisComponent
Sh = doc.Sheets(0)


testo = sh.GetCellByPosition(1,1).String
Stringa = "https://web.whatsapp.com/" 
Dim shell As Object 
Set shell = CreateObject("shell.application") 
Set shell2 = CreateObject("WScript.Shell")

shell.Open Stringa 
   Wait 10000' 
   For x = 2 To 3 
       contatti = sh.GetCellByPosition(0, x).String
       shell2.SendKeys("{TAB}{TAB}{TAB}{TAB}", True) 
       Wait 10000' 
       shell2.SendKeys(contatti, True)
       shell2.SendKeys("~", True)		
       wait 10000
       shell2.SendKeys(testo, True)
      
       wait 3000
      
       shell2.SendKeys("~", True)
       shell2.SendKeys("{TAB}", True)    'Posiziona il cursore nel campo cerca per il prossimo contatto, se non si usa l'invio multiplo con il ciclo for può 
                                                        'essere tolto
  next x
End Sub
Naturalmente i tempi possono essere accorciati dipende dalle caratteristiche del proprio pc, il primo wait consiglio di lasciarlo a 10000 per dare tempo al pc di aprire whatsapp e posizionare il cursore sul campo cerca.
Purtroppo non riesco a provarla su WhatsApp pc in quanto la macro mi restituisce errore sul percorso.
Allegati
whatsapp.ods
(13.09 KiB) Scaricato 5 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: SendKeys

Messaggio da patel »

Funziona perfettamente anche con l'applicazione
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] SendKeys

Messaggio da Gaetanopr »

:super: Aggiungerei WhatsApp al titolo, può sempre tornare utile a qualcuno.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
geovign
Messaggi: 195
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da geovign »

Un saluto a tutti.
Scusate se mi accodo ad un problema già risolto, ma vorrei sapere se lo stesso risultato è possibile ottenerlo anche in ambiente GNU/Linux.
Ho provato su LO il codice scritto da @patel e @Gaetanopr ma non funziona.
All'istruzione " Set shell = CreateObject("shell.application") " mi restituisce il seguente errore:
"Errore nel creare l'oggetto. Formato non valido: impossibile caricare il modulo."
Esiste una possibile soluzione?
Saluti
Geo
LibO 6 su LinuxMint 20
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da patel »

-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da Gaetanopr »

Per puro divertimento ho voluto implementare la macro per inviare pure gli allegati, allego file aggiornato dove nella cella C2 basta indicare il nome del file da allegare(che deve trovarsi nella cartella che si apre di default quando si seleziona allega documento), nella macro ho impostato diversi tempi di attesa per visualizzare tutte le operazioni che vengono compiute.
Allegati
whatsapp2.ods
(14.88 KiB) Scaricato 4 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da patel »

Funziona perfettamente, ma non esiste il modo di indicare la cartella? mi si apre Desktop che io non uso mai.
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3065
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da Gaetanopr »

patel ha scritto: mercoledì 30 novembre 2022, 9:49 Funziona perfettamente, ma non esiste il modo di indicare la cartella? mi si apre Desktop che io non uso mai.
Certo, ti basta inserire il nome del file completo di percorso C:\Users\Gaetano\Downloads\doc.pdf
Comunque il percorso rimane in memoria, nel senso che se manualmente indichi il percorso della cartella dei tuoi file successivamente viene usata questa, ma è sempre meglio indicare il percorso completo.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 3868
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] SendKeys-invio messaggi Whatsapp

Messaggio da patel »

Sei riuscito poi ad utilizzare l'applicazione ?
-------------------
Libre Office 7.4 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Rispondi