Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

AHK Code Optimieren , WinCE


  • Please log in to reply
55 replies to this topic
Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo lasso

 

Erst mal danke

 

Es will so nicht , wahrscheinlich wegen WinCE

34r96jd.jpg

 

 

Gruß Manni



lasso
  • Members
  • 111 posts
  • Last active: May 19 2013 04:19 PM
  • Joined: 02 Nov 2012

hää was ???

 

will es denn so?

if(ssp == 0){
  Loop {
    If(WinExist("GoPal Navigator") || A_index > 3000){
      break
    }
    sleep, 500
  }
  Process, Close, ssp.exe
}


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Nein lasso , Fehlermeldung kommt zwar nicht mehr aber es
zählt nicht die Zeit 3000 runter , habe bestimmt 12 Minuten gewartet und dann
die Zahl 3000 durch 300 ersetzt , beendet das Tool auch nicht , wenn ich die
Navigation starte wird das Tool schon beendet .



 

Auf meine stümperhafte Art und Weise geht es , für 20000
braucht es c. a. 9 Minuten , ist aber bestimmt Prozessorleistung abhängig
obwohl es nur 60% Last anzeigt , die alten Navis haben alle 400 MHz und die
neueren mit 600 MHz werden es unter 6 Minuten auch nicht schaffen , ist nicht
schön aber es geht .


 

Vielleicht findest Du oder ihr noch eine  Lösung für WinCE


 

Gruß Manni   

 

if(ssp == 0){
Loop
{
zahl := Zahl + 1
if zahl > 20000
ExitApp
IfWinExist, GoPal Navigator
break 
}
Process, Close, ssp.exe
}

 

  



lasso
  • Members
  • 111 posts
  • Last active: May 19 2013 04:19 PM
  • Joined: 02 Nov 2012
if(ssp == 0){
  Loop 1500 {
    IfWinExist, GoPal Navigator
      break
    sleep, 1000
  }
  IfWinExist, GoPal Navigator
    Process, Close, ssp.exe
  else
    ExitApp
}


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012


 

Danke lasso


 

Das klappt prima .

 

Ich musste nur den Sleep auf 350 anstatt 1000 setzen , das
sind dann bei mir auf 400 MHz 9Minuten 30 Sekunden , bei 1000 habe ich nach 20
Minuten abgebrochen , wäre aber auch egal gewesen  ob 10 oder 20 Minuten , es geht ja nur darum das wenn die
Navigation nicht gestartet wird weil man andere Tools im StartMenu startet ,
das dieses Opti_Speicher_LUA Tool nicht permanent weiterläuft .


 

Vielleicht mach ich das irgendwann anders , z. B. das dieses
Opit_Speicher_LUA Tool beenden wird wenn das StartMenu gestartet wird und ein
Button außer Navigation betätigt wird , das wird aber mit Sicherheit ganz schön
verzwickt .

 

Gruß Manni



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle

Ich wollte nicht extra ein neuen Thread auf machen .

Ich brauche mal wieder bitte eure Hilfe , das mit den Parameter werde ich wohl nie schnallen .

Habe alles soweit mit dem CAB Installer am laufen nur startet wceload.exe die ausgewählte CAB nicht , wahrscheinlich weil die Parameter so nicht übernommen werden , eine Zeile darüber als Beispiel in MortScrip funktioniert es .

Und noch eine Sache , falls ich die FileSelectFile durch Klick auf X abbreche , wie kann ich das zuvor angelegten File mnavdce.exe wieder löschen und ein Shutdown 2 auslösen ? so was wie IfMsgBox No ?
So wie jetzt beendet es den CAB Installer sofort .


wceload.exe Parameter
http://msdn.microsof...y/ms933760.aspx


Edit: 6:44
Das nicht erzeugen des Files mnavdce.exe und aussteigen aus diesem CAB Installer wenn in FileSelectFile auf X geklickt wird habe ich schon .

Direkt nach FileSelectFile sieh Script-Schnipsel  , ein Shutdown 2 wäre nicht Optimal weil beim Neustart des Navi ich wieder dort lande , ist ja eigentlich auch richtig aber nicht in diesem Fall , nur wenn ich Hartware Resten mache .

 

If ( CAB_File = "" ){
MsgBox,262144,, Suche durch Benutzer abgebrochen.
run, \Windows\Explorer.exe
ExitApp
}
 

 

 

 

Gruß Manni



; AutoRunCE  V.1

#Persistent
#NoEnv
#SingleInstance force
#NoTrayIcon


CAB_Inst := "CAB Installer"
Ver := " V. 1"
CAB_File := "\Storage Card\*.cab"
pfad = %A_WorkingDir%


