Autor Thema: dynamisch winzip/winrar source finden  (Gelesen 1199 mal)

Offline bernino1

  • Junior Mitglied
  • **
  • Beiträge: 68
  • Geschlecht: Männlich
dynamisch winzip/winrar source finden
« am: 08.11.06 - 09:13:47 »
hallo,

ich habe einen XML-Export per LS geschrieben. Alle relevanten Doks werden exportiert. Die in den Dokumenten angehängten *.jpg - Files zippe ich am Ende des Scripts und übergebe Sie per FTP.
Nun habe ich 2 Probleme:
1.
Wie schaffe ich, das LS automatisch die Source von Winrar/Winzip findet? Der Script wird jeweils Lokal an mehreren verschiedenen Arbeitsplätzen ausgeführt und ich weiß nicht 100% ob Winrar oder Winzip verwendet wird und wo dieses liegt! (Kann/Muß ich die Registry auslesen?)

2.
Bei mir Lokal habe ich die Source von WinRar fix mitgegeben. Ich sende nun also einen Shell-Befehl und Zippe einen ganzen Ordner. Der Befehl sieht folgerndermaßen aus:

rc = Shell (winrar & " a -afzip -r C:\Temp\Export\bilder.zip " & pfad & "*.jpg")
Sleep 60

Funzt einwandfrei - nur - im Zip-File ist die gesamte Ordnerstruktur enthalten ???
In den Commands bei Winrar konnte ich nicht finden wie ich die Ordnerstruktur verberge.

Habt Ihr da eine Idee?

Ist nicht unbedingt LS - ich weiß - aber immerhin wirds aus einem Lotus-Script gestartet  ;D
Vielleicht hat das ja schonmal einer von Euch realisieren müssen!

Danke auf jeden Fall und schöne Grüße vom Bodensee
« Letzte Änderung: 09.11.06 - 16:24:16 von bernino1 »
Schöne Grüße vom Bodensee

Berndt

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: dynamisch winzip/winrar source finden
« Antwort #1 am: 08.11.06 - 09:18:23 »
zu1:

Code
Declare Function RegOpenKeyExA Lib "advapi32" Alias "RegOpenKeyExA" (Byval HKEY As Long,Byval lpszSubKey As String,Byval dwreserved As Integer,Byval samDesired As Long, keyresult As Long) As Long
Declare Function RegQueryValueExA Lib "advapi32" Alias "RegQueryValueExA" (Byval HKEY As Long,Byval lpszValueName As String,Byval dwreserved As Integer, lpdwtype As Long, Byval lpData As String, readbytes As Long) As Long
Declare Function RegCloseKey Lib "advapi32" Alias "RegCloseKey" (Byval HKEY As Long) As Long

Dim Test As String

Sub Click(Source As Button)
	app$ = Inputbox("Enter the name of an .EXE file you want to locate.", "Name of App", "NOTES.EXE")
	AppPath$ = LocatePath(app$)
	
'----display the results
	If AppPath$ = Test Then
		Msgbox ApplicationName & " not found."
	Else
		Msgbox AppPath$
	End If
	
End Sub

Function LocatePath(ApplicationName As String)
	Dim happkey As Long
	Dim HKEY_LOCAL_MACHINE As Long
	Dim KEY_READ As Long
	Dim HKEY_CURRENT_USER As Long
	Dim ValueType As Long
	Dim ReturnedKeyContents As String * 255
	Dim readbytes As Long
	
	ReturnedKeycontents$=String$(255,Chr$(32))    ' sets up the returned key variable, C likes to know how long it's strings might be
	
	Test = ReturnedKeycontents$                 ' string used to test results of lookup; represents a blank return
	
'----the base keys of the registry.  we will be drilling into HKEY_LOCAL_MACHINE in this instance
	HKEY_LOCAL_MACHINE= &H80000002
	HKEY_CURRENT_USER= &H80000001
	
'----keys used by C function calls, used to navigate registry
	KEY_QUERY_VALUE=1
	KEY_ENUMERATE_SUBKEYS=8
	KEY_NOTIFY=16
	KEY_READ=KEY_QUERY_VALUE Or KEY_ENUMERATE_SUBKEYS Or KEY_NOTIFY
	
	BaseName$ = "Software\Microsoft\Windows\CurrentVersion\App Paths\"     ' this is the default part of the key
	KeyName$= BaseName$ + ApplicationName                  ' this adds the user-entered exe to the basename, creating the key
	ValueName$ = ""             ' a null or empty string represents the default value
	
	lstat=RegOpenKeyExA(HKEY_LOCAL_MACHINE,KeyName$,0,KEY_READ,happkey)      ' get a handle on the key, values are passed by refrence
	ReadBytes=255
	lstat=RegQueryValueExA(happkey,ValueName$,0,valueType, ReturnedKeyContents$,ReadBytes)       ' get the value of the desired value
	regclosekey(happkey)     ' release the handle of the key
	
	Test = Left$(Test, ReadBytes-1)
	LocatePath = Left$(ReturnedKeyContents$,ReadBytes-1)   ' format and return the results
	
End Function
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline bernino1

  • Junior Mitglied
  • **
  • Beiträge: 68
  • Geschlecht: Männlich
Re: dynamisch winzip/winrar source finden
« Antwort #2 am: 08.11.06 - 09:33:12 »
wow - das ging aber schnell!!


vielen dank @eknori!

geiles script ;-)


berndt
Schöne Grüße vom Bodensee

Berndt

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: dynamisch winzip/winrar source finden
« Antwort #3 am: 08.11.06 - 12:32:45 »
als Formel: @regQueryKey()
Zum Thema zip findest Du folgendes:http://atnotes.de/index.php?topic=28215.0
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz