DriveMapGet()
sooo einfach ... haett ich doch noch etwas laenger in der hilfe wuehlen sollen ...
danke euch beiden ...
so long
sam
DriveMapGet()
sooo einfach ... haett ich doch noch etwas laenger in der hilfe wuehlen sollen ...
danke euch beiden ...
so long
sam
hi eagle,
sorry, aber der link geht zu ner google seite mit ner fehlermeldung ...
sam
... geht das direkt mit autoit oder braucht man ein hilfsprograemmchen?
danke
so long
sam
hi,
viele meiner scripte nutzen den RunAsSet aufruf um die dinger mit admin-rechten zu starten.
jetzt musste ich festellen, dass es die function nicht mehr gibt, und wohl durch RunAs ersetzt wurde.
kann das sein???
RunAsSet konnte ich am anfang des scriptes plazieren und mit RunAsSet() beenden, jetzt muss ich wohl
jeden einzelnen befehl im script mit RunAs aufrufen???
oder gibt es jetzt einen ersatz fuer RunAsSet und RunAsSet() der ganz anders heisst?
so long
sam
hallo,
ich habe ein problem, das vermutlich gar nix mit autoit ansich zu tun hat, aber vielleicht kann mir trotzdem jemand weiter helfen.
und zwar habe ich mir ein script gebastelt, mit dem ich die icons von ordnern ändern kann. das ganze basiert auf dieser anleitung:
[ offen ] Ordnericon ändern
das script funktioniert soweit auch prima. allerdings scheitert es bei den beiden system-ordnern c:\winnt und c:\winnt\system32.
diese lassen sich weder durch das original-script vom kollegen progandy ändern, noch durch mein eigenes script.
entscheidend an den scripts ist der dll-aufruf der shlwapi.dll
$temp = DllCall("shlwapi.dll","int","PathMakeSystemFolder","str",$path)
der scheint auf die system-ordner keine wirkung zu haben (weil sie eh schon system-ordner sind?)
hat sich einer von euch schon mal mit diesem thema beschäftigt, hatte eventuell das selbe problem und weiss eventuell sogar eine lösung?
wäre klasse.
danke schon mal
sam
mmmmmm ...
hab ich die hilfe wohl doch nicht so ganz genau gelesen ... oder nicht verstanden ... das mit dem fileopen hat nach 'meiner' methode auch funktioniert ...
aber so isses natuerlich richtig ... und funktioniert ...
vielen dank euch beiden ... schnelle hilfe fuer mein problem ...
so long
sam
sorry ...
ich hatte hier im forum das beispiel nur so schnell reingeklopft ... ohne nachzudenken ... natuerlich habe ich die hilfe gelesen und in meinem script schaut es auch eher so aus:
$file='c:\temp\test.txt'
fileopen($file,2)
filewriteline($file,'zeile1')
filewriteline($file,'zeile2')
filewriteline($file,'zeile3')
fileclose($file)
filesettime($file,'20020202020200',0)
filesettime($file,'20020202020202',1)
filesettime($file,'20020202020202',2)
funktioniert aber trotzdem nicht ...
sam
hallo leute,
ich habe ein kleines problem mit fileopen/fileclose ...
in meinem script lege ich mit der funktion
fileopen('c:\temp\test.txt',2)
die datei test.txt neu an ... dann kommen einige filewriteline's dazu und schliesslich mach ich die datei mit
fileclose('c:\temp\test.txt')
wieder zu ...
nun moechte ich aber noch mit
filesettime('c:\temp\test.txt','20080202',0)
das datum der datei aendern ... geht aber nicht, weil mein script die datei noch im wuergegriff hat oder fileclose nicht wirklich die datei schliesst und frei gibt ...
mach ich das mit dem fileopen/fileclose und filesettime in zwei scripts nacheinander, dann gehts ... will ich aber so nicht machen ...
weiss jemand, ob das ein bug in autoit ist oder ob ich im script noch was einbauen muss, damit filesettime auf die datei zugreifen kann?
thx und so long
sam
hi bugfix,
vielen dank für die ausführliche hilfe. freut mich sehr.
wenn ich deine beispiele laufen lasse, dann machen die schon das, was ich prinzipiell will. doch wenn ich versuche, das auf mein script zu 'übertragen' dann happerts doch noch ein bischen mit meinen fähigkeiten.
ich lese mir ja eine liste mit dateinamen ein, die ich dann in abgekürzter form als menüpunkte für einen 'nicht wirklich sichtbaren gui' verwende. das mit dem nicht sichtbaren gui ist ein kunstgriff, den ich auch hier aus dem
forum habe, um bei meinem trayicon auf der linken und rechten mouse-taste unterschiedliche menues zu erhalten. mit der linken mouse-taste erscheint das menue des gui's bestehend aus der abgekürzten file-liste, mit der rechten mouse-taste kommt ein trayicon-standard-menue mit nur einem punkt (exit). das funktioniert soweit einwandfrei.
ich krieg aber immer noch nicht die übergabe 'meiner array-informationen' an die func hin, was aber ja doch funktioniert. du hast es ja bewiesen. es kann also nur noch an irgendwelchen syntax-feinheiten liegen, die ich einfach ums verrecken nicht schnalle. :wacko:
aber jetzt mach ich hier erstmal feierabend, geh nach haus, drink ein zwei bierchen
... und vielleicht klappts dann besser. ![]()
danke nochmal.
bis später
so long
sam
ps: thx auch an greenhorn ...
hi bugfix,
sorry, hab beim ersten probieren deines scripts nicht gleich geschnallt, was es macht. funktioniert soweit natuerlich.
aber: wenn ich es bei mir so mache, wie in deinem beispiel, muss ich im script soviele func erzeugen, wie ich dateien einlese. der witz an meinem script sollte sein, dass ich das script gar nicht mehr anfassen muss, sondern das ganze durch hinzufügen neuer dateien SESSION.BCSE.123 im verzeichnis xx erweitert wird.
PS: jetzt warst du schneller ...
hallo leute,
danke für die schnellen antworten. leider noch nicht das dabei, was ich brauche bzw. für mich umsetzen kann. und nachdem zwei von euch gesagt haben, dass ihr noch nicht so recht wisst, was ich eigentlich will, hier einfach mein script und nochmal der versuch zu erkären, was es macht bzw nicht:
AUTOITSETOPTION('TRAYICONHIDE', 0)
AUTOITSETOPTION('TRAYMENUMODE', 1)
AUTOITSETOPTION('TRAYONEVENTMODE',1)
AUTOITSETOPTION('GUIONEVENTMODE', 1)
#INCLUDE<FILE.AU3>
#INCLUDE<ARRAY.AU3>
#INCLUDE<CONSTANTS.AU3>
#INCLUDE<GUICONSTANTS.AU3>
TRAYSETTOOLTIP('COMPARE')
TRAYSETCLICK( ' 8') ; die acht steht hier nur in hochkomma, weil hier sonst ein smiley draus wird
TRAYSETSTATE( )
$FILELIST=_FILELISTTOARRAY(@SCRIPTDIR&'\XX','SESSION.BCSE.*',1)
_ARRAYSORT($FILELIST, 0,1)
$NAMELIST=_ARRAYTRIM($FILELIST,13,0)
$L=GUICREATE('L',1,1,@DESKTOPWIDTH+1,@DESKTOPHEIGHT+1,$WS_POPUP,$WS_EX_TRANSPARENT+$WS_EX_TOOLWINDOW)
$X=GUICTRLCREATECONTEXTMENU()
FOR $I=2 TO $FILELIST[0]
GUICTRLCREATEMENUITEM($NAMELIST[$I],$X)
GUICTRLSETONEVENT(-1,'Y')
NEXT
GUISETSTATE()
TRAYSETONEVENT($TRAY_EVENT_PRIMARYDOWN,'L')
TRAYCREATEITEM('EXIT')
TRAYITEMSETONEVENT(-1, 'R')
WHILE 1
SLEEP(100)
WEND
FUNC L()
CONTROLCLICK($L,'','','RIGHT')
ENDFUNC
FUNC Y(ByRef $I)
msgbox(0,'',$FILELIST[$I])
;FILESETATTRIB(@SCRIPTDIR&'\SESSION.BCSE','-RA')
; FILECOPY(@SCRIPTDIR&'\XX\'&$FILELIST[$I],@SCRIPTDIR&'\SESSION.BCSE',1)
; RUNWAIT(@SCRIPTDIR&'\BC2.EXE')
;FILESETATTRIB(@SCRIPTDIR&'\SESSION.BCSE','-RA')
; FILECOPY(@SCRIPTDIR&'\XX\SESSION.BCSE.000',@SCRIPTDIR&'\SESSION.BCSE',1)
ENDFUNC
FUNC R()
EXIT
ENDFUNC
das script liesst aus einem unterverzeichnis xx dateinamen ein, als da wären
SESSION.BCSE.000
SESSION.BCSE.BIN
SESSION.BCSE.CRC
SESSION.BCSE.STD
usw.
diese namen kürzt es zu
000
BIN
CRC
STD
usw.
daraus enstehen menüpunkte für ein trayicon.
je nachdem, welchen menüpunkt man wählt, sollen die dazugehörigen dateien üder die func y kopiert werden.
aber hier scheitert die zuordnung.
jetzt etwas klarer, was ich mach bzw. vor hab?
so long
sam
hallo,
seit ein paar stunden kämpfe ich schon wieder mit einem (wahrscheinlich) anfängerproblem:
array an func übergeben und mit den werten des arrays in der func arbeiten
das hab ich vor:
hab ein array mit acht werten eingelesen.
mit diesen werten erzeuge ich in einem gui menü-punkte
$menue_punkte=GUICtrlCreateContextMenu()
FOR $I=1 TO 8
GUICtrlCreateMenuitem ($my_array[$I],$menue_punkte)
GUICtrlSetOnEvent (-1,'machwas')
NEXT
beim clicken auf die einzelnen menüpunkte soll das script in die func machwas springen und dann mit den einzelnen werten des array weiter arbeiten:
func machwas()
msgbox(0,'info',$my_array[$I])
endfunc
so ähnlich hab ich mir das gedacht, aber irgendwie fehlt im die zuordnung der einzelnen werte des arrays.
ich hoffe, ich hab einigermassen verständlich erklärt, was mein problem ist. mein eigentliches script ist noch etwas komplizierter.
wo liegt mein fehler?
danke
so long
sam
by the way: ein kollege im englischen forum hatte diese idee ...
#include <Constants.au3>
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1)
TraySetClick(18)
Global $Tray[11], $state = 2
TrayCreateItem("")
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "TrayEvent")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "TrayMenuLeftClick")
TraySetOnEvent($TRAY_EVENT_SECONDARYDOWN, "TrayMenuRightClick")
TraySetState()
While 1
Sleep(100)
WEnd
Func TrayMenuLeftClick()
If $state = 0 Or $state = 2 Then
$state = 1
For $i = 6 to 10
TrayItemDelete($Tray[$i])
Next
For $i = 1 to 5
$Tray[$i] = TrayCreateItem("1st Menu Item - " & $i, -1, $i -1 )
TrayItemSetOnEvent(-1, "TrayEvent")
Next
EndIf
EndFunc
Func TrayMenuRightClick()
If $state = 1 Or $state = 2 Then
$state = 0
For $i = 1 to 5
TrayItemDelete($Tray[$i])
Next
For $i = 6 to 10
$Tray[$i] = TrayCreateItem("2nd Menu Item - " & $i - 5, -1, $i - 6)
TrayItemSetOnEvent(-1, "TrayEvent")
Next
EndIf
EndFunc
Func TrayEvent()
MsgBox(0, "", TrayItemGetText(@TRAY_ID))
If TrayItemGetText(@TRAY_ID) = "Exit" Then Exit
EndFunc
funktioniert auch, das mit dem unsichtbaren gui gefaellt mir aber besser ...
so long
sam
hi progandy,
![]()
DANKE!!! das mit dem unsichtbaren gui war die entscheidende idee ... ![]()
jetzt klappt das auch, wie ich es haben will ...
so long
sam
![]()
hallo leute,
also nur mit traysetklick komme ich nicht weiter. vielleicht stell ich mich auch nur zu bloed an ...
hat das, was ich geschildert hab, noch keiner gemacht?
sam
hi mignon,
traysetclick setzt mir doch generell ein menue auf die linke ODER die rechte mouse-taste???
in klitzekleines beispiel wuerde mir eventuell reichen, wie ich auf einem icon links ein anderes menue als rechts bekomme. denn momentan steh ich etwas aufm schlauch.
danke
sam
hallo,
ich experimentiere grad mit den trayfunctions herum und komm nicht weiter:
ich möchte ein trayicon erzeugen, welches beim click mit der linken mouse-taste ein menue zeigt, beim click mit der rechten mouse-taste ein anderes menue.
klingt einfach, aber ich komm nicht drauf.
danke fuer eure hilfe
sam
hi mega, hi peethebee,
tsa ... haett ich erstmal wieder nach der aktuellsten version geschaut ... und die erstmal ausprobiert ... dann haett ich nicht so bloed fragen brauchen ...
mit der aktuellsten version hat sich das mit dem "allow decompilation" erledigt ... taucht gar nicht mehr auf ...
trotzdem danke an euch und der schnellen hilfe ...
so long
sam
hi mega,
save only klicken? hab ich nocht nicht ganz geschnallt, was du meinst.
sam
hallo,
beim start der aut2exe ist bei "allow decompilation" standardmässig der haken gesetzt. lässt sich das eventuell deaktivieren? durch einen eintrag in der registry? oder durch einen start-parameter?
danke.
so long
sam