Wie der Titel schon sagt ich würde gerne das programm Xampp (kennt ihr sicher) in einen script einbauen um einen testserver für homepages zu bauen ist es somit möglich den gesamten xampp ordner mit unter ordnern per fileinstall oder sonst wie zu integrieren ?
FileInstallFolder ? Geht das ganzen ordner + Unterverzeichnis einbinden ?
-
- [ offen ]
-
Eistee -
9. März 2008 um 16:01 -
Geschlossen -
Erledigt
-
-
bei mehreren Datein empfiehlt es sich ein sfx zu benutzen, bzw zip und die dann entpacken
-
- Offizieller Beitrag
Hi,
ich hatte mal einen Skriptgenerator für FileInstall erstellt.
Bindet auch Unterordner ein. Vielleicht passt das ja. -
BugFix sry aber die datei die dein tool generiert ist fehlerhaft...
da kommt immer Installation fehlerhaftNoch Grösseres Problem Jetzt wenn ich auf code übernehmen gehe macht dein tool garnix mehr
-
joar dazu hab ich mal ne frage, gibt es eine sfx die ich quasi mit run ausführen kann also dass sie im hintergrund ohne sichtbar zu sein sich irgendwo hin entpackt?
-
Naja wenn man als installverzeichnis desktop wählt und die logdatein aus hatt gehts
-
naja man hat eine sfx, z.b. mit winrar erstellt:
test.exe wenn man diese öffnet bekommt man ein auswahlfenster wohin man das ganze entpacken will, und dieses auswahlfenster soll garnet kommen sondern das man das ziel per pararmeter angibt: run("C:\test.exe -C:\testordner\") irgendwie so halt^^ und das ganze dann im Hintergrund läuft
-
- Offizieller Beitrag
Hi zusammen,
also entweder alles einzelnen machen mit DirCreate und Fileinstall usw., oder zippen/selbstextrahierende exe mit (WinRAR, 7zip ...)
Mega
-
könnte man das net als UDF (is jedenfalls ein versuch von mir :D) nehmen? bei mir hats auf jeden fall funktioniert
Spoiler anzeigen
[autoit]#include <file.au3>
[/autoit]
Func FileInstallFolder($from, $to, $overwrite)
If StringRight($from, 1) <> "\" Then
$from = $from&"\"
EndIf
If StringRight($to, 1) <> "\" Then
$to = $to&"\"
EndIf
$files = _FileListToArray($from, "*", 1)
Select
Case @error = 1
SetError(1)
Return(0)
Case @error = 2
SetError(2)
Return(0)
Case @error = 3
SetError(3)
Return(0)
Case @error = 4
SetError(4)
Return(0)
Case Else
$dir = DirCreate($to)
If $dir = 0 Then
SetError(5)
Return(0)
EndIf
For $i = 1 To $files[0]
$install = FileInstall($from&$files[$i], $to&$files[$i], $overwrite)
If $install = 0 Then
SetError(6)
Dim $error[2]
$error[0] = 0
$error[1] = $files[$i]
Return($error)
EndIf
Next
SetError(0)
Return(1)
EndSelect
EndFunc ;==>FileInstallFolderReturn Value
@Error:
1 = Path not found or invalid
2 = Invalid $sFilter
3 = Invalid $iFlag
4 = No File(s) Found
5 = Create a directory failed
6 = FileInstall failed (exception: Returns an Array: $array[0] = 0, $array[1] = Current File)
==>Return 0Success:
Return 1 -
ich dachte, das Fileinstall beim ersten Parameter nur absolute Pfade benutzt und keine Variablen oder wurde das geändert?
-
öhh ja les ich auch grad^^ LOL aber es geht irgendwie trotzdem
Hab die Funktion so benutzt: FileInstallFolder("C:TEST", "C:TEST2", 1) und er hat alle dateien da reininstalliert^^
//EDIT: *schei*** es geht direkt von scite aus aber nicht wenn man das script compilieren will :/... kann man da irgendwas trixxxxxen?
Wie funktioniert denn der Befehl #include könnte man mit dem was machen???
-
nicht das ich wüsste Include ist nichts weiter als ein befehl zum einbinden bestimmter parameter die standartmäsig dabei sind und für Udf´s
damit man den code nit tippen muss -
- Offizieller Beitrag
Hi,
nimm doch einfach eine exe. Was stört dich daran?
Mega
-
@mega wenn du mir eine SFX oder sowas zeigst die:
man per Ausführen (run) öffnen kann (kla geht bei jeder) und man direkt per Pararmeter das Zielverzeichnis bestimmen kann, sodass das ganze im Hintergrund läuft, dann mach ich das -
einfach bei den SFX-Einstellungen von Winrar o.O? z.B. in das selbe Verzeichnis oder ins Temp - man muss sich halt auch ma die Mühe machen das anzuschauen
-
hmmmm.... joar könnte gehen ich teste es... morgen Danke schonmal
-
- Offizieller Beitrag
Hi,
ich würde dem Anwender immer die Chance geben zu sehen, wo du was hinpackst - es sei denn es geht in TEMP. Wenn du es verstecken willst, musst du halt wirklich jeden Befehl einzeln schreiben oder die commandline Variante von 7zip testen, ob du die mit Fileinstallen kannst du dann die entpackte exe mit -a silent entpacken kannst.
Mega
-
Ich hab hier aus der Func von oben ein Hilfprogramm gemacht. Das erstellt die FileInstalls automazisch und man muss sie nur noch in seon Script einfügen:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <file.au3>
#include <Array.au3>
Dim $array[33][2] = [['Macros for "All User" data. Most values are read from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion'], _
['@AppDataCommonDir', 'path to Application Data '], _
['@DesktopCommonDir', 'path to Desktop '], _
['@DocumentsCommonDir', 'path to Documents '], _
['@FavoritesCommonDir', 'path to Favorites '], _
['@ProgramsCommonDir', "path to Start Menu's Programs folder "], _
['@StartMenuCommonDir', 'path to Start Menu folder '], _
['@StartupCommonDir', 'path to Startup folder '], _
[' '], _
['Macros for Current User data. Most values are read from HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion '], _
['@AppDataDir', "path to current user's Application Data "], _
['@DesktopDir', "path to current user's Desktop "], _
['@MyDocumentsDir', 'path to My Documents target '], _
['@FavoritesDir', "path to current user's Favorites "], _
['@ProgramsDir', "path to current user's Programs (folder on Start Menu) "], _
['@StartMenuDir', "path to current user's Start Menu "], _
['@StartupDir', "current user's Startup folder "], _
['@UserProfileDir', "Path to current user's Profile folder. "], _
[''], _
['Other macros for the computer system: '], _
['@HomeDrive', "Drive letter of drive containing current user's home directory. "], _
['@HomePath', "Directory part of current user's home directory. To get the full path, use in conjunction with @HomeDrive. "], _
['@ProgramFilesDir', 'path to Program Files folder '], _
['@CommonFilesDir', 'path to Common Files folder '], _
['@WindowsDir', 'path to Windows folder '], _
['@SystemDir', "path to Windows' System (or System32) folder "], _
['@TempDir', 'path to the temporary files folder ']]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("FolderInstall-Creator", 517, 439, 193, 125)
$Input1 = GUICtrlCreateInput("", 32, 32, 401, 21)
$Input2 = GUICtrlCreateInput("", 32, 72, 401, 21)
$Button1 = GUICtrlCreateButton("...", 440, 32, 49, 25, 0)
$Button2 = GUICtrlCreateButton("Macros", 440, 72, 49, 25, 0)
$Button3 = GUICtrlCreateButton("Generate", 96, 120, 305, 41, 0)
$check1 = GUICtrlCreateCheckbox("Overwrite",3,3,100,20)
$Edit1 = GUICtrlCreateEdit("", 24, 176, 457, 249)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$folder = FileSelectFolder("Source wählen","")
If $folder <> "" Then GUICtrlSetData($Input1,$folder)
Case $Button2
_ArrayDisplay($array,"Help - Macro Description")
Case $Button3
GUICtrlSetData($Edit1,FileInstallFolder(GUICtrlRead($Input1),GUICtrlRead($Input2),BitAND(GUICtrlRead($check1),$GUI_CHECKED)))
Case $Edit1
EndSwitch
WEndFunc FileInstallFolder($from, $to, $overwrite)
[/autoit]
If StringRight($from, 1) <> "\" Then
$from = $from&"\"
EndIf
If StringRight($to, 1) <> "\" Then
$to = $to&"\"
EndIf
Local $files = _FileListToArray($from, "*", 1)
Select
Case @error = 1
SetError(1)
Return(0)
Case @error = 2
SetError(2)
Return(0)
Case @error = 3
SetError(3)
Return(0)
Case @error = 4
SetError(4)
Return(0)
Case Else
$dir = DirCreate($to)
If $dir = 0 Then
SetError(5)
Return(0)
EndIf
Local $installs = "Local $folderinstallerrors = 0" & @CRLF
For $i = 1 To $files[0]
$installs &= " $install = FileInstall(" & $from&$files[$i] & ", " & $to&$files[$i] & ", " & $overwrite & ")" & @CRLF & _
" If $install = 0 Then $folderinstallerrors += 1" & @CRLF
Next
$installs &= "If $folderinstallerrors > 1 Then" &@CRLF& " ;Your error-handling here!" & @CRLF & "EndIf" & @CRLF
SetError(0)
Return $installs
EndSelect
EndFunc ;==>FileInstallFolder -
auch wenns schon Uhr alt ist, is mir ein bug aufgefallen, den ich hiermit behebe, damit ihn andere Leute nicht selber finden müssen. bei der Versoin über dem beitrag hier fehlen bei den Generierten Fileinstalls die ". hab diese jetzt eingeführt, nun kann man den Text 1:1 ins script einfügen.
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <file.au3>
#include <Array.au3>
Dim $array[33][2] = [['Macros for "All User" data. Most values are read from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion'], _
['@AppDataCommonDir', 'path to Application Data '], _
['@DesktopCommonDir', 'path to Desktop '], _
['@DocumentsCommonDir', 'path to Documents '], _
['@FavoritesCommonDir', 'path to Favorites '], _
['@ProgramsCommonDir', "path to Start Menu's Programs folder "], _
['@StartMenuCommonDir', 'path to Start Menu folder '], _
['@StartupCommonDir', 'path to Startup folder '], _
[' '], _
['Macros for Current User data. Most values are read from HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion '], _
['@AppDataDir', "path to current user's Application Data "], _
['@DesktopDir', "path to current user's Desktop "], _
['@MyDocumentsDir', 'path to My Documents target '], _
['@FavoritesDir', "path to current user's Favorites "], _
['@ProgramsDir', "path to current user's Programs (folder on Start Menu) "], _
['@StartMenuDir', "path to current user's Start Menu "], _
['@StartupDir', "current user's Startup folder "], _
['@UserProfileDir', "Path to current user's Profile folder. "], _
[''], _
['Other macros for the computer system: '], _
['@HomeDrive', "Drive letter of drive containing current user's home directory. "], _
['@HomePath', "Directory part of current user's home directory. To get the full path, use in conjunction with @HomeDrive. "], _
['@ProgramFilesDir', 'path to Program Files folder '], _
['@CommonFilesDir', 'path to Common Files folder '], _
['@WindowsDir', 'path to Windows folder '], _
['@SystemDir', "path to Windows' System (or System32) folder "], _
['@TempDir', 'path to the temporary files folder ']]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("FolderInstall-Creator", 517, 439, 193, 125)
$Input1 = GUICtrlCreateInput("", 32, 32, 401, 21)
$Input2 = GUICtrlCreateInput("", 32, 72, 401, 21)
$Button1 = GUICtrlCreateButton("...", 440, 32, 49, 25, 0)
$Button2 = GUICtrlCreateButton("Macros", 440, 72, 49, 25, 0)
$Button3 = GUICtrlCreateButton("Generate", 96, 120, 305, 41, 0)
$check1 = GUICtrlCreateCheckbox("Overwrite",3,3,100,20)
$Edit1 = GUICtrlCreateEdit("", 24, 176, 457, 249)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$folder = FileSelectFolder("Source wählen","")
If $folder <> "" Then GUICtrlSetData($Input1,$folder)
Case $Button2
_ArrayDisplay($array,"Help - Macro Description")
Case $Button3
GUICtrlSetData($Edit1,FileInstallFolder(GUICtrlRead($Input1),GUICtrlRead($Input2),BitAND(GUICtrlRead($check1),$GUI_CHECKED)))
Case $Edit1
EndSwitch
WEndFunc FileInstallFolder($from, $to, $overwrite)
[/autoit]
If StringRight($from, 1) <> "\" Then
$from = $from&"\"
EndIf
If StringRight($to, 1) <> "\" Then
$to = $to&"\"
EndIf
Local $files = _FileListToArray($from, "*", 1)
Select
Case @error = 1
SetError(1)
Return(0)
Case @error = 2
SetError(2)
Return(0)
Case @error = 3
SetError(3)
Return(0)
Case @error = 4
SetError(4)
Return(0)
Case Else
$dir = DirCreate($to)
If $dir = 0 Then
SetError(5)
Return(0)
EndIf
Local $installs = "Local $folderinstallerrors = 0" & @CRLF
For $i = 1 To $files[0]
$installs &= " $install = FileInstall('" & $from&$files[$i] & "',' " & $to&$files[$i] & "', " & $overwrite & ")" & @CRLF & _
" If $install = 0 Then $folderinstallerrors += 1" & @CRLF
Next
$installs &= "If $folderinstallerrors > 1 Then" &@CRLF& " ;Your error-handling here!" & @CRLF & "EndIf" & @CRLF
SetError(0)
Return $installs
EndSelect
EndFunc ;==>FileInstallFolder
nebenbei, find ich es toll, dass hier bereits ein generator da war, hätt ihn sonst selber schreiben müssen