|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
[C++] Aprire una dir...
Ciao a tutti,
Mi scuso innanzitutto per la mia sconfinata ignoranza e per la mia sanguisugolenta attitudine a farmi risolvere i problemi da questo forum (e da ilsensine in particolare ![]() Che comando devo dare in C++ per aprire una finestra contenente i file di una directory? Cioè, in pratica, volgio il comando che mi realizza l'equivalente del doppio click su una data cartella. Con relativa apertura della cartella in formato finestra. Grazie. ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
ti pare facile ti pare...
se poi non dici neanche che librerie grafiche usi (MFC ad esempio) e come è strutturato il programma diventa impossibile risponderti |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Forse un banalissimo system("explorer.exe <cartella>") ti è sufficiente?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Sorry...
![]() Allora: lavoro su Borland C++ Builder 4. Vorrei un comando che se lanciato apra una finestra che mostri il contenuto di una data cartella (fissa). In tutto e per tutto questa linea di comando deve fasr accadere quello che accade quando faccio il doppio click su una cartella di win, cioè aprirsi un altra finestra che mostra tutte le cartelle e i file che contiene. E' possibile? ![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Quote:
Come dici tu funziona!! Unica pecca è che per un mezzo secondo si vede il megafinestrone nero del DOS... ma funziona. C'è mica un metodo più pulito?? O un modo per rendere "nascosta" la finestra DOS?? ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
mmm...
Prova system("start explorer.exe <cartella>")
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
No... per poco ma si vede...
Forse dicendo mezzo secondo ho esagerato... però per qualche decimo si vede. Ed essendo un bel rettangolone nero si nota parecchio. Diciamo che si capisce che avviene qualcosa che non và... |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Allora devi usare la API CreateProcess. E' documentata in win32.hlp, se non ricordo male.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jan 2000
Messaggi: 551
|
Queste cose in genere si fanno con le shell Api:
#include <shellapi.h> na cosa +o- così: ShellExecute(Application->Handle, "explore", path_to_folder, NULL, NULL, SW_SHOWNORMAL); "explore" è il comando di shell al posto di path_to_folder metti la stringa-percorso della cartella. Sinceramente non mi ricordo se lo devi accoppiare alla CreateProcess.Forse no se non devi aspettare che finisca qualcosa(ad esempio un eseguibile).Nel tuo caso lo devi solo lanciare no? Guarda la guida alle API win32 Ultima modifica di verloc : 03-02-2004 alle 16:08. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Bingo!
![]() Venivo giusto ora a postare per avvertire che sbirciando tra le righe di codice sul PC di un mio ex-collega ho trovato proprio che per 'ste cose usava la ShellExecute!! Grazie a tutti! Alla prossima!!! ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:49.