'HKEY_CLASSES_ROOT' funktioniert aber nur, wenn der User dies nicht in 'HKEY_CLASSES_USER\Software\Classes' anders definiert hat. Der Benutzer-Schlüssel ist mit höherer Priorität, wenn er vorhanden ist (ggf. löschen, dann gilt 'HKEY_CLASSES_ROOT').
Beiträge von Micha_he
-
-
Such mal nach der 'CommMG.au3' im Forum. Ist eine DLL inkl. AutoIt-Wrapper.
Die Funktion '_CommClearOutputBuffer()' könnte ggf. helfen.
-
Wir machen das über 'plink.exe':
Spoiler anzeigen
[autoit]; Benötigt 'plink.exe' aus dem Putty-Paket
[/autoit] [autoit][/autoit] [autoit]
; getestet mit der Version vom 31.08.2006$host = "host"
[/autoit] [autoit][/autoit] [autoit]
$user = "root"
$pass = "password"$linuxcommand = "cat /etc/resolv.conf;exit"
[/autoit] [autoit][/autoit] [autoit]
$stream = Run('"' & @scriptdir & '\plink.exe" ' & $user & '@' & $host & ' -pw ' & $pass & ' ' & $linuxcommand, @scriptdir, @SW_HIDE,6)
$out = "STD-OUT:" & @CRLF & @CRLFWhile 1
[/autoit] [autoit][/autoit] [autoit]
$out &= StdOutRead($stream)
If @error then ExitLoop
WendMsgbox(0,"Ausgabe",$out)
[/autoit]Achtung: Bei SSH-Verbiindungen muss einmal vorab der Hostkey manuell bestätigt werden !
-
TraySetToolTip()
-
und mindestens ab Windows 7 muss der Dienst "Remoteregistrierung" auf dem Zielsystem gestartet sein.
Firewall muss glaube ich nicht speziell konfiguriert werden.Nochmals Gruß
Micha_he -
Ich würde es so versuchen, oder enthält '' bereits führende und nachfolgende Backslash ?
[autoit]RegWrite("\\\" & GUICtrlRead($Compname) & "\HKEY_LOCAL_MACHINE\SOFTWARE\pSAG\proalpha-client-production\5.2\proALPHA", "CADViewPrg", "REG_SZ", "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe")
[/autoit]Und bei einem 64bit-System '\HKLM64\...' verwenden.
Gruß
Micha_he -
Ich würde mal raten, Standardfehler: Windows7 x64 und AutoIt 32bit.
Dann muss es lauten: Run("C:\Windows\Sysnative\SLUI.exe")
Möglicherweise ist es aber auch vorteilhafter, das Kommandozeilentool 'slmgr.exe' zu verwenden.
-
Es könnte schon ausreichen das 'sleep(60000)' gleich hinter den Anfang der While-Schleife zu stellen, anstatt es kurz vor dem Wend() erst auszuführen.
Damit erreichst Du, das das Skript erst einmal eine Minute wartet, bevor der Ping-Test startet. Das könnte schon ausreichen. Ggf. auf 2 Minuten erhöhen, je nach dem ob das unter Umständen noch zu schnell ist. -
Du könntest dein Script als x64 kompilieren (Aut2Exe / Compile for System : x64) und dann den ShellExecute-Befehl nochmal testen. Dann würde der Aufruf ja direkt aus einer x64-Anwendung erfolgen.
-
Das einzige was mir dazu einfällt wäre:
Wenn Du einen Doppelklick unter dem Windows-Explorer auf einem Win7-x64-System machst, wird die Anwendung aus dem x64-System (Explorer ist ja die x64-Variante) gestartet und wenn Du das aus AutoIt heraus startest, wird dein Script ggf. als 32bit-Version gestartet.
Wenn dein System ein x64 ist, könnte man mal einen Test machen, indem man den Doppelklick aus einem 32bit Tool (z.B. Totalcommander 32bit) heraus anklickt, ob dies auch funktioniert. Ggf. lassen sich ja reine x64-Programme nicht aus einem 32bit-Autoit heraus starten !?
Gruß
Micha -
Und das was Du (ohne das Du deinen Anfang zeigts) 'versuchst' in deutsch zu schreiben,
kann kaum jemand lesen.Vielleicht versuchst Du es nochmal, wenn Du wieder am Rechner sitzt !
Ein bischen mehr Mühe wäre schön...Micha
-
Hallo AutoIt'ler.
Ich nutze in einem meiner Tools eine MsgBox zur Ausgabe einer Info.
Die MsgBox hat leider die Eigenschaft, immer den Fokus an sich zu reißen, so das eine Benutzereingabe in einem anderen Fenster, ab dem Moment nicht mehr funktioniert, bis ich das bisherige Fenster wieder aktiviere.Kann man der originalen MsgBox das abgewöhnen ? Laut Hilfe kann ich nichts finden. Oder hat jemand schon eine MsgBoxEx geschaffen, die diese Eigenart nicht aufweist ?
sonst muss ich mich mal ransetzen und ein MsgBox-GUI selbst entwerfen....Gruß
Micha -
Habe ich im ersten Beitrag schon ergänzt !
Ich war fest der Meinung ich hatte auf der Arbeit eine weitere Lösung. Ist aber leider nicht der Fall oder ich finde sie nicht mehr wieder.
Tut mir leid

-
Lösungsmöglichkeit 1 (habe ich auch mal nach gesucht):
Spoiler anzeigen
[autoit]Global Const $DIR_Flag_Desktop = 0 ; Desktop
[/autoit] [autoit][/autoit] [autoit]
Global Const $DIR_Flag_Programme = 2 ; Programme
Global Const $DIR_Flag_Systemsteuerung = 3 ; Systemsteuerung
Global Const $DIR_Flag_Drucker = 4 ; Drucker
Global Const $DIR_Flag_EigeneDateien = 5 ; Eigene Dateien
Global Const $DIR_Flag_Favoriten = 6 ; Favoriten
Global Const $DIR_Flag_Autostart = 7 ; Autostart
Global Const $DIR_Flag_Recent = 8 ; Recent (Inhalt des Dokumente-Menüs)
Global Const $DIR_Flag_SendenAn = 9 ; Senden an
Global Const $DIR_Flag_Papierkorb = 10 ; Papierkorb
Global Const $DIR_Flag_Startmenue = 11 ; Startmenü
Global Const $DIR_Flag_DesktopOrdner = 16 ; Desktop-Ordner
Global Const $DIR_Flag_Arbeitsplatz = 17 ; Arbeitsplatz
Global Const $DIR_Flag_Netzwerkumgebung = 18 ; Netzwerkumgebung
Global Const $DIR_Flag_OrdnerNetzwerkumgebung = 19 ; Ordner Netzwerkumgebung
Global Const $DIR_Flag_Schriftarten = 20 ; Schriftarten
Global Const $DIR_Flag_Vorlagen = 21 ; Vorlagen
Global Const $DIR_Flag_StartmenueAlle = 22 ; Startmenü für Alle Benutzer
Global Const $DIR_Flag_ProgrammeAlle = 23 ; Programme für Alle Benutzer
Global Const $DIR_Flag_Programme2 = 24 ; Startmenü für Alle Benutzer
Global Const $DIR_Flag_Desktop2 = 25 ; Desktop für Alle Benutzer
Global Const $DIR_Flag_Anwendungsdaten = 26 ; Anwendungsdaten
Global Const $DIR_Flag_PrintHood = 27 ; PrintHood
Global Const $DIR_Flag_FavoritenAlle = 31 ; Favoriten für Alle Benutzer
Global Const $DIR_Flag_TemporaereInternetdateien = 32 ; Temporäre Internetdateien
Global Const $DIR_Flag_Cookies = 33 ; Cookies
Global Const $DIR_Flag_Verlauf = 34 ; VerlaufGlobal Const $BIF_BROWSEFORCOMPUTER = 0x1000 ; Only return computers
[/autoit] [autoit][/autoit] [autoit]
Global Const $BIF_BROWSEFORPRINTER = 0x2000 ; Only allow the selection of printers
Global Const $BIF_BROWSEINCLUDEFILES = 0x4000 ; The browse dialog box will display files as well as folders
Global Const $BIF_DONTGOBELOWDOMAIN = 0x2 ; Do not include network folders below the domain level
Global Const $BIF_EDITBOX = 0x10 ; Include an edit control in the browse dialog box
Global Const $BIF_USENEWUI = 0x40 ; Use New Style (> Windows 2000)
Global Const $BIF_RETURNONLYFSDIRS = 0x1 ; Only return file system directories
Global Const $BIF_ALLOLDSTYLEFLAGS = BitOR ($BIF_BROWSEFORCOMPUTER, $BIF_BROWSEFORPRINTER, $BIF_BROWSEINCLUDEFILES, $BIF_DONTGOBELOWDOMAIN, $BIF_EDITBOX, $BIF_RETURNONLYFSDIRS, $BIF_USENEWUI)$dir = _FileSelectFolder("Test",$DIR_Flag_Arbeitsplatz,$BIF_BROWSEINCLUDEFILES + $BIF_USENEWUI + $BIF_EDITBOX)
[/autoit] [autoit][/autoit] [autoit]
msgbox(0,"",$dir)Func _FileSelectFolder ($title, $root = 0, $flags = 0, $hwnd = 0)
[/autoit]
Local $ret, $pidl, $res = ''
; Creating Structures
Local $ubi = DllStructCreate ("hwnd;ptr;ptr;ptr;int;ptr;ptr;int") ; structure BROWSEINFO
Local $utl = DllStructCreate ("char[512]") ; Browse title
Local $urs = DllStructCreate ("char[260]") ; Buffer for path (MAX_PATH size)
;Local $ulf = BitOR (BitShift(BitAnd ($flags,1),-9), _ ; 1: NOT show Create Folder Button
; BitShift(BitAnd ($flags,2),-5), _ ; 2: Use New Dialog Style
; BitShift(BitAnd ($flags,4),-2)) ; 4: Show Edit Control
Local $ulf = BitAnd ($flags, $BIF_ALLOLDSTYLEFLAGS) ; Supported flags
; Filling structures
DllStructSetData ($utl, 1, $title)
DllStructSetData ($ubi, 1, $hwnd)
DllStructSetData ($ubi, 3, DllStructGetPtr($urs))
DllStructSetData ($ubi, 4, DllStructGetPtr($utl))
DllStructSetData ($ubi, 5, $ulf)
$ret = DllCall ("shell32.dll", "ptr", "SHGetSpecialFolderLocation", _
"int", 0 , _
"int", $root , _
"ptr", DllStructGetPtr($ubi, 2))
If $ret[0] Then Return $res
; Start browse window
$pidl = DllCall ("shell32.dll", "ptr", "SHBrowseForFolder", "ptr", DllStructGetPtr ($ubi))
If $pidl[0] Then
$ret = DllCall ("shell32.dll", "int", "SHGetPathFromIDList", _
"ptr", $pidl[0], _
"ptr", DllStructGetPtr ($urs))
If $ret[0] Then $res = DllStructGetData ($urs, 1)
DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", $pidl[0]) ; clear memory
EndIf
DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", DllStructGetData ($ubi, 2))
Return $res
EndFuncLösungsmöglichkeit 2 (muss ich morgen nachreichen...): --> finde ich leider nicht mehr wieder !
-
Ohne das wir den Inhalt der Variablen $progbin und $sProcess kennen, ist es für uns unmöglich zu helfen.
Mal vom Parameter "/A:$(#OKF" & $impfilearraysplit[1] & ")\ARCHIV/F:" & $eimport & "\" & $impfilearray[$k] & " /SHR /BAT" abgesehen. Hier kann man, ohne das dazugehörige Programm und die Array-Inhalte zu kennen, gar nichts sagen.Gruß
Micha_he -
Wo braucht mein Script eine IP-Range ?
Den 'sitename', da gebe ich Dir Recht. Vielleich kannst Du ihn aus der Registry lesen ?
-
Wir kommen der Sache näher. Die DC's des Standortes sollte folgendes ermitteln:
[autoit]$sSite = "sitename"
[/autoit][autoit][/autoit][autoit]$oRootDSE = ObjGet("LDAP://RootDSE")
[/autoit][autoit][/autoit][autoit]
$sCNC = $oRootDSE.get("configurationNamingContext")$cServers = ObjGet("LDAP://cn=Servers,cn=" & $sSite & ",cn=Sites," & $sCNC)
[/autoit][autoit][/autoit][autoit]For $oServer In $cServers
[/autoit]
Msgbox(0,"DC des Standortes '" & $sSite & "'",$oServer.Name)
NextWelche der möglichen DC's der Client wählt, ist mir noch unklar. Wahrscheinlich den der zuerst anwortet.
Gruß
Micha_he -
Wobei dann in der Liste der DC, alle eine NETLOGON-Freigabe haben sollten, die durch Replikation auch alle gleich sind.
Also such Dir einen aus!Jedenfalls bei uns...
-
Per DNS-Abfrage:
z.B.:
- nslookup
- set q=srv
- _ldap._tcp.dc._msdcs.{domain_name)So sollte es klappen, wobei ich das z.Zt. mangels Domäne nicht testen kann. Ich bin zu Haus !
Edit: Geprüft - Geht ! -
sonst würde ja uac auch nicht funktionieren, wenn ich ein Programm in einer freigabe mit "als administrator starten" ausführe...
Ich meine mit meiner Aussage nicht die UAC, sondern den AutoIt-RunAs-Befehl. Für den gilt das nicht !
Der übergebene User, egal ob Domäne oder Lokal, muss die Berechtigung für die Freigabe haben und falls ein Netzlaufwerk verwendet wird, muss die Pfadangabe durch den UNC-Pfad ersetzt werden.