Vielen Dank für Deine Antwort!
Dein Vorschlag klappt dann, wenn ich die xxx.exe in das Verzeichnis C:\Windows kopiere.
Wie könnte man denn das Programm veranlassen, in einem anderen Verzeichnis zu suchen?
Beiträge von DOheim
-
-
Unter
[ gelöst ] Namen einer exe datei gehen
habe ich dieses Programm gefunden, mit welchem man eine .exe an das Startmenü anheften kann.
Mit "Explorer.exe" und "Notepad.exe" klppt das auch prima.
Aber wenn ich mein eigens Programm xxx.exe anheften will kommt:
The requested action with this object has failed.:
$oVerbs = $oItem.Verbs
$oVerbs = $oItem.Verbs^ ERROR
>Exit code: 1Wie muss ich es richtig anstellen?
[autoit]
[/autoit]
;$sProgramname = "Explorer.exe"
;$sProgramname = "Notepad.exe"
$sProgramname = "D:\Arbdat\xxx.exe"
$sKontext = "An Startmenü anheften"
;$sKontext = "Vom Startmenü lösen"
;$sKontext = "Eigenschaften"
$oShell = ObjCreate("Shell.Application")
$oFolder = $oShell.NameSpace(@WindowsDir)
$oItem = $oFolder.ParseName($sProgramname)
$oVerbs = $oItem.Verbs
For $verb In $oVerbs
$verbname = StringReplace($verb.name, "&", "")
;ConsoleWrite($verbname) ; Hier kannst du alle Kontexteinträge in die Konsole schreiben lassen. Nicht nötig fürs Programm
If $verbname = $sKontext Then
$verb.DoIt
EndIf
Next -
Recht vielen Dank Oscar und Chesstiger für Eure hilfreichen Antworten.
Ich hatte gar keine Antworten mehr erwartet. Das hilft mir jetzt sehr!
Zufällig hat Oscar zu gleichen Zeit seine Antwort verfasst wie ich meine.
Nochmals vielen Dank! -
Recht vielen Dank für Deine Antwort !
Ja, ich habe den Adobe Flash Player und den Adobe Reader.
Obwohl ich Win 7 habe , habe ich es gemäß Deinem Link auch mit re.exe versucht. Mit dem gleichen Ergebnis.
Ich habe auch den Registry System Wizard heruntergeladen. Aber meines Erachtens kann man mit diesem die Registry nicht anzeigen. -
Wenn ich das Beispiel aus der AutoIt-Hilfe von der Funktion RegEnumKey abarbeite, werden Schlüssel angezeigt, die es unter HKEY_LOCAL_MACHINE\SOFTWARE gar nicht gibt. (siehe Anlage)
Als erstes wird z.B. Adobe angezeigt.
[autoit]For $i= 1 to 10
[/autoit]
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
If @error <> 0 then ExitLoop
MsgBox(4096, "SubKey #" & $i & " under HKLM\Software: ", $var)
Next -
Recht herzlichen Dank !!!!!!
Es funktioniert. -
RegRead klappt einwandfrei:
MsgBox(0,"1",RegRead("HKEY_CLASSES_ROOT\.txt",""))
MsgBox(0,"2",RegRead("HKEY_CLASSES_ROOT\.txt","Content Type"))Aber mit RegWrite tut sich in der Registry nichts und @error ist =1:
MsgBox(0,"3",RegWrite ("HKEY_CLASSES_ROOT\.lli","xxx","REG_SZ","lli_text")&"::"&@error)
MsgBox(0,"4",RegWrite ("HKCR\.lli","xxx","REG_SZ","lli_text")&"::"&@error)An was kann das liegen? Habe Win 7.
-
Vielen Dank für die schnelle Antwort!
Ich hatte im AutoIt-Forum nach Clipboard gesucht.
Da waren diese Beiträge nicht dabei.
Ich hätte nach Zwischensbvlage suchen sollen.
Jedenfalls bin ich Dir sehr dankbar.
Jetzt weiß ich, wo es lang geht.
Viele Grüße
Dieter -
Ich kapiere die _Clipboard-Funktionen nicht.
Ich bringe beispielsweise aus dem mspaint-Fenster einen Bildausschnitt (mit "kopieren") in die Zwischenablage. Ich nehme an, dass er die Bitmap-Form hat.
Wie kann ich diesen dann in meinem Programm lesen? Alle Beispiele behandeln nur Clipboard-Texte.
Rech vielen Dank schon mal im Voraus!
-
Vielen Dank Andy für Deine Antwort und die Mühe ! ! !.
Ich möchte nicht nach Zeichen suchen und diese dann ersetzen, sondern gezielt Zeichen an einer bestimmten Position einsetzen.
Ich muss also im Parameter "searchstring/start" nicht searchstring sondern start verwenden.
StringReplace ( "string", "searchstring/start", "replacestring" [, occurrence [, casesense]] )
-
Recht vielen Dank für die Antwort.
Ein Aufruf von StringReplace benötigt ca 0.05 Sekunden, wie man an untenstehendem Programm nachvollziehen kann.
Bei 10.000 Eintagungen und mehr kommt da eine erhebliche Zeit zusammen. -
Unter
[ offen ] Funktion StringReplace ist schrecklich langsam
hatte ich gefragt:Funktion StringReplace ist schrecklich langsam
Ich habe einen String ($feld), der 24 MByte lang ist.
In diesen möchte ich tausende kleine Strings einfügen (überschreiben). Da aber mit der Funktion StringReplace jedes Mal der gesamte String $feld umgespeichert wird, dauert der Prozess ewig lange. Das Umspeichern ist gar nicht notwendig, da $feld sich ja in seiner Länge nicht ändert.
Gibt es eine Möglichkeit, die kleinen Strings an Ort und Stelle einzufügen, ohne dass $feld umgespeichet wird?chesstiger hatte so geantwortet:
Hier wäre es wohl am einfachsten, wenn du auf eine C/C++-Dll zurückgreifst. Da solltest du den String bequem einzeln auseinander nehmen können
Meine Frage ist nun:
Weiß jemand, wo ich eine solche DLL finde?
Vielen Dank schon mal im Voraus! -
Recht vielen Dank für Euere Antworten.
Ein Aufruf von StringReplace benötigt ca 0.05 Sekunden, wie man an untenstehendem Programm nachvollziehen kann.
Bei 10.000 Eintagungen und mehr kommt da eine erhebliche Zeit zusammen.
Ich habe bisher noch nicht mit einer DLL gearbeitet. Wie muss ich das anstellen? Für eine Anleitung wäre ich sehr dankbar!; ==========================================================================
Global $Protokoll1=2 ; =2, dann wird protokolliert
; =0, dann wird nicht protokolliert
$ProgrammName="Test" ; für Fehlerausschriften
Protokoll("Anfang")
;-------------------------------------------------------------------------
Local $feld1=""
Local $feld2=""
For $i=0 To 1000
$feld1=$feld1&"123456789012345678901234"
Next
For $i=0 To 1000
$feld2=$feld2&$feld1
Next
Protokoll("vor1")
Protokoll("vor2")
StringReplace($feld2,1000,"abcdefg")
Protokoll("nach1")
Protokoll("nach2")
Func Protokoll($protstelle)
Global $protbegin
Local $protpfad,$protdif, $protfile
$protpfad=EnvGet("AU")&"\Protokoll.txt"
If $Protokoll1<>0 Then
If $Protokoll1=2 Then
$protbegin = TimerInit()
$protdif=0
FileDelete($protpfad)
Else
$protdif = TimerDiff($protbegin)
Endif
$protfile = FileOpen($protpfad, $Protokoll1)
If $protfile=-1 Then xbox("Fehler open Protokoll")
If $Protokoll1=2 Then
FileWrite($protfile,"Programmname: "&$Programmname& @CRLF)
FileWrite($protfile, @YEAR&"/"&@MON&"/"&@MDAY&" "&@HOUR&"/"&@MIN&"/"&@SEC& @CRLF)
Endif
FileWrite($protfile, StringLeft ($protdif/1000,8)&" "&$protstelle & @CRLF)
FileClose($protfile)
$Protokoll1=1
If StringMid($protstelle,1,7)="**copy:" Then
Run(@ComSpec & " /c " & 'copy ""'&$protpfad&'"" '&StringMid($protstelle,8))
EndIf
Endif
EndFunc
; ========================================================================== -
Ich habe eine String ($feld), der 24 MByte lang ist.
In diesen möchte ich tausende kleine Strings einfügen (überschreiben). Da aber mit der Funktion StringReplace jedesmal der gesamte String $feld umgespeichert wird, dauert der Prozess ewig lange. Das umspeichern ist gar nicht notwendig, da $feld sich ja in seiner Länge nicht ändert.
Gibt es eine Möglichkeit, die kleinen Strings an Ort und Stelle einzufügen, ohne dass $feld umgespeichet wird?
Für einen guten Rat wäre ich sehr dankbar!
-
Es Klappt.
Recht vielen Dank !!!
-
Ich weiß das es das gibt, aber ich komme nicht mehr darauf:
Wie kann man bewirken, dass eine Funktion stets bei Programmbeendigung und auch bei Programmabbruch ausgeführt wird?
Vielen Dank schon mal im Voraus !!!!!!!!!
-
Vielen Dank für die Antwort.
Wenn ich die Datei AutoIt3.chm mit hh.exe aufrufe, dann klappt das Scrollen.
Eben nicht wenn ich mit dem SciTE-Editor aufrufe. -
Wenn ich im SciTE-Editor oben auf Help klicke, erscheint die AutoIt-Hilfe.
In diesem Fenster funktioniert nicht das Srollen mit dem Mausrad.
Habe ich die Hilfe fehlerhaft installiert?
Vielen Dank schon mal im Voraus für eine Antwort.
-
Nochmals vielen Dank!
Wenn ich oben auf den Button "Code kopieren" klicke, wird doch tatsächlich so ein Kohl kopiert (siehe Anlage).
Ich habe das Programm dann über markieren und kopieren übernommen, und jetzt klappt es prima.
Das ist ja ein schönes Programm. Darf ich die Funktion in mein Programm einbauen?
Gruß Dieter
-
Vielen Dank für die schnelle Antwort, lieber AspirinJunkie!
Das ist ja ein ganz schön kompliziertes Programm.
Ohne es im Einzelnen zu verstehen, wollte ich es abarbeiten, aber es bringt einen Fehler, weil es z.B. OrOr nicht kennt (siehe Anlage).
Außerdem wollte ich in der Hilfe nachsehen, was Static bedeutet. Da kommt aber ein Warnhinweis. Was bewirkt Static?
Für eine weitere Antwort wäre ich Dir sehr dankbar.