Antonello.
A meno che il programma PIPPO.EXE non lo preveda espressamente, non è
possibile. Eventuali opzioni da linea di comando devono essere gestite
dal programma e non dal sistema operativo. Puoi provare con uno dei
tanti macro recorder (basta una ricerca su Google).
--
Ciao!
Gerardo Fransecky
Microsoft MVP
http://blogs.dotnethell.it/gerardo
Copiaincolla la parte fra i trattini nel blocco note, salvalo
come "prova.vbs" (tutti i file) e poi eseguilo.
-----------------------------------------------
Dim WSHShell
Dim Ritardo
Ritardo = 1000
ApplicazioneDalanciare = "c:\windows\notepad"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WshShell.run ApplicazioneDalanciare
WScript.Sleep Ritardo
WSHShell.SendKeys "ciao, sono le {f5}{enter}{enter}"
WScript.Sleep Ritardo
WSHShell.SendKeys "ora apriro' il menu' file con la combinazione alt{+}f"
WScript.Sleep Ritardo *2
WSHShell.SendKeys "%f"
WScript.Sleep Ritardo
WSHShell.SendKeys "{esc}{esc}"
WSHShell.SendKeys "{enter}{enter}"
WSHShell.SendKeys "L'ho chiuso con 2 esc"
WScript.Sleep Ritardo
WSHShell.SendKeys "{enter}{enter}"
WSHShell.SendKeys "Fine."
WScript.Quit
-----------------------------------------------
per fare le doppie virgolette si usa il codice chr(34)
Esempio: WSHShell.SendKeys "parola" chr(34) "virgolettata" chr(34)
Altri codici Carattere:
http://msdn2.microsoft.com/it-it/library/system.windows.forms.sendkeys.aspx
Questa e' la versione "zappata" che fa' solo quello che chiedi
(prima mi e' scappato il post e non avevo incluso questa parte :P)
WScript.Sleep 1000
(SERVE per permettere l'apertura del programma, e'
in millisecondi quindi 1000 equivale ad 1 secondo,
ovvio e' che 15000 equivale a 15 secondi.
WshShell.run "c:\windows\notepad"
(e' il nome completo di percorso del file da lanciare)
WSHShell.SendKeys "%f"
(ho dovuto usare l'alt+f xche' nel notepad alt+i
non c'e' e nn mi vengono in mente altri che
possano avere alt+i)
-----------------------------------------------
Dim WSHShell
Dim Ritardo
ApplicazioneDalanciare = "c:\windows\notepad"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WshShell.run "c:\windows\notepad"
WScript.Sleep 1000
WSHShell.SendKeys "%f"
WScript.Quit
-----------------------------------------------
>
> A meno che il programma PIPPO.EXE non lo preveda espressamente, non è
> possibile.
Ciao Gerardo e grazie per la risposta.
Purtroppo il programma in questione non prevede opzioni di quel genere.
> Eventuali opzioni da linea di comando devono essere gestite
> dal programma e non dal sistema operativo.
Ti ringrazio per la spiegazione, non sono un programmatore e tutte queste
cose non le conosco.
> Puoi provare con uno dei
> tanti macro recorder (basta una ricerca su Google).
Grazie per il consiglio e l' informazione, per me è tutta roba nuova.
Ho già scaricato qualche programmino.
>
> --
> Ciao!
> Gerardo Fransecky
> Microsoft MVP
> http://blogs.dotnethell.it/gerardo
Ciao anche a te ed ancora molte grazie!
Antonello
Rispondo qui.
Ciao Franz aRTiglio e infinite grazie per la risposta!
Guarda ti dico la verità, per me quello che hai scritto è arabo, però ho
fatto come hai suggerito ed effettivamente ho ottenuto un eseguibile
perfettamente funzionante, stento a credere ai miei occhi, tra l' altro ho
pure compreso la struttura del listato, si il listato di un programma
scritto col blocco note: grandissimo!!!
Ho dato un' occhiata anche al link che mi hai suggerito ed anche grazie a
quello ora ho le idee più chiare, fermo restando tutti i miei moltissimi
limiti in materia.
Per adesso non mi riesce di fare in modo che la sequenza ALT+I abbia effetto
sul programma PIPPO.EXE perchè quando parte il tuo programma la finestra del
PIPPO.EXE passa in secondo piano in favore del blocco note dove si esegue
appunto il tuo programma.
Farò delle prove e conto di riuscire a centrare il bersaglio, e poi mi sono
venute in mente 1000 cose che potrei fare operando come mi hai suggerito ed
anche solo provare e riprovare è sorprendentemente divertente, non riesco
più a smettere, una sensazione indescrivibile!
Tra l' altro mi è venuta un' idea anche per un vecchio pc msdos per la quale
mi documenterò al più presto.
Che dire, sono veramente senza parole.
Ciao ed ancora infinite e poi ancora più infinite grazie!!!
Antonello
Non è mai troppo tardi per iniziare :-)
Tra l'altro Franz ti ha dato una bella spinta iniziale!
>>>> Buona sera a tutti.
>>>> Ho la necessità di eseguire un programma che però appena avviato
>>>> presenta una finestra con un bottone di start sul quale si può
>>>> agire col mouse o tramite scorciatoia da tastiera con la sequenza
>>>> di tasti ALT+I e sino a che non si fa una delle due cose non va
>>>> avanti, io vorrei invece bypassare questa parte.
>>>
>>> Copiaincolla la parte fra i trattini nel blocco note, salvalo
>>> come "prova.vbs" (tutti i file) e poi eseguilo.
> Per adesso non mi riesce di fare in modo che la sequenza ALT+I abbia
> effetto sul programma PIPPO.EXE perchè quando parte il tuo programma
> la finestra del PIPPO.EXE passa in secondo piano in favore del blocco
> note dove si esegue appunto il tuo programma.
Innanzitutto scusami, ero un po' rincoglionito dal sonno e ho
fatto un minestrone con lo script, per farmi perdonare
ti spiego un po' di basi di visual basic script (vbs)
Se la lettura annoia, fai il copiaincolla di questo:
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WshShell.run "pippo.exe"
WScript.Sleep 1000
WSHShell.SendKeys "%i"
WScript.Quit
NOTA BENE: "pippo.exe" pou' non bastare, se NON esegui lo script
dalla stessa cartella di pippo.exe, devi aggiungere il percorso in
cui risiede pippo.exe : "c:\nome cartella\pippo.exe"
Dunque:
il programmino e' una sequenza VisualBasicScript, cioe' una serie
di comandi "comprensibili" al sistema operativo, ogni parte di esso
ha una sua funzione e la sua sintassi.
I comandi vengono eseguiti in maniera sequenziale, a mo' di lista
della spesa, quindi cio' che e' scritto in alto viene eseguito prima
di cio' che e' scritto in basso:
Apri il cassetto
Prendi la penna
Se invece scrivessimo
Prendi la penna
Apri il cassetto
Otterremmo un errore, o comunque NON otterremmo cio' che desideriamo.
Indi per cui vanno indicate correttamente le istruzioni, dando al
computer il tempo di eseguire ogni istruzione prima di inviare quelle
che dipendono dalla precedente, ad esempio se dicessimo
aprilcassettoprendilapenna
e' possibile che la penna non venga presa poiche' il cassetto si stava
aprendo, quindi non era ancora aperto, indi per cui occorre dare
un'istruzione supplementare che esegua una pausa: esempio:
Apri il cassetto
Attendi 5 secondi
Prendi la penna
Va' tenuto conto che la programmazione e' una cosiddetta
"programmazione ad oggetti", il che significa che ogni cosa DEVE
essere indicata tramite un nome, per alcuni oggetti e' necessario
fornire, al momento della loro definizione anche dei parametri.
(definizione=dare all'oggetto un nome e dirgli come verra' impiegato)
Gli oggetti possono avere piu' metodi (comandi), all'oggetto si da'
il comando separando oggetto e comando con un punto:
oggetto.comando
Quindi per quanto riguarda la tua esigenza, il programma dovrebbe fare:
lancia il programma pippo.exe
attendi 10 secondi
esegui la combinazione di tasti alt+i
Dato che al computer dobbiamo indicare per filo e per segno
ogni minima cosa, dobbiamo spiegargli cosa deve lanciare ed
in quale modo.
WshShell.run "pippo.exe"
( sistema.esegui "pippo.exe )
Oppure
msgbox "ciao"
( mostra il messaggio "ciao" )
Le graffette " delimitano alcune tipologie di parametri, principalmente
i parametri di tipo testo, sia che essi siano lettere o numeri, ma
se indichiamo al programma un'operazione matematica le virgolette
NON vanno usate; altrimenti credera' che vogliamo "incollare" il
testo, esempio:
msgbox 5+4
(mostrera' 9)
se usiamo del testo
msgbox "mangio" + "una" + "mela"
(mostrera' mangiounamela)
msgbox "mangio" + "5" + "4" + "mele"
(mostrera' mangio54mele)
Se invece non mettiamo le virgolette sui numeri otterremo:
msgbox "mangio" + 5 + 4 + "mele"
(mostrera' mangio9mele)
Quindi:
Dim WshShell
(crea l'oggetto WshShell)
Set WshShell = WScript.CreateObject("WScript.Shell")
(la dipendenza di WshShell e' nella classe di
istruzioni "Wscript.shell")
Come ho detto il NOME lo diamo noi, quindi potremmo
tranquillamente scrivere
Dim MIAOMIAO
Set MIAOMIAO = WScript.CreateObject("WScript.Shell")
Ora l'oggetto si chiamera' MIAOMIAO, ovvio che da ora in poi
dovremo dire MIAOMIAO per "usarlo"; ma se invece scrivessimo
Set MIAOMIAO = WScript.CreateObject("BLABLA")
otterremmo un errore, poiche' il sistema non conosce
la classe di istruzioni "BLABLA".
Generalmente maiuscole e minuscole sono la stessa cosa;
quindi MIAOMIAO, miaomiao e MiAomiaO sono IDENTICI.
"WScript" e' un comando che non necessita di essere definito.
Ma torniamo a noi:
lancia il programma pippo.exe
attendi 10 secondi
esegui la combinazione di tasti alt+i
fine
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WshShell.run "pippo.exe"
WScript.Sleep 10000
WSHShell.SendKeys "%i"
WScript.Quit
Oppure:
Crea l'oggetto ComandiDiSistema
Crea l'oggetto ProgrammaDaLanciare
Crea l'oggetto MillisecondiDiAttesa
Crea l'oggetto TastDaInviare
Definisci ComandiDiSistema come oggetto di "wscript.shell"
ProgrammaDaLanciare equivale a "pippo.exe"
MillisecondiDiAttesa equivale a 1000
TastDaInviare equivale a "%i"
Esegui ProgrammaDaLanciare
Attendi per MillisecondiDiAttesa
ComandiDiSistema.InviaTasti "%i"
Esci
Dim ComandiDiSistema
Dim ProgrammaDaLanciare
Dim MillisecondiDiAttesa
Set ComandiDiSistema = WScript.CreateObject("WScript.Shell")
ProgrammaDaLanciare="pippo.exe"
MillisecondiDiAttesa=10000
TastDaInviare="%i"
WshShell.run ProgrammaDaLanciare
WScript.Sleep MillisecondiDiAttesa
WSHShell.SendKeys TastDaInviare
WScript.Quit
Minchia... per fortuna erano un po' di basi. Se era un corso che
spiegavi? :-)
Complimenti
--
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4
>> per farmi perdonare
>> ti spiego un po' di basi di visual basic script (vbs)
>
> Minchia... per fortuna erano un po' di basi. Se era un corso che
> spiegavi? :-)
sai com'e'.... e' difficile addormentarsi stanotte
e ne ho approfittato ^__^
Non male .. ma al'OP IMHO potrebbe solo confondere le idee
sempre IMHO 2 esempi che funzionano senza tanti artifizi
sono la cosa migliore ... a me sinceramente e passata la voglia
di leggere dopo le prime 10 righe
--
Fosco
' esempio pratico per vedere come funziona
set oShell = CreateObject("WScript.Shell")
oShell.run"c:\windows\notepad.exe"
'dovrebbe essere cosi anche su XP altrimenti sostituire con :
'oShell.run"notepad"
While not oShell.AppActivate("Senza nome - Blocco note")
wscript.Sleep 200
Wend
wscript.Sleep 1500 ' per dare tempo a vedere cosa fa'
oShell.SendKeys"%f"
' esempio teorico su pippo.exe
set oShell = CreateObject("WScript.Shell")
oShell.run"c:\FULL PATH/pippo.exe"
While not oShell.AppActivate("CAPTION [1] di pippo.exe")
'[1] caption ottenibile aprendo pippo .exe e poi vedendo
' come appare nel task >> Control+ALT+CANC
wscript.Sleep 200
Wend
oShell.SendKeys"%i"
'Copia incolla su notepad e salva con estensione .vbs
'tutti i file (*.*) poi ci clicchi sopra. (per esempio Test.vbs)
'se ti da' errore disattiva l'antivirus
' il wsh e' limitato per queste cose meglio :
http://www.hiddensoft.com/autoit3/
--
Fosco
> ' il wsh e' limitato per queste cose meglio :
> http://www.hiddensoft.com/autoit3/
DllCall("Shell32.dll", "int", "ShellExecute", "hwnd", 0, "str", 'open',
"str","c:\windows\calc.exe", "str", '', "str", @WorkingDir, "int", 10)
sleep(500)
DllCall("Shell32.dll", "int", "ShellExecute", "hwnd", 0, "str", 'open',
"str","c:\windows\notepad.exe", "str", '', "str", @WorkingDir, "int", 10)
;Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As
Long
$r = DllCall('kernel32','long','GetTickCount')
;MsgBox(4096,'Time','Windows started ' & $r[0] & ' ms ago.')
;Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String,
;ByVal lpWindowName As String) As Long
Sleep(500)
$hwnd =
DllCall("user32.dll","long","FindWindow","str","Notepad","str","Senza
nome - Blocco note")
$hwndCalc =
DllCall("user32.dll","long","FindWindow","str","SciCalc","str","Calcolatrice")
;MsgBox(262144, "",@error )
MsgBox(262144, "","Notepad hwnd " & $hwnd[0])
MsgBox(262144, "", "Calc hwnd "&$hwndCalc[0])
;Declare Function ShowWindow Lib "user32" Alias "ShowWindow"
;(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
;Global Const $SW_SHOWNORMAL = 5
;$call =DllCall ( "user32.dll", "long", "ShowWindow " , "hwnd",
$hwndCalc[0] , "long", 5 )
;MsgBox(262144, "",@error )
;MsgBox(262144, "",$call )
;;;;;;;$hwnd = WinGetHandle("Senza nome - Blocco note")
;;;;;;;$hwndCalc = WinGetHandle("Calcolatrice")
; Declare Function SetForegroundWindow Lib "user32" Alias
;"SetForegroundWindow" (ByVal hwnd As Long) As Long
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",$hwnd[0])
; MsgBox(262144, "", "Error " &@error )
; MsgBox(262144, "",$goal)
sleep(3000)
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",
$hwndCalc[0])
;MsgBox(262144, "", "Error " &@error )
; MsgBox(262144, "",$goal)
#cs
Dynamically calls a function in a DLL.
DllCall ( "dll", "return type", "function" [, "type1", param1 [, "type
n", param n]] )
originale apiguide
Declare Function FlashWindow Lib "user32" Alias "FlashWindow"
(ByVal hwnd As Long, ByVal bInvert As Long) As Long
#ce
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",
$hwndCalc[0])
sleep(2000)
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",$hwnd[0])
;;;;;;;While 1 buono anche questo
For $i = 1 to 20
$f = DllCall("user32","int","FlashWindow","hwnd",$hwnd[0],"int",1)
sleep(100)
;msgbox(0, "", $f)
Next
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",
$hwndCalc[0])
sleep(2000)
For $i = 1 to 20
$f = DllCall("user32","int","FlashWindow","hwnd",$hwndCalc[0],"int",1)
sleep(100)
Next
; $hwnd3 = DLLCall("user32.dll","int","FindWindowEx","int",$hwnd2[0]
,"str","","hwnd","Edit")
$hwnd3 = DLLCall("user32.dll","long","FindWindowEx","hwnd",$hwnd[0]
,"int","0","int","","int","")
MsgBox(262144, ""," Notepad's Edit hwnd " & $hwnd3[0])
;MsgBox(262144, "", $hwnd3[1])
;$dec = StringRight ($hwnd3[1],"8" )
;$dec2 = Dec($dec)
;msgbox(0, "","Notepad's Edit hwnd "& $dec2)
;;;;;;wend
#cs
originale api guide
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long,
ByVal lpString As String, ByVal cch As Long) As Long
#ce
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",$hwnd[0])
sleep(100)
$result = DllCall("user32.dll", "int", "GetWindowText", "hwnd",
$hwnd[0], "str", "", "int", 32768)
msgbox(0, "", $result[0]) ; number of chars returned
msgbox(0, "", $result[2]) ; Text returned in param 2
;Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow"
() As Long
;$resultx = DllCall("user32.dll","long", "GetDesktopWindow","int",0)
$resultx = DllCall("user32.dll","long", "GetDesktopWindow")
;msgbox(0, "",@error)
MsgBox(262144, "","Desktop hwnd "& $resultx[0] )
#cs
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal
hWnd1 As Long, ByVal
hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
#ce
; $hwnd3 = DLLCall("user32.dll","int","FindWindowEx","int",$hwnd2[0]
,"str","","hwnd","Edit")
$hwnd3 = DLLCall("user32.dll","long","FindWindowEx","hwnd",$hwnd[0]
,"str","Edit","str","")
MsgBox(262144, "", @error )
MsgBox(262144, "", $hwnd3)
MsgBox(262144, "", $hwnd3[0])
MsgBox(262144, "", $hwnd3[1])
$dec = StringRight ($hwnd3[1],"8" )
;msgbox(0, "", $dec)
$dec2 = Dec($dec)
msgbox(0, "",$dec2)
#cs
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal
hwnd As Long,
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
PostMessage WinWnd, WM_CLOSE, 0&, 0&
#ce
;Global Const WM_CLOSE = 1
$close = DllCall("user32.dll", "int", "PostMesage", "hwnd", $hwnd[0],
"int", 3 ,"int",0,"int",0)
MsgBox(262144, "", @error)
MsgBox(262144, "", $close)
gBox(262144, "", $close[0])
#cs
ap'guide
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize"
(ByVal hFile As Long, lpFileSizeHigh As Long) As Long
#ce
#cs
OLD
DllCall("Shell32.dll", "int", "ShellExecute", "hwnd", 0, "str", 'open',
"str","c:\windows\calc.exe", "str", '', "str", @WorkingDir, "int", 10)
sleep(500)
DllCall("Shell32.dll", "int", "ShellExecute", "hwnd", 0, "str", 'open',
"str","c:\windows\notepad.exe", "str", '', "str", @WorkingDir, "int", 10)
;Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As
Long
$r = DllCall('kernel32','long','GetTickCount')
;MsgBox(4096,'Time','Windows started ' & $r[0] & ' ms ago.')
;Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String,
;ByVal lpWindowName As String) As Long
Sleep(500)
$hwnd =
DllCall("user32.dll","long","FindWindow","str","Notepad","str","Senza
nome - Blocco note")
$hwndCalc =
DllCall("user32.dll","long","FindWindow","str","SciCalc","str","Calcolatrice")
;MsgBox(262144, "",@error )
MsgBox(262144, "", $hwnd[0])
MsgBox(262144, "", $hwndCalc[0])
;Declare Function ShowWindow Lib "user32" Alias "ShowWindow"
;(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
;Global Const $SW_SHOWNORMAL = 5
;$call =DllCall ( "user32.dll", "long", "ShowWindow " , "hwnd",
$hwndCalc[0] , "long", 5 )
;MsgBox(262144, "",@error )
;MsgBox(262144, "",$call )
;;;;;;;$hwnd = WinGetHandle("Senza nome - Blocco note")
;;;;;;;$hwndCalc = WinGetHandle("Calcolatrice")
; Declare Function SetForegroundWindow Lib "user32" Alias
;"SetForegroundWindow" (ByVal hwnd As Long) As Long
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",$hwnd[0])
MsgBox(262144, "", "Error " &@error )
MsgBox(262144, "",$goal)
sleep(3000)
$goal = DLLCall("user32.dll","long","SetForegroundWindow","hwnd",
$hwndCalc[0])
MsgBox(262144, "", "Error " &@error )
MsgBox(262144, "",$goal)
Dynamically calls a function in a DLL.
DllCall ( "dll", "return type", "function" [, "type1", param1 [, "type
n", param n]] )
originale apiguide
Declare Function FlashWindow Lib "user32" Alias "FlashWindow"
(ByVal hwnd As Long, ByVal bInvert As Long) As Long
;;;;;;;While 1 buono anche questo
For $i = 1 to 30
$f = DllCall("user32","int","FlashWindow","hwnd",$hwnd,"int",1)
sleep(100)
;msgbox(0, "", $f)
Next
;;;;;;wend
originale api guide
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long,
ByVal lpString As String, ByVal cch As Long) As Long
$result = DllCall("user32.dll", "int", "GetWindowText", "hwnd", $hwnd,
"str", "", "int", 32768)
msgbox(0, "", $result[0]) ; number of chars returned
msgbox(0, "", $result[2]) ; Text returned in param 2
;Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow"
() As Long
;$resultx = DllCall("user32.dll","long", "GetDesktopWindow","int",0)
$resultx = DllCall("user32.dll","long", "GetDesktopWindow")
;msgbox(0, "",@error)
MsgBox(262144, "", $resultx[0] )
apoguide
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize"
(ByVal hFile As Long, lpFileSizeHigh As Long) As Long
dim $lpFileSizeHigh
$lpFileName = FileOpen ( "C:\WINDOWS\TEMP\Tttt.zip", 0)
;$result = DllCall("kernel32.dll", "long", "GetFileSize", "hFile", $ii,
"lpFileSizeHigh", 0)
;$result = DllCall("kernel32.dll", "long", "GetFileSize", "hwnd",
$ii,"int","")
$result = DLLCall("Kernel32.dll","int","GetFileSize","str",$lpFileName )
msgbox(262144, "",@error)
msgbox(262144, "", $result)
msgbox(262144, "", $result[0])
msgbox(262144, "", $result[1])
msgbox(262144, "", $result[2])
$lpFileName = FileClose ( "C:\WINDOWS\TEMP\Nuovo AU3.au3")
#ce
--
Fosco
> Innanzitutto scusami,
Sono io che mi devo scusare con te e con tutti perchè ho scritto un'
inesattezza e provvedo a correggerla: non è vero che il programma che mi hai
passato manda in secondo piano il PIPPO.EXE e quindi non raggiunge il
bersaglio, sono io che sono tonto e sebbene tutto fosse spiegato in maniera
semplice nei minimi particolari (a prova di idiota, mi si passi il termine),
ho sbagliato e non ho cambiato il percorso al file.
Quindi la realtà è che il tuo programma funziona al 1000x1000 ed al primo
colpo se non si è tonti come il sottoscritto.
Chiedo ancora scusa per l' errore e ringrazio di nuovo per l' aiuto.
> ero un po' rincoglionito dal sonno
Acc....
Io si che ero sveglio quando ho trascritto il tuo programma ed ho lasciato
il percorso per l' applicazione del blocco note come da esempio....
Pensa se fosse stata notte tarda.....
> e ho
> fatto un minestrone con lo script,
Se era un minestrone era proprio prelibato!
Complimenti allo Chief!
> per farmi perdonare
Sono io che non so come farmi perdonare per le mie inesattezze ed il tempo
che ti rubo!
> ti spiego un po' di basi di visual basic script (vbs)
Bene, GRAZIE!
> Se la lettura annoia, fai il copiaincolla di questo:
Chiedo perdono per aver troncato la parte più interessante, praticamente un
vademecum vero e proprio.
Ho gia' provveduto a stampare il messaggio per poterlo avere a portata di
mano perchè credo che lo userò piuttosto spesso.
Devo essere sincero, io faccio il giardiniere e non è che abbia poi tutta
questa gran cultura, soprattutto informaticamente parlando (da giovane ho
avuto un vic20), però anche se in tempi biblici riesco a comprendere le tue
spiegazioni e i tuoi listati commentati: o sto diventando un genio io (cosa
molto improbabile) o sei un ottimo insegnante tu (cosa "molto" certa).
Ancora un mare di grazie!
Antonello
Rispondo qui.
Grazie anche a te Fosco per i suggerimenti e i programmi, vedrò di studiarci
su un pò: fortunatamente alle medie ho fatto inglese e qualche cosa ricordo,
per tutto il resto c'è San Google.
Provo subito i tuoi listati, per il resto mi ci vorrà qualche tempo per
"digerirlo" a dovere, anche perchè in questo momento sono più fuso del
solito e non riuscivo nemmeno a risponderti: cercavo di scrivere sul tuo
testo senza aver prima premuto il bottone rispondi al newsgroup, ho provato
una trentina di volte ed ho pure chiuso e riaperto outlook per un paio di
volte......
Mi stavo innervosendo e ho pensato pure di riavviare il computer, fortuna
che mi son come svegliato e ho ripreso in mano la situazione.
>
>
> --
> Fosco
Ancora tantissime grazie per il tempo e la pazienza dedicatemi.
Antonello
> Ancora un mare di grazie!
Beh, che dire.. raramente quoto i complimenti rivoltimi ^__^
Ciao.
> Antonello wrote:
> > Buona sera a tutti.
> > Ho la necessità di eseguire un programma che però appena avviato
> > presenta una finestra con un bottone di start sul quale si può agire
> > col mouse o tramite scorciatoia da tastiera con la sequenza di tasti
> > ALT+I e sino a che non si fa una delle due cose non va avanti, io
> > vorrei invece bypassare questa parte.
> Copiaincolla la parte fra i trattini nel blocco note, salvalo
> come "prova.vbs" (tutti i file) e poi eseguilo.
> -----------------------------------------------
> Dim WSHShell
> Dim Ritardo
> Ritardo = 1000
> ApplicazioneDalanciare = "c:windowsnotepad"
> Set WSHShell = WScript.CreateObject("WScript.Shell")
> WshShell.run ApplicazioneDalanciare
> WScript.Sleep Ritardo
> WSHShell.SendKeys "ciao, sono le {f5}{enter}{enter}"
> WScript.Sleep Ritardo
> WSHShell.SendKeys "ora apriro' il menu' file con la combinazione alt{+}f"
> WScript.Sleep Ritardo *2
> WSHShell.SendKeys "%f"
> WScript.Sleep Ritardo
> WSHShell.SendKeys "{esc}{esc}"
> WSHShell.SendKeys "{enter}{enter}"
> WSHShell.SendKeys "L'ho chiuso con 2 esc"
> WScript.Sleep Ritardo
> WSHShell.SendKeys "{enter}{enter}"
> WSHShell.SendKeys "Fine."
> WScript.Quit
> -----------------------------------------------
> per fare le doppie virgolette si usa il codice chr(34)
> Esempio: WSHShell.SendKeys "parola" chr(34) "virgolettata" chr(34)
ciao, perchè il vbs funziona e se invece lo converto in exe (exescript
2.1.1 o ns basic/desktop 2.5)non funziona più?
qualcuno può suggerirmi un software freeware per la conversione vbs in exe?
grazie
roccIo
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it
> ciao, perchč il vbs funziona e se invece lo converto in exe (exescript
> 2.1.1 o ns basic/desktop 2.5)non funziona piů?
Non ne ho la piu' Pallida IdeaŽ
Anche perche' non cononsco i SW in oggetto e mi sfugge lo scopo
di convertire un VBS in EXE.
Andando a naso, direi che i SW che usi nn gesticono correttamente
le chiamate alle API.
> roccIo wrote:
> > ciao, perchè il vbs funziona e se invece lo converto in exe (exescript
> > 2.1.1 o ns basic/desktop 2.5)non funziona più?
> Non ne ho la piu' Pallida Idea®
peccato!:-(
> mi sfugge lo scopo
> di convertire un VBS in EXE.
esecuzione remota con sw che non gestiscono .vbs e creazione di files con
iexpress
> Andando a naso, direi che i SW che usi nn gesticono correttamente
> le chiamate alle API.
possibile
forse però è perchè i due sw sono delle demo, per questo cercavo altro
grazie, ciao
>> mi sfugge lo scopo
>> di convertire un VBS in EXE.
> esecuzione remota con sw che non gestiscono .vbs e creazione di files
> con iexpress
cscript.exe nomedelfile.vbs e passano tutte le paure ;)
> roccIo wrote:
sei troppo un mito, ne sai una più del diavolo
va che è un razzo