View Full Version : Dannata shell-Windows7 l'anti shell
mauimaui4
07-02-2011, 15:16
Maledizione ho installato quella specie di frociata di window7 pieno di stupidate, tranne quello che seve, strumenti nascosti, finestrine qui e la, ti avverte qui, di dice di la, ma sei davvero sicuro??? ci vogliono i diritti di amministratore, il sito che visiti ha dei rischi, ettcccc.
Ho scritto dei programmi in vba che ora non girano,
in particolare ho la seguente sintassi che va bene su xp e win 2000 ma su win7 non ne vuole sapere:
Cleaver_Plugin_Command = "clever load "
Total_Command = (Cleaver_Plugin_Command) & apice & (File_To_Play) & apice
Shell (Total_Command)
1)
vorrei eseguire in shell il comando che ho precedentemente costruito e inserito in variabile.
Quello che dovrebbe eseguire e' via shell:
clever.exe load "F:\music\queen\track-01.wav)
Come diavolo faccio a fargli eseguire sta cosa elementare?
Se le cose elemetari non funzionano, allora le cose difficili come si fanno?????
2) esiste una funzione tale che creo un pulsante su una form che cliccandolo mi copia il contenuto testuale di una textbox all'interno di una form, nella clipboard ? in modo poi da farci incolla su altre applicazioni??? si puo' spiegare in breve come farlo??
Grazie
Innanzitutto, essendo su un forum di un certo livello tecnico, sei pregato di esprimerti in maniera consona, dato che non siamo più all'asilo.
Seconda cosa, se non sai usare Windows 7 perché l'hai appena installato, allora impara a farlo prima di trarre giudizi basati sul nulla.
Windows 7 non è come i Windows precedenti, e questo l'hai capito.
L'autorizzazione ti viene chiesta perché evidentemente fai operazioni di tipo amministrativo, ed è giusto che sia così, come accade in altri sistemi come GNU/Linux e MacOS.
Questo significa che eseguibili potenzialmente dannosi che cercano di installare drivers oppure modificare file di sistema non potranno farlo senza il consenso dell'utente e questo perché tali operazioni non rappresentano "la norma", ma "l'eccezione".
Detto ciò se vuoi una mano posta il codice VBS per intero e qualcuno che saprà aiutarti lo troverai di sicuro.
mauimaui4
07-02-2011, 17:07
Non so se tu sia o meno programmatore, a me serve di eseguire su una shell un output variabilizzato, nulla di piu' postare il codice mi sembra del tutto suoperfluo se scrivo A="ls -l"; b="/usr/bin/bash";$a $b devo poter eseguire il comando $a $b
Cioe'
ls -l /usr/bin/bash
nulla di piu'
devo solo sapere perche' shell davanti non funziona e cosa devo scrivere al posto di shell visto che con il comando shell via xp e w2k funziona.
Detto cio' piu' namo avanti qui e piu' facciamo interfacce da copertina e mandiamo a farsi friggere le funzionalita'.
Se prendo un file da una chiavetta e voglio sovrascriverlo non mi devono servire i permessi di amministratore mi deve solo servire che lo faccia senza tante esitazioni altre domande e fronzoli con corbellerie varie.
Grazie a chi mi aiutera'.
Piuttosto che usare VBScript, dovresti provare ad usare Powershell, già integrata in Windows 7.
Puoi assegnare le variabili ed usarle come meglio credi, ad esempio:
PS C:\Users\Giulio> $a = "hello "
PS C:\Users\Giulio> $b = "world"
PS C:\Users\Giulio> echo $a$b
hello world
Ti avverto però che è PowerShell è molto particolare, dato che è una shell ad oggetti e i comandi non sono propriamente quelli standard del DOS.
Inoltre definisce molti alias per comandi unix in modo tale da rendere il passaggio meno traumatico (ad esempio sono disponibili comandi come cat e ls...).
I parametri dei comandi tuttavia non sono quelli classici, perché cercano di essere più comprensibili, ad esempio:
PS C:\Users\Giulio> ls -Filter "d*"
Directory: C:\Users\Giulio
Mode LastWriteTime Length Name
---- ------------- ------ ----
d-r-- 03/02/2011 21.55 Desktop
d-r-- 01/02/2011 21.19 Documents
PS C:\Users\Giulio>
Con Get-Alias ottieni tutta la lista degli alias, con Get-Help <comando> ottieni l'help specifico per un dato comando, inoltre con Get-Help <comando> -example ti mostra degli esempi di utilizzo del comando ;).
In giro comunque si dovrebbero trovare dei tutorial.
Comunque tanto per la cronaca non è normale che Windows 7 ti chieda i permessi per un file su una periferica rimovibile, evidentemente i permessi su quella pennetta sono stati settati in malo modo dalle precedenti versioni di Windows.
mauimaui4
08-02-2011, 10:55
Grazie per la risposta.
Tutta la faccenda qui viene da una form excel che identifica e raccoglie certi valori in delle "text box" dai valori presenti al momento nella text box devo poter richiamare la shell che mi esegue il comando finale,
(simile a ls -l /export/home/dev1/)
dove
/export/home/dev1/
rappresenta uno dei valori variabili di volta in volta presenti nelle varie celle excel)
Private Sub CommandButton_Play_Single_Song_Click()
'please put clever winamp plugin in registered path windows. ex. /windows/
Dim Cleaver_Plugin_Command As String
Dim File_To_Play As String
Dim Total_Command As String
Dim apice As String
Dim Run_Winamp As String
Run_Winamp = Environ("ProgramFiles") & "\Winamp\winamp.exe" 'path_of_winamp.exe
'Si mette nella variabile File_To_Play il valore visualizzato e presente nella Text_box
File_To_Play = Show_Current_Path_And_Filename.Text
If File_To_Play = "" Then
MsgBox " Please Insert Link Of Single Audio File, In Sideways Text Box "
Exit Sub
End If
ActiveCell.Offset(1, 0).Select
Cleaver_Plugin_Command = "clever load "
'gli apici servono per proteggere path e nomifiles, in caso di nomifile contenenti spazi.
apice = """"
Total_Command = (Cleaver_Plugin_Command) & apice & (File_To_Play) & apice
Shell (Run_Winamp)
'Shell ("""%programfiles%\Winamp\winamp.exe""")
Shell (Total_Command)
End Sub
:muro: :muro: :muro:
Come richiamo l'equivalente di shell che funziona su win xp ma non su Win7 ???? Many thankkkksss
La shell va creata a quanto pare:
http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx
Esempio:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad " & WScript.ScriptFullName
mauimaui4
11-02-2011, 11:07
Con quelle informazioni anche leggendo l'articolo su microMegazzozz non si riesce a far nulla.
Al massimo riesco a lanciare una applicazione "C:\Program Files\winamp\winamp.exe"
Infatti a differenza di xp bisogna lanciare la stringa con apici
--estratto script
Run_Winamp = """C:\Program Files\Winamp\winamp.exe"""
Set wshshell = CreateObject("Wscript.Shell")
wshshell.Run Run_Winamp
EOF
Chiaramente la lunga,tediosa porcata se funziona su win7 non va su xp perche' xp non accetta questi argomenti-comandi.
quindi:
>> shell script (due semplici comandi per lanciare una applicazione-Capirai che script....)???
--si !!!
>>Su 2 sistemi operativi diversi win7 e Xp???
--Si !!!
>>Allora 2 shell script !!!!!
Evviva
2) non riesco ancora a lanciare nulla con argomenti il cui argomento e' rappresentato da una variabile. Molti utenti ho letto in giro sono alle prese con questi problemi ho provato a passarlo con con
"clever load" W:\pink floyd - Echoes
oppure con
"""clever load W:\pink floyd - Echoes"""
"""clever load""" """W:\pink floyd - Echoes""""
Il comando corretto su cmd e'
clever load "W:\pink floyd - Echoes"
che poi sarebbe uguale a fare:
cd "C:\Maui"
Non so che inventarmi
Ma che bellezza e pensare che su unix bastava fare $a $b
Bello.... pare davvero di stare alle elemetari, ricominciamo da zero spaccato
:mc: :muro: :mc:
Considerato che non conosco VBScript e che quindi ho dovuto imparare i comandi:
Set Shell = WScript.CreateObject("Wscript.Shell")
command = """C:\Program Files (x86)\Mozilla Firefox\firefox.exe"" "
argument = "http://www.hwupgrade.it"
toRun = command & argument
'WScript.Echo toRun
Shell.Run(toRun)
Funziona senza problemi, sia su 7 che su XP. :rolleyes:
L'accortezza che devi avere è semplicemente quella che quando ci sono argomenti o comandi che contengono degli spazi, devi virgolettarli con i tripli apici.
mauimaui4
11-02-2011, 13:33
Ti ringrazio per l'interesse dimostrato e la dedizione.
Ho provato a modificare la mia routine secondo il tuo schema e non ci sono riuscito, mi da errore in riga >>> Shell.Run(toRun)
allora ho creato una macro nuova di sana pianta con il tuo codice in ctrl+c ctrl+v correggendo l'apice ....firefox.exe"" "...togliendo lo spazio... e mi da errore evidenziando:
Set Shell =
ponendomi: (argomento non facoltativo)
ho provato anche a cambiare set shell con set ascella e poi richiamando ascella.run
stesso problema.
Ho office 2003
Comunque guarda..... io ti ringrazio !!!
Ma IO non ho parole...........
Per lanciare 2 comandi in CROCE ma ti rendi conto??
Te stesso hai scritto 5 righe, quando ragionevolmente si poteva fare con 3
a= (Variabile1)
b= (variabile2)
run (a) & (b)
Tutto cio' e' annichilente, non e' ne normale ne logico cio ho perso 3 ore + il forum senza concludere un non nulla.
ora vedro che si puo' fare, altrimenti che ti devo dire .... si comincera' a sputtanare windows_7 mi sembra inevitabile.... per il sistema che e', ma non fa.... sembra un virus.........
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.