PDA

View Full Version : [JAVA/Prompt DOS]avviare il dialog property in windows


Frank1962
25-02-2009, 18:14
Salve ....stò cercando un modo di avviare dal prompt del dos il dialog delle proprietà dove windows visualizza le informazioni dei file o cartelle, tanto per intenderci, questo:

http://www.primarysourcelearning.org/handbook/part2/ch4/img/ie_properties_dialog_box.gif

per esempio con il comando "start C:\" mi apre l'explorer del risorse del computer ma non riesco a trovare nessuna opzione che mi permetta di aprire il dialog box sopracitato! :(

Ho scritto questo post anche nella sezione windows programmi ma, essendo che dovrei utilizzare tale comando nel Runtime.exec() del java, forse questa è la sezione + appropriata.

grazie in anticipo per l'aiuto
ciao!

WarDuck
25-02-2009, 23:19
Allora mi pare che explorer.exe abbia dei parametri che una volta aperta la finestra consentono di selezionare il file che ti interessa, a quel punto potresti provare molto grezzamente ad emulare l'input mandando alla finestra i tasti ALT+INVIO.

Ripeto è una soluzione molto grezza (ma facile), sicuramente si può fare di meglio usando le API di Windows (decisamente meno facile).

Frank1962
26-02-2009, 00:30
intanto ti ringrazio per la risposta ...la tua idea non è male però io stavo cercando qualche cosa che utilizzi le proprietà del rundll32 che come puoi vedere su questo sito (http://www.walkernews.net/2007/06/06/quick-start-to-rundll32-syntax-and-example/), per esempio, permette di fare più o meno tutto ....però ancora non ho trovato la chiamata esatta per quello che voglio fare :(

cionci
26-02-2009, 08:33
Qui c'è il codice C:
#include <shellapi.h>

void ShowProperties(const TCHAR *szFileName)
{
int iRet = ShellExecute(0, "properties", szFileName, 0, 0, SW_SHOWNORMAL);
if(iRet <= 32)
MessageBox(0, "FileNotFound", "Alert!", MB_OK);
}

Se trovi come si esegue ShellExecute da rundll32 allora sei a cavallo.

In VBS:

sPath = "c:\some path\some file.foo"
set shellApp = createobject("shell.application")
shellApp.namespace(0).parsename(sPath).invokeverb("P&roperties")

msgbox "ready...",vbsystemmodal

cionci
26-02-2009, 09:10
Potrebbe anche essere qualcosa di questo tipo:

rundll32.exe c:\WINDOWS\system32\shell32.dll,SHObjectProperties 0,2,percorso del file,0

Purtroppo non funziona. La funzione la trova...si tratta solo di trovare il modo giusto di passargli i parametri.
http://msdn.microsoft.com/en-us/library/bb762231.aspx

banryu79
26-02-2009, 14:00
Potresti anche wrappare il codice C postato da cionci con JNI.