Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-06-2006, 02:55   #1
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
[VB] Apertura TXT esterno + Comandi DOS

Salve sono nuovo del forum, volevo domandarvi, premettendo che non uso visual basic da molti anni, e che quando l'usavo ero poco piu di un bambino, come creare un programma simile a come vi illustrerò in seguito.
Praticamente, mi servirebbe un mini programmino che ricavi informazioni da un TXT, informazioni che nel mio caso sono IP. Una volta caricate tutte le info del txt, tramite un semplic click su un pulsante mi esegue un comando DOS simile:

"C:\nomeprogramma.exe IPcontenutonelTXT root"

In questa lista di ip che si trova in questo TXT, ogni IP si trova su una riga, gli IP ne sono due in questa lista, mio e del mio compagno, ma mi sarebbe più utile che questo comando lo esegue per qualsiasi Ip che trova nel TXT, anche diciamo che gli IP sono di un numero esagerato..

Non sò se mi sono spiegato..Vi prego aiutatemi..
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 09:34   #2
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Non so se ho capito bene ... ma puoi fare così:

Quote:
Private Sub Command1_Click()
For i = 0 To List1.ListCount - 1
retval = Shell("c:\nomeprogramma.exe " & List1.List(i) & " root")
Next i
End Sub

Private Sub Form_Load()
Dim indirizzoIP As String

Open "c:\listaIP.txt" For Input As #1
Do While Not EOF(1)
Input #1, indirizzoIP
List1.AddItem (indirizzoIP)
Loop
Close #1
End Sub
crei nel form una listbox di nome List1 ed un commandbutton di nome Command1 ...
In grassetto ci sono le stringhe da modificare con il nome (e struttura) del comando da lanciare ed il percorso del file ...

Il file contenente gli ip sarà così:
Codice:
123.234.345.456
345.456.567.678
Spero di aver "imbroccato" la tua domanda ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 11:52   #3
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Hai afferrato proprio il concetto, l'ho provato pure il programma e funziona una meraviglia! Grazie Mille!

Un unica cosa se voglio fare che il file TXT me lo vado a caricare tramite un pulsante "Sfoglia" nel programma?
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 12:06   #4
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Per avere il pulsante "sfoglia" (o apri) devi inserire il componente aggiuntivo "Microsoft Common Dialog Control" facendo tasto destro sulla barra degli strumenti (a sinistra), scegliendo "componenti" dalla bandierina che esce e cercando nella lista.

Una volta disegnato nel form il controllo "Microsoft Common Dialog Control", basta inserire nel pulsante che aprirà la finestra di dialogo il seguente codice:
Codice:
CommonDialog1.ShowOpen
e per richiamare il percorso del file selezionato:
Codice:
CommonDialog1.FileName
Per esempio il programmino di prima, puoi rifarlo così:
Codice:
Dim indirizzoIP As String

Private Sub Command2_Click()
    CommonDialog1.ShowOpen
    
    Open CommonDialog1.FileName For Input As #1
        Do While Not EOF(1)
            Input #1, indirizzoIP
            List1.AddItem (indirizzoIP)
        Loop
    Close #1
End Sub

Private Sub Command1_Click()
    For i = 0 To List1.ListCount - 1
        retval = Shell("c:\nomeprogramma.exe " & List1.List(i) & " root")
    Next i
End Sub
dove ci sono 2 commandbutton, 1 listbox e 1 commondialog ... il command2 apre la finestra "apri", il command1 esegue il programma per tutti gli ip presenti in lista.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 12:28   #5
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Benissimo! Ti chiedo delle ultime cose, giusto per rifinire il programma.

1. Come posso fare che al caricamento del file txt, mi visualizza il command1, quindi solo dopo aver caricato il file, mi visualizza il pulsante che esegui il comando in DOS?

2. Ce un modo per far eseguire il comando per ogni IP un dopo l'altro? nella stessa finiestra del propt del DOS? Quindi non tutti insieme ma uno dopo l'altro?


Scusami per la mia pignolagine

Ultima modifica di weiddolo : 20-06-2006 alle 12:31.
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 12:42   #6
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
1)
Poni la proprietà enabled del command1 a false in fase di progettazione (dalla finestra delle proprietà).
Nel codice del command2, come ultima istruzione, metti questo codice:
command1.enabled = true

ES:

Dim indirizzoIP As String

Private Sub Command2_Click()
CommonDialog1.ShowOpen

Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Input #1, indirizzoIP
List1.AddItem (indirizzoIP)
Loop
Close #1

Command1.Enabled = True
End Sub

Private Sub Command1_Click()
For i = 0 To List1.ListCount - 1
retval = Shell("c:\nomeprogramma.exe " & List1.List(i) & " root")
Next i
End Sub