If Not(FileExist("\My Flash Disk\Menu.exe")){
    FileSelectFile, CAB_File, 0,%CAB_File%,%CAB_Inst% %Ver% , *.cab
    
    If  ( CAB_File = "" ){
        MsgBox,262144,, Suche durch Benutzer abgebrochen.
        run, \Windows\Explorer.exe
        ExitApp
    }

    FileCreateDir, \My Flash Disk\Navigation
    FileAppend,,\My Flash Disk\Navigation\mnavdce.exe

; Run, ( \Windows\wceload.exe", '/noui /delete 0 "' &CAB_File& '"' ) ; so sieht es in MortScript aus
    Run, \Windows\wceload.exe %CAB_File% /noui /delete 0
}

;Shutdown 2
;ExitApp

 


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Ich habe es dank euern alten Forum mit Suchen  Run, *\*.exe  geschafft .

 

RunWait, \Windows\wceload.exe /noui` /delete 0` "%CAB_File%"

 

 

Vielleicht ist es noch nicht Optimal aber es funktioniert , auch /delete 0 funktioniert , sonst löscht WinCE die installierte CAB .

 

RunWait muss auch sein sonst macht das Navi ein Reset ( Shutdown 2 ) bevor die CAB fertig installiert ist .

 

 

Seht nur zu das dass alte Forum erhalten bleibt , zumindest bis hier auch in etwa  alles zu finden ist .

 

Gruß Manni



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle

 

Ich habe hier noch ein Problem , ist nicht wichtig wäre aber schön wenn es ginge .

 

Wenn ich dies als Mehrfachauswahl mache mit M bleibt es mit einfache Auswahl.

Ich glaube das ist wegen WinCE , gibt es da noch eine andere Möglichkeit ?

FileSelectFile, CAB_File, M,%CAB_File%, %Art%,*.cab

 

Könnt ihr mir bitte noch mal helfen ?

 

Wenn ihr euch wundert wegen den ersten FileSelectFile, mit *.ca

Wir haben im TeamSkin umbenannte CAB in ca , die lassen sich trotzdem installieren .

 

 

Gruß Manni

 

 

 

; CAB Installer  V.1.1

#Persistent
#NoEnv
#SingleInstance force
#NoTrayIcon

CAB_Inst := "CAB Installer"
Ver := " V. 1.1"
CAB_File := "\Storage Card\*.cab"
pfad := "\My Flash Disk\Programme\"
Art := "CAB wählen"

Gui -MinimizeBox
Gui, Font         , s20, Arial
Gui, Show, x0  y0  w478 h247, %CAB_Inst% %Ver%
neu:

      If(FileExist("\Storage Card\28\*.ca")){
      FileSelectFile, CAB_File, 0,%CAB_File%, %Art%,*.cab;*.ca
      }
      Else{
      FileSelectFile, CAB_File, 0,%CAB_File%, %Art%,*.cab
      }
     
      If  ( CAB_File = "" ){
         MsgBox,262144,, Suche durch Benutzer abgebrochen.
         ExitApp
      }

            If  ( CAB_File = "\Storage Card\MNAVDCE.CAB" ){
               MsgBox,262144,, Die MNAVDCE dient nicht zur Installation !
               GoTo, neu
            }

      Gui, Add, Text      , y60      x15       w460 ,  Bitte warten, CAB wird installiert,`ndanach wird das Navi neu gestartet.
      RunWait, \Windows\wceload.exe /noui` /delete 0` "%CAB_File%"


Shutdown 2
;ExitApp

 


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012
Kann es sein das hier die Beschreibung für On Off vertauscht sind ?
 
StringCaseSense, On|Off|Locale
http://ragnar-f.github.com/docs/commands/StringCaseSense.htm
 
Deutsche Beschreibung
http://ragnar-f.github.com/docs/commands/index.htm
 
 
ich musste weil ich auf Verschiedene Install SD Karten 
mnavdce.cab oder MNAVDCE.CAB habe 
 
StringCaseSense, On
 
einsetzen damit das hier immer erfüllt ist
 
 
neu:
;--
;--
;--

If ( CAB_File = "\Storage Card\mnavdce.cab" ){

MsgBox,262144,, Die MNAVDCE dient nicht zur Installation !

If A_ScreenWidth = 320

{

ExitApp

}

GoTo, neu

}
;--
;--
;--
Shutdown 2
 
 
Also bei Auflösung 320 ins ExitApp , bei höhere Auflösung von vorn anfangen , auf keinen Fall Shutdown 2.
 
Mitt StringCaseSense, Off
 
läuft es ins  Shutdown 2 je nach dem  ob mnavdce.cab oder MNAVDCE.CAB in der SD Karte steckt .
 
Gruß Manni


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

Hallo alle

 

Da Multiple Auswahl auf WinCE anscheint nicht geht habe ich mir selbst diese Funktion gebastelt , wahrscheinlich noch nicht optimal .

FileSelectFile, CAB_File, M,%CAB_File%, %Art%,*.cab ; geht nicht auf WinCE

 

Das funktioniert auch alle .  

 

Nur weis ich nicht genau wie ich den an einem Stück zusammenhängenden String an RunWait übergeben muss .

 

In der Variable oder String CAB_File3 sieht es so aus nach vier CAB auswahlen , alles an einem Stück zusammenhängend .

RunWait müsste dann vier mal durchlaufen mit einem Teil-String von \Storage ------ biss .cab .

Muss ich den  String CAB_File3 vorher in vier Teile teilen , oder geht das einfacher ?

 

Habe mir den String CAB_File3  als Text abspeichern lassen

 

\Storage Card\23\feature3DView\feature3DView_xxxxxxxxx_xx_x.cab\Storage Card\23\featureDriverAlerts\featureDriverAlerts_xxxxxxxxx_xx_x.cab\Storage Card\23\featureMultipleRoutes\featureMultipleRoutes_xxxxxxxxx_xx_x.cab\Storage Card\23\featureNavteqTrafficEU\featureNavteqTrafficEU_xxxxxxxxx_xx_x.cab

 

 

 

ich habe in Scrip das Loop und so weiter noch auskommentiert wo diese Sache eingefügt werden müsste .

 

Könnt ihr mir bitte mal wieder auf die Sprünge helfen ?

 

Gruß Manni

 

2rp73om.jpg

 

 

 

 

; CAB Installer  V.1.3

#Persistent
#NoEnv
#SingleInstance force
#NoTrayIcon

StringCaseSense, On

CAB_Inst := "CAB Installer"
Ver :=      " V. 1.3"
CAB_File := "\Storage Card\*.cab"
pfad :=     "\My Flash Disk\Programme\"
Art :=      "CAB wählen"
Mult := 0

Gui -MinimizeBox
Gui, Font        , s20, Arial
;Gui, +OwnDialogs
    
If A_ScreenWidth = 480
{
    Gui, Show       , x0  y-25  w478 h272, %CAB_Inst% %Ver%
    Gui, Font        , s13, Arial
    Gui, Add, Button, x0 y0 w140 h30 vTaskM gTaskM -wrap , Taskmanager
    Gui, Add, Button, x169 y0 w140 h30 vExplo gExplo -wrap , Explorer
    Gui, Add, Button, x338 y0 w140 h30 vTaskB gTaskb -wrap , Taskbar
    Gui, Font        , s11, Arial
    Gui, Add, Text, x2 y49 w11 h170 vMulti gMulti -wrap,S`n i`nn`ng`n l`ne`n`nC`nA`nB
    Gui, Add, Button, x0 y38 w15 h198
    Gui, Font        , s20, Arial
    Gui, Add, Button, x0 y0 w479 h273 vneu gneu -wrap , %CAB_Inst% %Ver%
}
else If A_ScreenWidth = 320
{
    Gui, Show       , x0  y-25  w320 h240, %CAB_Inst% %Ver%
    Gui, Font        , s13, Arial
    Gui, Add, Button, x0 y0 w105 h22 vTaskM gTaskM -wrap , Taskmanager
    Gui, Add, Button, x107 y0 w105 h22 vExplo gExplo -wrap , Explorer
    Gui, Add, Button, x214 y0 w105 h22 vTaskB gTaskb -wrap , Taskbar
    Gui, Add, Button, x45 y40 w80 h30 vMulti gMulti top -wrap,Multi CAB
    Gui, Font        , s20, Arial
    Gui, Add, Button, x0 y0 w320 h268 vneu gneu -wrap ,  %CAB_Inst% %Ver%
}

