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

Das war der Fehler

 

falsch

If(FileExist (sourcefolder_mbf . imgIndex . "_" . imgIndex2 . "*.mxf")){

richtig

If(FileExist(sourcefolder_mbf . imgIndex . "_" . imgIndex2 . "*.mxf")){

 

Danke

 

Ich weis das es bei mir mit der Verständnis der AHK Syntax  hapert  , das lerne ich doch beim programmieren und mit eurer hervorragende Hilfe .

Und durch meine Fehler noch intensiver .

 

 

Habe ich wirklich so unverständlich geschrieben ?

 

Gruß Manni



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

Ich traue mich nicht wirklich aber vielleicht läst sich hier auch noch was Optimieren ?

 

Das was im MapColor Tauscher optimiert wurde habe ich hier in Pfeil Tauscher schon einfliesen lassen , zumindest das was ich halbwegs verstanden habe .

Das Navi ist für jedes eingesparte KB dankbar und ich auch .

 

 

 

Spoiler

 

 

Gruß Manni



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

Hallo Manni,

 

 

 

Das Navi ist für jedes eingesparte KB dankbar und ich auch .

 

Kompilierst du das Skript, oder geht es wirklich rein um die Grösse des Skript-Sources? Weil wenn du kompilierst ist das Skript nur ein unbedeutender Bruchteil der Grösse, und man kann mit Packern mehr erreichen.



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

Hallo IsNull

 

Ich kompiliere das Skript ( erzeuge eine EXE )  aber es geht trotzdem um die Größe des Skript –Sources ,  Packer bringt mir nichts , um das Tool starten zukönnen muss es ja zuerst wieder entpackt werden , für den Lagerort im Navi MFD oder SD-Karte stehen mit genügend GB zur Verfügung .  

 

Ich habe auf mein 64 MB Arbeitsspeicher  Navi  ( neuere haben 128 MB ) wenn die aktuellste Navigation läuft nur c. a. 5 MB fei , mit mein AHK Opti-Speicher Tool  c. a. + 2 MB , da wird es manchmal eng wenn ich die Tools während der Navigation fahren möchte , OK im StartMenü bevor die Navigation gestartet wird ist es kein Problem aber das ist nun mal nicht der Originalzustand , einige User möchten ihr Navi gern Original lassen nur eben die Tools zusätzlich fahren .

 

Gruß Manni       



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

fange doch erst ma mit der formatierung an

auch das gehört zu gutem code

ich hab gesehen das du einiges von mir übernommen hast

aber deine klammern und einrükungen sind wie kraut und rüben gesetzt

ich finde deine navi-sachen schon irgendwie interessant

aber dein code lesen macht  keinen spaß

bei mir würde das wie folgt aussehen

#Persistent       ;Script Pfeiltauscher WinCE
#NoEnv
#SingleInstance force
#NoTrayIcon
  Gosub, ReadVars
  Gosub, FormStart
ReadPreprocs:
Return

ReadVars:                        ;Voreinstellung  von Variablen
  AppName           := "Pfeiltauscher_WinCE"
  Version           := 3
  Language          := DE
  inipfad           := A_WorkingDir "\" AppName ".ini"
  bildnummer        := 0
  Seite_aktuell     := 1
  Bild_Pfeil        := 1
  sourcefolder_bmp  := A_WorkingDir "\Pfeil_Auto\Pfeil_bmp\"
  sourcefolder_bmp2 := A_WorkingDir "\Pfeil_Auto\Pfeil_bmp2\"
  sourcefolder_vcb  := A_WorkingDir "\Pfeil_Auto\vcb-skn\"
  sourcefolder      := A_WorkingDir "\Pfeil_Auto\"
  savefolder        := "\My Flash Disk\Navigation\VehicleIcon\"
  savefolder5       := "\My Flash Disk\Navigation\gui\"
Return


FormStart:
  bildnummer := 0
  Gui, Destroy
  SendMode Input
  SetBatchLines, -1
  Gui -MinimizeBox
  Gui +LastFound -MinimizeBox ;+AlwaysOnTop
  Gui, font, s9, Arial
  pos_x := 1
  Loop,8 {
    Gui, Cancel
    Gui, Add, Picture, x%pos_x% y=24 w48 h247 gklick_Pfeil vbild%Bild_Pfeil%, %sourcefolder_bmp%%Bild_Pfeil%.bmp
    Bild_Pfeil := Bild_Pfeil + 1
    pos_x := pos_x + 61
  }
  Gui, font, s14, Arial
  Gui, Add, Button, x32 y223  w30 h25 vSeite1 gSeite1 -wrap,<
  Gui, Add, Button, x0  y223  w30 h25 vSeite4 gSeite4 -wrap,<<
  Gui, Add, Button, x417 y223 w30 h25 vSeite2 gSeite2 -wrap,>
  Gui, Add, Button, x448 y223 w30 h25 vSeite3 gSeite3 -wrap,>>
  Gui, Submit, NoHide
  FileGetSize, 8bit_gr, \My Flash Disk\Navigation\VehicleIcon\vehicle_medion_3D_day.png, K
  if(8bit_gr < 2){
    GuiControl, Disable, Seite3,
    GuiControl, Disable, Seite4,
  }
  if(Seite_aktuell == 2){
    if( 8bit_gr < 2){
      Gui, Show, x0 y0 w478 h247, Pfeiltauscher V.3   8-Bit Sparauto aktiv keine Scheinwerfer   Seite 2
    }else{
      Gui, Show, x0 y0 w478 h247, Pfeiltauscher V.3   Seite 2
    }
    return
  }
  if(8bit_gr < 2){
    Gui, Show, x0 y0 w478 h247, Pfeiltauscher V.3   8-Bit Sparauto aktiv keine Scheinwerfer   Seite 1
  }else{
    Gui, Show, x0 y0 w478 h247, Pfeiltauscher V.3   Seite 1
  }
return


Eizelauto:
  bildnummer := 1
  Gui, Destroy
  SendMode Input
  SetBatchLines, -1
  Gui +LastFound -MinimizeBox ;+AlwaysOnTop
  Gui, font, s9, Arial
  Gui -MinimizeBox
  pos_x := 1
  Loop, 3{
    Gui, Add, Picture, x%pos_x% y0 w159 h112 gklick_Pfeil vbild%Bild_Pfeil%, %sourcefolder_bmp2%%Bild_Pfeil%.bmp
    Bild_Pfeil := Bild_Pfeil + 1
    pos_x += 159
  }
  pos_x := 1
  Bild_Pfeil := 4
  if(Seite_aktuell == 2){
    Bild_Pfeil := 10
    Gui, Show, x0  y0  w478 h247, Pfeiltauscher V.3   Seite 4
  }
  Loop,3 {
    Gui, Add, Picture, x%pos_x% y112 w159 h112 gklick_Pfeil vbild%Bild_Pfeil%, %sourcefolder_bmp2%%Bild_Pfeil%.bmp
    Bild_Pfeil := Bild_Pfeil + 1
    pos_x := pos_x + 159
  }
  Gui, font, s14, Arial
  Gui, Add, Button, x32  y223 w30 h25 vSeite1 gSeite1 -wrap,<
  Gui, Add, Button, x0   y223 w30 h25 vSeite4 gSeite4 -wrap,<<
  Gui, Add, Button, x417 y223 w30 h25 vSeite2 gSeite2 -wrap,>
  Gui, Add, Button, x448 y223 w30 h25 vSeite3 gSeite3 -wrap,>>
  Gui, Submit, NoHide
  if(Seite_aktuell == 1){
    Gui, Show, x0  y0  w478 h247, Pfeiltauscher V.3   Seite 3
  }
return


Seite1:
Seite2:
Seitenwechsel:
  if(Seite_aktuell == 1){
    Seite_aktuell := 2
    Bild_Pfeil := 9
  }else{
    Seite_aktuell := 1
    Bild_Pfeil := 1
  }
  pos_x := 1
  GoSub, FormStart
return


Seite3:
Seite4:
Seitenwechsel2:
  if(Seite_aktuell == 1){
    Seite_aktuell := 2
    Bild_Pfeil := 7
  }else{
    Seite_aktuell := 1
    Bild_Pfeil := 1
  }
  pos_x := 1
  gosub, Eizelauto
Return


klick_Pfeil:
  if(RegExMatch(A_GuiControl,"(\d*)$", out)){  ;// Control Nummer (index) aus A_GuiControl extrahieren
    imgIndex := out1 + ((Seite_aktuell-1) * 20 )  ; und in imgIndex schreiben
  }
  if(Seite_aktuell == 2){
    imgIndex -=20
  }
  msgbox, 262145 , , Pfeil %imgIndex%   installieren ?
  ifMsgBox Cancel
    Return
  imgIndex2 := 1
  if(!FileExist(savefolder "vehicle_medion_2D_day.png")){
    FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder5%vehicle_arrow_car.png, 1   ; Kopieren und überschreiben.
    imgIndex2 +=2
    FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder5%vehicle_arrow_car_3D.png, 1
    FileCopy, %sourcefolder_vcb%GP5.skn, %savefolder5%bitmap.skn, 1
    if(bildnummer == 1){
      imgIndex +=16
      FileCopy, %sourcefolder%%imgIndex%_*.png, %savefolder5%vehicle_arrow_car_3D.png, 1
      FileCopy, %sourcefolder_vcb%GP5_einzel.skn, %savefolder5%bitmap.skn, 1
    }
    Return
  }
  if(bildnummer == 1){
    imgIndex +=16
    FileCopy, %sourcefolder%%imgIndex%*.png, %savefolder%vehicle_medion_3D_day.png, 1
    FileCopy, %sourcefolder_vcb%32bit_einzel_day.vc, %savefolder%vi_default_0_0.vc, 1
    FileDelete, %savefolder%vi_default_0_0.vcb
    return
  }
  FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder%vehicle_medion_2D_day.png, 1
  ++imgIndex2
  FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder%vehicle_medion_2D_night.png, 1
  ++imgIndex2
  FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder%vehicle_medion_3D_day.png, 1
  ++imgIndex2
  FileCopy, %sourcefolder%%imgIndex%_%imgIndex2%*.png, %savefolder%vehicle_medion_3D_night.png, 1
  FileGetSize, 8bit_gr, \My Flash Disk\Navigation\VehicleIcon\vehicle_medion_3D_day.png, K
  if(8bit_gr < 2){
    FileCopy, %sourcefolder_vcb%8bit_einzel.vc, %savefolder%vi_default_0_0.vc, 1
    FileDelete, %savefolder%vi_default_0_0.vcb
    FileGetSize, 8bit_gr, \My Flash Disk\Navigation\VehicleIcon\vehicle_medion_3D_day.png, K
    if(8bit_gr < 2){
      GuiControl, Disable, Seite3,
      GuiControl, Disable, Seite4,
      Gui,Show,,% "Pfeiltauscher V.3   8-Bit Sparauto aktiv keine Scheinwerfer!   Seite " Seite_aktuell
    }else{
      GuiControl, Enable, Seite3,
      GuiControl, Enable, Seite4,
      Gui,Show,,% "Pfeiltauscher V.3   Seite "Seite_aktuell
    }
    Return
  }
  FileCopy, %sourcefolder_vcb%32bit.vc, %savefolder%vi_default_0_0.vc, 1
  FileDelete, %savefolder%vi_default_0_0.vcb
  FileGetSize, 8bit_gr, \My Flash Disk\Navigation\VehicleIcon\vehicle_medion_3D_day.png, K
  if(8bit_gr < 2){
    GuiControl, Disable, Seite3,
    GuiControl, Disable, Seite4,
    Gui,Show,,% "Pfeiltauscher V.3   8-Bit Sparauto aktiv keine Scheinwerfer!   Seite " Seite_aktuell
  }else{
    GuiControl, Enable, Seite3,
    GuiControl, Enable, Seite4,
    Gui,Show,,% "Pfeiltauscher V.3   Seite "Seite_aktuell
  }
Return


GuiClose:
ExitApp


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

Hi lasso erst mal Großen Dank .

 

Ja ich weis meine schlechte Formatierung des Script , das wurde mir schon von vielen vorgeworfen , eben so meine Rechtschreibung .

 

Ich sehe ja jetzt wie es aussehen sollte .

 

Ich hatte schon vorm Posten aufgeräumt sonst ständen euch erst recht die Haare zu Bergen . 

 

Danke lasso .

 

 

 

Edit:

Ich habe irgendwann mal in alten Forum gelesen das

Bildnummer :=
richtiger ist als
Bildnummer := 0
es würde die Variable sicherer löschen , stimmt das nicht mehr ?

 

Gruß Manni



ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008

Hallo Manni,

 

beim Aufräumen kann dir http://www.autohotke...yntax-tidy-v12/ hervorragend helfen.

 

Das mit dem Löschen der Variablen ist natürlich ein Schmarrn. Variablen Löschen geht nicht in AHK. Wenn sie erstmal angelegt ist, bleibt sie bestehen. Es ist nur eine Frage des Inhalts. Leer machen oder auf Null setzen ist natürlich nicht das Gleiche.

 

Ausserdem: 

Bildnummer :=

Das Kommando ist verkehrt. Entweder heisst es (in der Expression-Schreibweise, die du meines Erachtens immer nutzen solltest)

Bildnummer := ""

oder (in der alten Schreibweise)

Bildnummer =


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

Danke ruespe

 

Gruß Manni



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

Wenn es um den Arbeitsspeicher geht, sind natürlich deine Loops die die Picture Controls hinzufügen problematisch. (Da hast du jedes mal eine Kopie der Daten)

Besser wäre es, wenn du alle Resourcen (Bilder) genau einmal in Memory lädst und diese dann selber mit GDI zeichnest.



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

Hi IsNull

 

GDI sagt mir jetzt gar nichts , würde das denn unter WinCE 5 gehen.?

 

Gruß Manni



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

GDI ist die API von Windows, mit dem die normale Oberfläche (Fenster etc.) gezeichnet wird.

 

GDI würde sicherlich funktionieren, ob GDI+ auch funktioniert, wäre zu testen.

 

Siehe http://www.autohotke...ary-145-by-tic/



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

Danke IsNull

 

Ich glaube das mit GDI bekomme ich noch nicht gebacken .

 

Ich schau mir das auf jeden Fall an .

 

Gruß Manni



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

Hallo alle , ich noch mal .

 

Ja ich weis jetzt werde ich langsam lästig .

 

Ich habe mit der Formatierung aufgeräumt , hoffe ich  , und wie zuvor MapColor und Pfeil Tauscher optimiert .

 

Zu eine Sache fällt mir nichts ein , obwohl lasso es wahrscheinlich schon in den MapColor und Pfeil Tauscher  in etwa so eingebracht hat .   

 

Frage , die Bereiche klick_tag: und klick_nacht: sind bis auf FileCopy identisch , wie kann ich am Klick  Tag oder Nacht den einen oder anderen FileCopy auslösen , dann brauchte ich den Bereich nur einmal ?

 

 

 

 

Horizonttauscher

Spoiler

 

 

Gruß Manni



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

null problemo happy.png

von 154 zeilen zu 74 zeilen

#Persistent ; Script Horizonttauscher WinCE
#NoEnv
#SingleInstance force
#NoTrayIcon
SetBatchLines, -1
SendMode Input

  AppName          := "Horizonttauscher_WinCE"
  Version          := 3
  Language         := "DE"
  inipfad          := A_WorkingDir "\" AppName ".ini"
  sourcefolder_bmp := A_WorkingDir "\Horizonte_Quellbilder\Hori_bmp\"
  sourcefolder     := A_WorkingDir "\Horizonte_Quellbilder\"
  savefolder       := "\My Flash Disk\Navigation\gui\"
  gosub, Seite1
return

neueSeite:
  Gui  +LastFound -MinimizeBox ;+AlwaysOnTop
  Gui, font, s14, Arial
  pos_y := 0
  Loop, 9 {
    Gui, Add, Picture, x0   y%pos_y% w241 h25 gklick_tag   vbild%Bild_Tag%  , %sourcefolder_bmp%%Bild_Tag%.bmp
    Gui, Add, Picture, x241 y%pos_y% w241 h25 gklick_nacht vbild%Bild_Nacht%, %sourcefolder_bmp%%Bild_Nacht%.bmp
    Bild_Tag +=2
    Bild_Nacht +=2
    pos_y +=25
  }
  Gui, Add, Picture, x30  y223 w211 h25 gklick_tag   vbild19, %sourcefolder_bmp%19.bmp
  Gui, Add, Picture, x241 y223 w211 h25 gklick_nacht vbild20, %sourcefolder_bmp%20.bmp
  Gui, Add, Button, x0   y223 w30 h25 vSeite1 gSeite1 -wrap,<
  Gui, Add, Button, x449 y223 w30 h25 vSeite2 gSeite2 -wrap,>
  Gui, Show, x0 y0 w478 h247, % "Horizonttauscher V.3 "
  . (Seite_aktuell == 2) ? "Seite 2" : "Seite 1"
  Gui, Submit, NoHide
return


Seite1:
Seite2:
  if(Seite_aktuell == 1){
    Seite_aktuell := 2
    Bild_Tag      := 21
    Bild_Nacht    := 22
  }else{
    Seite_aktuell := 1
    Bild_Tag      := 1
    Bild_Nacht    := 2
  }
  Gui, Destroy
  GoSub, neueSeite
return


klick_tag:
klick_nacht:
  if(RegExMatch(A_GuiControl,"(\d*)$", out)){ ;// Control Nummer (index) aus A_GuiControl extrahieren
    imgIndex := out1 + ((Seite_aktuell-1) * 20) ; und in imgIndex schreiben
    if(Seite_aktuell == 2){
      imgIndex -=20
    }
    msgbox, 262145 , , Horizont Tag %imgIndex% installieren ?
    IfMsgBox Cancel
      Return
    if(A_ThisLabel == "klick_tag"){
      FileCopy, %sourcefolder%%imgIndex%_*.png, %savefolder%horizon_3d_day.png   , 1
    }else{
      FileCopy, %sourcefolder%%imgIndex%_*.png, %savefolder%horizon_3d_night.png , 1
    }
  }
Return


GuiClose:
ExitApp


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

Danke lasso

 

Funktioniert alles , tauscht Tag Nacht .

 

Nur das hier nicht , bleibt aus Seite 2 stehen wenn ich zurück auf Seite 1 gehe   , ohne  Anzeige Horizonttauscher V.3 vor Seite 2  , sie Seiten selbst wechselt schon korrekt .

 

 

Gui, Show, x0 y0 w478 h247, % "Horizonttauscher V.3 "

  . (Seite_aktuell == 2) ? "Seite 2" : "Seite 1"

 

 

Ist aber nicht schlimm , da kann ich die alte Abfrage nehmen wenn es ohne das Du es selbst testen kannst nicht geht .

 

Hauptsache der doppelte klick_tag:  und klick_nacht: Bereich ist weg .

 

Gruß Manni