2)
Si c'è la possibilità, ma non ricordo più bene come ... bisogna usare dei parametri dentro il comando shell usato per lanciare l' applicazione esterna.
Ora non ho il VB sotto mano e non so dirti quali parametri richieda per tenere apera la console senza che si chiuda ...
Stasera so dirti meglio, quando torno a casa (ora sono all' università).
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 13:08   #7
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Ok grazie ancora..

Ah scusami un'altra cosa.. Se voglio che il programma sta nella directory di dove sta il prg fatto in vb, come posso fare? Cioe non voglio che si deve andar a leggere il prg in dos con una patch esterna, cioe il programma per eseguirlo deve stare per forza in C:\ perche cosi è stato scritto nel codice, ma se voglio che se lo va a leggere direttamente nella stessa cartella di dove sta il prg in vb?

un'altro accorgimento che ho notato, le finestre che si aprono del dos dovrebbero rimanere aperte, ma si chiudono, questo perche win le chiude in automatico, bosognerebbe prima aprire il propt del dos e poi eseguire quei comandi...si puo fare o è complicato? Al max quello che esce nei vari propt si va a registrare in un TXT.. Come si puo fare?

Ultima modifica di weiddolo : 20-06-2006 alle 14:40.
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 19:17   #8
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Per il far restare aperta la console e per registrare sul file di log sostituisci la riga:
retval = Shell( ....... )

con:

Quote:
retval = Shell("cmd /K " & App.Path & "\nomeprogramma.exe " & List1.List(i) & " root >" & App.Path & "log" & i & ".txt", vbNormalFocus)
dove nomeprogramma.exe è il tuo programma ...
Il parametro vbNormalFocus indica che la finestra resterà aperta col focus.
Il problema è che ad ogni comando si apre una nuova console, quindi per non sovrascrivere il file di log.txt, faccio incrementare il file:
log1.txt
log2.txt
logi.txt

Purtroppo non ricordo come si faccia a passare un comando alla console e ora non ho nemmeno tanto tempo per spulciare tra i vari sorgenti che ho sparsi in hd; so che si può e l' avevo anche fatto ... mi sembrava col SendMessage, ma proprio ho un buco in memoria.

Se invece non vuoi che restino le concole, o togli il parametro vbNormalFocus, oppure togli sia il parametro vbNormalFocus che anche il "cmd /K " comprese virgolette.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 21:07   #9
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Grazie! Ho provato ad aggiungere la stringa che mi hai scritto, il prompt rimane aperto, ma si apre con schermata completamente nera senza nessuna voce, solo dopo un paio di secondi appare la scritta C:\ terminandosi cosi, come se il comando non l'abbia eseguito.

Ho provato a togliere la stringa:
>" & App.Path & "log" & i & ".txt"

E tutto funziona alla perfezione, con le finestre del prompt che rimangono aperte
Però per completare il programma e farlo uscire diciamo un prg DOC, mi piacerebbe che i comandi li eseguisse uno dopo la fine dell'altro, nello stesso prompt, registrandomi tutto in un TXT o in distinti TXT.
E se è possibile un pulsante "CLEAR" che mi svuota i dati caricati nella list Box?

Ah mi sono accorto di un'altro "BUG", se metto la cartella del programma sul desktop, nel momento dell'esecusione del comando da dos mi da questo errore:

"C:\Documents" non è riconosciuto come comando interno o esterno,
un programma eseguibile o un file batch.


Questo penso che esca perche in DOS non sono riconosciuti gli spazi, adesso non so, ce un modo per risolvere? Senza dover mettere il programma per forza in C:\?

Lo so molto bene che sto pretendendo troppo, ma per favore dopo risolte queste mie "pignolagini" il lavoro sarà finito

Ultima modifica di weiddolo : 20-06-2006 alle 21:29.
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 22:09   #10
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Per il problema degli spazi, basta che racchiudi app.path con le virgolette: chr(34)

retval = Shell("cmd /K " & chr(34) & App.Path & "\nomeprogramma.exe" & chr(34) & " " & List1.List(i) & " root >" & chr(34) & App.Path & "log" & i & ".txt" & chr(34), vbNormalFocus)

Prova così ... non ho modo di provare ora, al massimo sposta le virgolette ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 22:16   #11
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Ok adesso provo..

Cmq adesso che ci ripendo il log in txt non è necessario..

Cmq ricapitolando rimane da fare:

1. Il comando l'esegue uno dopo l'altro nella stessa finestra di prompt
2. Il pulsante CLEAR
weiddolo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 22:34   #12
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ehmmmm
Ma mi hai preso per un operaio? pensavo di darti una traccia ... non di farti il progettino intero

Cmq il pulsante clear ha solamente questo comando:

List1.Clear

Al massimo gli aggiungi la riga per disabilitare il pulsante con Command1.Enabled = False
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 22:50   #13
weiddolo
Member
 
Iscritto dal: Jun 2006
Città: Molto Lontano
Messaggi: 71
Ok grazie mille di tutto
weiddolo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
La capsula SpaceX Dragon CRS-33 ha acces...
La NASA è sempre più vicin...
Crisi delle memorie: ASUS torna al passa...
Le console next-generation potrebbero es...
Gemini cresce ancora: la quota di mercat...
Samsung sfida TSMC: la capacità produtti...
Iliad alza il prezzo della fibra ottica ...
Il prossimo low cost di POCO sarà il più...
The Elder Scrolls VI: ecco le ultime sul...
Ecco i saldi di fine anno Amazon, 34 off...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
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: 21:19.


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