GuiControl, Disable, neu,

neu:
Loop
{

If(FileExist("\Storage Card\28\*.ca")){
    FileSelectFile, CAB_File, 0,%CAB_File%, %Art%,*.cab;*.ca
}
    Else{
        FileSelectFile, CAB_File, 0,%CAB_File%, %Art%,*.cab
    }
        If ( CAB_File = "" ){
            MsgBox,262144,, Suche durch Benutzer abgebrochen.
            ExitApp
        }
    
            If ( CAB_File = "\Storage Card\mnavdce.cab" ){
                MsgBox,262144,, Die MNAVDCE dient nicht zur Installation !
                If A_ScreenWidth = 320
                {
                ExitApp
                }
                GoTo, neu
            }
            

If Mult = 1
{
CAB_File3 .= CAB_File2 . CAB_File
MsgBox,262144,,%CAB_File3%`nvor Else
}
Else{
break
}

}

If A_ScreenWidth = 480
{
    GuiControl, Hide , neu,
    Gui, Add, Text    , y60    x25     w460 ,    Bitte warten, CAB wird installiert,`ndanach wird das Navi neu gestartet.
}
    else If A_ScreenWidth = 320
    {
        GuiControl, Hide , neu,
        Gui, Add, Text    , y40    x15     w310 ,    Bitte warten,`nCAB wird installiert,`ndanach wird das Navi neu gestartet.
    }
        GuiControl, Disable, TaskM,
        GuiControl, Disable, Explo,
        GuiControl, Disable, TaskB,
        
        ;Loop
        ;{
        ; CAB_File = CAB_File3 ;??????
        RunWait, \Windows\wceload.exe /noui` /delete 0` "%CAB_File%"
        ;If ( CAB_File = "" )
        ;break
        ;}
        

;Shutdown 2
ExitApp

Multi:
If Mult = 1
{
GuiControl, , Multi,S`n i`nn`ng`n l`ne`n`nC`nA`nB
Mult := 0
}
Else
{
GuiControl, , Multi,M`nu`n l`nt`n i`n`nC`nA`nB
Mult := 1
}
WinClose Task Manager
WinActivate, CAB wählen
Return

TaskM:
If Not(FileExist("\My Flash Disk\programme\koord465.exe")){
    MsgBox,262144,,Tool koord465.exe im Ordner`n\My Flash Disk\programme`nnicht gefunden!
    GuiControl, Disable, TaskM,
    GuiControl, Disable, TaskB,
    WinActivate,
}
    Else
    run,  %pfad%\koord465.exe "param= window=0 taskmanager=1"
    Sleep, 1000    
        IfWinExist, Task Manager
            Loop
            {
                IfWinNotExist, Task Manager
                {
                    Sleep, 500
                    break
                }
            }
WinActivate, CAB wählen
Return

Explo:
IfWinExist, Task Manager
    WinClose Task Manager
    run \windows\explorer.exe
    Sleep, 1000
    WinGetActiveTitle,Task
        IfWinExist, %Task%
            Loop
            {
                IfWinNotExist, %Task%
                {
                Sleep, 500
                break
                }
            }
WinActivate, CAB wählen
Return

TaskB:
If Not(FileExist("\My Flash Disk\programme\koord465.exe")){
    MsgBox,262144,,Tool koord465.exe im Ordner`n\My Flash Disk\programme`nnicht gefunden!
    GuiControl, Disable, TaskM,
    GuiControl, Disable, TaskB,
    WinActivate, CAB wählen
}
    Else
        IfWinExist, Task Manager
            WinClose Task Manager
    run,  %pfad%\koord465.exe "param= window=0 taskbar=2"
    Sleep, 1000
Return
 


Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012

So ich habe es geschafft aber nur dank diesem erstklassigen Forum .

 

 

So sieht es aus , nicht schön aber selten .

 

Da der String an einem Stück vorliegt habe ich den Punkt (.) als Splitstelle benutzt , damit hängt das Wort cab aber vor der nächsten CAB-File Auswahl  ( cab\Storage Card\23\**** .cab ) dann startet RunWait nur das erste CAB-File wo noch kein cab form FileName hängt ( \Storage Card\23\****.cab )  , also musste ich am der zweiten CAB-File Auswahl das cab nur am Anfang des Teil-String abschneiden am Ende des Teil-String muss cab erhalten bleiben .

 

Frage , kann man den String der zusammen hängend vorliegt nicht direkt hinter .cab Splitten anstatt bei dem Punkt (.) , dann könnte ich mir diesen ganzen Zauber sparen ?

 

Aber nur wenn es nicht ein großer Aufwand ist .

 

 

mal ein VIDEO

 

Gruß Manni   

 

 

 

    If Mul = 1
        {
          StringSplit, CAB_FileArray, CAB_File3, `.
          Loop, %CAB_FileArray0%
          {
            this_CAB := CAB_FileArray%a_index%
            this_CAB2 .= this_CAB . ".cab"
            StringGetPos, this_CAB4, this_CAB2, cab, R1, 4
            if this_CAB4 = 0
            StringTrimLeft, this_CAB2, this_CAB2, 3
        RunWait, \Windows\wceload.exe /noui` /delete 0` "%this_CAB2%"
        this_CAB2 := ""
          }
        }
        Else
        RunWait, \Windows\wceload.exe /noui` /delete 0` "%CAB_File%"