Bitnugger, vielen Dank für Deine umfassende Mühe.
Klappt hervorragend!
Bitnugger, vielen Dank für Deine umfassende Mühe.
Klappt hervorragend!
Bitnugger, danke!
Wichtig ist......
Es soll anschließend bei gesperrtem Arbeitsblatt möglich sein, mit einem Touchdisplay zu zeichnen.
Müsste mit "UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=False" irgendwie erweitert werden.
So wie oben im VBA-Macro.
Moin,
Ich möchte diese Makro von Autoit aus ausführen.
Sub BlattSchuetzenEin()
Dim I
For I = Worksheets(1).Index To Worksheets.Count
With Worksheets(I)
.Protect UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=False, _
Password:="Passwort"
.EnableOutlining = True
End With
Next
End Sub
Bis hier ist alles klar. Das Excelblatt wird geöffnet und kann bearbeitet werden. danach soll das obige Makro gestartet werden.
Local $bVisible = True
Local $bReadOnly = False
Local $sWritePassword_Ab = "passwort"
Local $oExcelAT = _Excel_Open(False)
Local $BoExcelAT = _Excel_BookOpen($oExcelAT, $TV_Speichern_Path_, $bReadOnly, $bVisible)
If @error > 0 Then
MsgBox(0 + 262144 + $MB_SETFOREGROUND + 64, "", "Konnte nicht geöffnet werden")
Return
EndIf
$oExcelAT.Activesheet.Unprotect($sWritePassword_Ab)
Alles anzeigen
Habe es so versucht, klappt aber leider nicht.
With $BoExcelAT.ActiveSheet
.DrawingObjects = False
.Contents = True
.Scenarios = True
.UnProtect("Passwort")
EndWith
Könnt ihr mir helfen?
Gruß
Danke!
Durch einen Eintrag für z.B. Office 2013 in der Regristry, ist das Problem behoben.
RegWrite("HKEY_CURRENT_USER64\Software\Microsoft\Office\15.0\Outlook\Preferences", "DisableTNEF", "REG_DWORD", 1)
Moin,
water, ich erzeuge mit Deiner UDF eine Mail mit , Adresse, Anhang (PDF), Text in HTML und Signatur, was auch gut klappt.
Leider wird der Anhang (PDF) dann in einigen Mailprogrammen als "winmail.dat" ohne PDF gesendet.
Wenn ich lokal die Mail erzeuge und versende, wird der Anhang richtig dargestellt.
Kannst Du mir helfen?
Gruß
Habe es selbst gefunden, danke!
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe ' & $PDF1 &' '& $PDF2 & ' cat output ' & $DestinationPath, "")
Kannst Du mir nochmal helfen, $In1 und $IN2 auch als Variable?
Gruß
$sCommand = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output ' & $sOut
ConsoleWrite('+ @@ Debug : $sCommand = ' & $sCommand & @CRLF)
$In1 = D:\Test1.pdf
$In2 = D:\Test2.pdf
$sCommand = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output ' & $sOut
ConsoleWrite('+ @@ Debug : $sCommand = ' & $sCommand & @CRLF)
Gruß
Vielen Dank, funktioniert!
Moin,
es sollen PDF's zu einer Datei gemerge werden mit PDFtk Server.
Das funktioniert ohne Variablen gut.
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output D:\out1.pdf', "")
Ich möchte aber die die Out-Datei als Variable angeben.
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output' & $Out, "")
So funktioniert es leider nicht.
Könnt ihr mir mit der Einbindung "Variable" helfen?
Gruß
water, super. Danke!
Klappt perfekt.
Moin,
water, ist es möglich mit der ExportAsFixedFormat-Methode wie von Word "_Word_DocExport", mit "_Excel_Export" eine PDF /A1 Datei zu erzeugen?
Oder gibt es einen anderen Weg?
Gruß
Wuff
Oder so!
Baut auf Musashi Code auf.
$FieldscoutSt = $oRecordSet.Fields.Count
MsgBox(1, "", $FieldscoutSt)
For $i = 0 To $oRecordSet.Fields.Count - 1
ConsoleWrite($oRecordSet.Fields($i).Name & @CRLF)
Next
Musashi, klappt super!
Vielen Dank nochmals!
Musashi , vielen Dank!
So habe ich mir es vorgestellt.
Es wäre doch bestimmt ohne ForNext-Schleife möglich, alle Werte einer bestimmten Spalte in ein Array zu lesen?
Vielleicht kannst Du mir ja nochmal helfen.
Moin,
ich arbeiet mit dieser Accesss UDF.
Mit der Func _AccessRecordList lese ich zeilenweise die Daten der 35 Spalten in ein Array.
Da ich aber 2500 Zeilen mit 35 Spaltem in der Access-Datei habe, wird es mit der Func _AccessRecordList zeilenweise ausgelesen sehr langsam.
Wie kann ich alles komplett in ein Array auslesen?
Vielleicht könnt ihr mir helfen.
Gruß
Es ist ein sehr umfangreiches Script mit und funktioniert in der lokalen Umgebung für mehrere Personen sehr gut.
Dann sollte ich es wohl mit dem Browser vergessen. Schade!
Zitat von autoiterIst "Z:" ein auf deinem Windows eingebundenes Netzlaufwerk von deinem NAS?
Ja, das ist so!
Moin autoiter , erstmal vielen Dank für Dein Feedback.
Die Autoit Anwendung soll von einigen Personen von unterwegs erreichbar sein.
Daher habe ich mich für den Weg über den Browser entschieden, was ja bekanntermaßen doch schweriger ist als angenommen.
Zitat von autoiterDu wirst den Pfad mit "Z:\..." wohl fest in den Code schreiben müssen.
Das wollte ich eben vermeiden und suchte vielleicht nach einen anderen Weg.
Wenn ich die *.exe auf der NAS starte, wird mir ein Download angeboten, was weniger hilfreich ist.
Also habe ich es mit dem Apache Server versucht und scheiter eben daran, dass die Anwendung beim Start immer nach den Access Dateien usw. im Temp Ordner fragt.
Vielieicht mache ich auch allgemein ein Denkfehler, deshalb bat ich um Hilfe.
#pragma compile(FileDescription, "AutoIt Protocol Handler")
#pragma compile(FileVersion, 1.1.0.0)
#pragma compile(CompanyName, scintilla4evr)
#pragma compile(Icon, icon.ico)
#include <Array.au3>
#include <File.au3>
#include <WinAPIShPath.au3>
If @Compiled Then
; Warn the user! [TheDcoder]
$bAreYouReallySure = MsgBox(36, "Script execution warning", "The website is trying to execute a script, which may be dangerous to your computer. Are you sure you want to proceed?")
If $bAreYouReallySure <> 6 Then Exit
; Put the URL together
$arr = $CmdLine
_ArrayDelete($arr, 0)
$sData = StringTrimLeft($sData, 7)
; Look for modifiers
If StringRegExp($sData, "\A\s*url\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*url\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = BinaryToString(InetRead($sURL))
ElseIf StringRegExp($sData, "\A\s*local-url\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*local-url\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = FileRead($sURL)
ElseIf StringRegExp($sData, "\A\s*helpfile-example\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*helpfile-example\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = FileRead(_WinAPI_PathRemoveFileSpec(@AutoItExe)&"\Examples\Helpfile\"&$sURL&".au3")
ElseIf StringRegExp($sData, "\A\s*str-format\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*str-format\((.*)\)\s*\Z", 1)
$sData = StringFormat($aRegExp[0])
EndIf
; Save to a temporary file and EXECUTE!
$sTempFile = _TempFile(@TempDir, "~", ".au3")
FileWrite($sTempFile, $sData)
Msgbox(1,"$sTempFile",$sTempFile)
Msgbox(1,"@AutoItExe",@AutoItExe)
RunWait('"'&@AutoItExe&'" /AutoIt3ExecuteScript "'&$sTempFile&'"')
FileDelete($sTempFile)
EndIf
alpines, ist es nicht möglich?
Die *.au3 wird im Verzeichnis "C:\Users\xxxxxx\AppData\Local\Microsoft\Windows\INetCache" über das Protokoll mit "Runwait" ausgeführt.
$arr[0] ist die URL.
Die Daten zu der *.au3 Datei (Access, Ordner usw. ) befinden sich auf Laufwerk Z:.
Das dann die *.au3 Datei auf das Laufwerk Z: zugreift?
Es sind viele Ordner und Dateien auf den Laufwerk Z:, die für die Ausführung der *.au3 Anwendung notwendig sind.
Zitat von AlpinesSchreib doch einen Wrapper der dein AutoIt-Skript mit den entsprechenden Parametern über die CLI startet?
Dann kannst du die Datenbankinfos als CLI-Parameter übergeben.
alpines, ich weiß leider nicht wie, kannst Du mir ein kleines Beispiel geben für den Wrapper?
Moin,
ich habe auf meiner NAS eine Autoit Anwendung (Access Datenbank) die ich mit dem Browser über dieses Protokoll starte, was auch gut funktioniert.
Der Browser lagert dann die gestartete *.au3 Anwendung in den Cache ("C:\Users\xxxxxx\AppData\Local\Microsoft\Windows\INetCache") aus.
Problem: Mir fehlen dann die Acces Datenbank Dateien, die werden nicht mit ausgelagert.
Sie sind in der *.au3 Anwendung so ("_AccessOpen(@ScriptDir & "\" & $Datenbank_File, $Options_1, $ReadOnly_1, $Connect_1") eingebunden.
Funktioniert natürlich, wenn ich die *.au3 oder *.Exe auf dem NAS Laufwerk starte.
Habt ihr eine Idee, wie ich sie für den Start mit dem Browser in der *.au3 einbinden muss, ohne die Access Datenbank Dateien im INetCache bereit zu stellen?
Gruß