Hat einer eine Idee, wie man eine Dokumentenliste mit Start einzelner Dokumente in einem Verzeichnis hinkriegt ohne FileOpenDialog.
txt, doc, pdf
Dateiliste ohne FileOpenDialog
-
- [ offen ]
-
moppel -
23. Mai 2007 um 21:38 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Hi!
_FileListToArray und ShellExecute? Das Array dann in ein ListView oder so stecken?
peethebee
-
- Offizieller Beitrag
Hi,
Spoiler anzeigen
[autoit]#include <GuiConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiListView.au3>
#Include <File.au3>
#Include <Array.au3>$path = InputBox("Choose destination", "Path : ", "c:\")
[/autoit] [autoit][/autoit] [autoit]$FileList = _FileListToArray($path)
[/autoit] [autoit][/autoit] [autoit]
If (Not IsArray($FileList)) and (@error = 1) Then
MsgBox(0, "", "No Files\Folders Found.")
Exit
EndIfGlobal $listviewItems[$FileList[0] + 1]
[/autoit] [autoit][/autoit] [autoit]
GUICreate("ListView Scroll", 392, 322)
$listview = GUICtrlCreateListView("Number| File/FolderName", 40, 30, 310, 149)
For $i = 1 To UBound($FileList) - 1
$listviewItems[$i] = GUICtrlCreateListViewItem($i & "|" & $FileList[$i], $listview)
Next
$Btn_Exit = GUICtrlCreateButton("Exit", 300, 260, 70, 30)
$Btn_Run = GUICtrlCreateButton("Run ", 300, 220, 70, 30)GUISetState()
[/autoit]
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE Or $msg = $Btn_Exit
ExitLoop
Case $msg = $Btn_Run
RunWait(@ComSpec & ' /c start ' & $path & _GUICtrlListViewGetItemText($listview, _GUICtrlListViewGetCurSel($listview), 1), '', @SW_HIDE)
EndSelect
WEnd
ExitSo long,
Mega
-
Danke, sieht gut aus - ich bau daran weiter und melde mich noch mal
-
- Offizieller Beitrag
Hi,
viel Erfolg! Wenn ich weiß, was du ändern willst, dann läßt sich da sicher noch einiges optimieren.
So long,
Mega
-
Habe es jetzt so wie es mir gefällt.
Ein Problem, wie startet man den Standard-Editor bzw. Standard-Word, wenn diese Programme von verschiedenen Firmen stammen.
(Notepad - Editpad - Notepad++)
(MS-Office - Open-Office)
also die Pfade verschieden sein können? -
- Offizieller Beitrag
Der einfachste Weg z.B. bei Notepad:
Benenne die notepad.exe um in notepad.exe.org.
Kopiere dann notepad++.exe in das Verzeichnis und bennene sie um zu notepad.exe -
- Offizieller Beitrag
Hi,
willst du andere als die Standardprogramme nutzen?
Shellexecute öffnet die Datei mit der Standardversion die für die Endunf eingetragen ist.
Ansonsten könntest du über die Registry ein paar Pgs auslesen und diesen die zu öffnende Datei übergeben.
So long,
Mega
-
Ich habe andere Programme zu Standardprogrammen gemacht, wenn ich jetzt ein Script auf einem anderen PC starte würden diese programme ja fehlen.
Wenn ich einen .txt starte startet das entprechende Programm.
Ich möchte jetzt siehe Bild diese Programme aber leer starten, egal welches jetzt oder auf einem anderen PC als Standard gilt. -
- Offizieller Beitrag
Wie @th.meger schon geschrieben hat, einfach
[autoit]ShellExecute("Computer1.doc") ; Pfad nicht vergessen
[/autoit]und es wird die Standard-Anwendung für DOC-Dateien gestartet.
-
Hy Xenobiologist
dein Script funktioniert nicht mehr, muß bei einem Autoit-Update eine funktion rausgefallen sein.
Die Dateien starten nicht mehr."RunWait(@ComSpec & ' /c start ' & $path & _GUICtrlListViewGetItemText($listview, - Error"