Jump to content

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

PNG Bild Icon im RAM ändern oder tauschen , WinCE ?



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

Ich hätte mal eine Frage.

 

Die Navigationssoftware lädt so ziemlich alle benötigten PNG Bilder  Icon im Arbeitsspeicher , das merke ich daran das wenn ich ein PNG bei laufender Navigation austausche sich nichts ändert .

 

Glaube ich zumindest das es dann der Fall ist .

 

Läst sich der Arbeitsspeicher nach einem bestimmten PNG durchsuchen und mit einem anderen gleich großen z.B. 160x120 Pixel ersetzen ? Die KB Größe ist geringfügig unterschiedlich .

 

Problem wird wohl mal wieder WinCE sein .

 

Ich wäre sehr dankbar für eine Antwort .

 

Gruß Manni



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

im prinzip geht das

aber ich denke du soltest nicht weiter darüber nachdenken happy.png



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Das wäre sehr sehr viel aufwand mit rausfinden wie die Datei im Ram aussieht MemoryRead/Write Funktionen oder?

Ich bin gespannt weil ich diesmal keine Ahnung hab.


Visit the new forum ahkscript.org.

http://ahkscript.org


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

ich gehe mal davon aus das das bild im speicher nicht als png sondern als bmp vorliegt

man muss sich den zeiger holen diesen free´n und ein neues bild schreiben und den neuen zeiger

an den speicherplatz des alten schreiben und über ein par stolpersteine klettern

oder einfacher gleich mit gdi arbeiten



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

Hallo lasso und  nnnik und alle anderen , danke schon mal für eure Antwort .

 

Kann sein das aus PNG eine Art BMP in RAM erstellt wird , aber eigentlich auch wieder nicht weil in PNG und andere Bild-Formate ein richtiges Transparent enthalten ist was es in BMP eigentlich nicht gibt , BMP kann man bestimmte Farben als nicht vorhanden nutzen was dann den Hintergrund  voll durch scheinen  läst aber nicht wie bei PNG mit Prozentuale Transparents .

 

Mit GUI  und BMP Icon  ( WinCE geht nur mit BMP ) habe ich es schon hin bekommen , aber dann muss ich das Tool zumindest solange in Hintergrund aktiv halten wie die Mute Funktion bebraucht wird  , wenn Mute ( das Tool ) wieder off ist kann das Tool beendet werden ,   mit beenden des Tools verschwindet das GUI BMP Icon auch .

 

Mit 64 MB RAM im Navi kann ich bei der neusten Navi-Soft wegen Speicherknappheit keine Zusätzlichen Tools im Hintergrund weiter laufen lassen .

 

Gruß Manni

 

 

 

Hier mal worum es geht , ich mach ja nichts weltbewegendes deswegen kann ich immer alles zeigen . 

 

; Mute toggle

AppName      := A_ScriptName
StringTrimRight, AppName, A_ScriptName, 4
INI_Datei       := A_WorkingDir "\" AppName ".ini"
sourcefolder = \My Flash Disk\settings\0\    
Mute = off


#Persistent                    ;bewirkt das permanente Laufen eines Scriptes
#NoEnv                        ;verhindert Prüfung von leeren Variablen
#SingleInstance force        ;bewirkt die Einzelinstanz eines Scriptes
#NoTrayIcon                    ;Deaktiviert die Darstellung des Tray-Icons
#NoEnv                        ;Verhindert die Überprüfung leerer Variablen, ob sie Umgebungsvariablen sind (für alle neuen Scripts empfohlen).

Loop, Read, %sourcefolder%settings.xml                                                        
    {
   If InStr(A_LoopReadLine, "volume_navi")                                            
        {
        indexzeile = %A_LoopReadLine%                                                
        StringRight, indexzeile, indexzeile, 6
        StringLeft, indexzeile, indexzeile, 2
        Reg_Volume := indexzeile
        ;MsgBox,262144,, %indexzeile%        
        }
    }
    
IF Reg_Volume = 00
Reg_Volume = 99
IF Reg_Volume = "0
Reg_Volume = 15


FileGetSize, ini_gr, %A_WorkingDir%\%AppName%.ini,  
If ini_gr = 0
FileDelete, %A_WorkingDir%\%AppName%.ini  ; wenn INI 0 Bytes dann lösche INI

Neu:

If(FileExist(INI_Datei)){
IniRead, Mute, %INI_Datei%, Mute_on-off, Mute
IniRead, alt_Volume, %INI_Datei%, Volume, Reg_Volume
;MsgBox,262144,, %Reg_Volume%
}
Else
{      
FileAppend,, %A_WorkingDir%\%AppName%.ini
IniWrite, %Mute%, %INI_Datei%,  Mute_on-off, Mute
IniWrite, %Reg_Volume%, %INI_Datei%,  Volume, alt_Volume
;MsgBox,262144,, %Reg_Volume%
GoTo, neu
}


If Mute = off
{
Mute = on
SoundSetWaveVolume, -100
IniWrite, %Mute%, %INI_Datei%,  Mute_on-off, Mute
IniWrite, %Reg_Volume%, %INI_Datei%,  Volume, alt_Volume
}
Else
{
SoundSetWaveVolume, +%Reg_Volume%
Mute = off
IniWrite, %Mute%, %INI_Datei%,  Mute_on-off, Mute

}
Sleep, 800
ExitApp
 

 

 

Die Settings.xml die ausgelesen wird , volume_navi trägt immer den aktuellen Wert

 

 

 

<?xml version="1.0" ?>
<Settings wc="1" proc="mnavdce.exe" mnavdce.exe:wc="1" mnavdce.exe:rc="0">
    <entry name="volume_dialer" value="80" />
    <entry name="volume_mp3" value="50" />
    <entry name="volume_click" value="0" />
    <entry name="volume_navi" value="80" />
    <entry name="energy_akku" value="0" />
    <entry name="energy_ac" value="0" />
    <entry name="screen_orientation" value="0" />
    <entry name="screen_brightness_night" value="37" />
    <entry name="screen_brightness_day" value="75" />
    <entry name="energy_autooff" value="0" />
    <entry name="energy_auto_dc_on" value="0" />
    <entry name="allowMP3popup" value="0" />
    <entry name="language" value="1" />
    <entry name="volume_chimes" value="50" />
</Settings>
 

 

Das Ändern der Settings.xml Einträge bewirkt nichts , wird wohl nur beim Navi Start gelesen .



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

bei den Bitmaps wird ein 32bit format verwendet

und im ersten Byte 0-255 dieTransparenz des Pixels angegeben also nix da png wink.png



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

OK lasso , danke

 

Noch eine Frage .

 

Was kann für WinCE6 an dem Mute Tool verkehrt sein das es dort zur Fehlermeldung kommt , auf WinCE5 geht es ?

 

Gruß Manni

 

 mm7hb9.jpg



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Am einfachste ist es ist du startest ein Script nach dieser Form:

 

SoundSetWaveVolume, +%Reg_Volume% ;extra freien Wert (nehmen wir einen Fehler an)
Msgbox , SoundSetWaveVolume hat funktioniert
... halt mit allen Befehlen bis du den Übeltäter gefunden hast.

BTW: du hattest dch mal ein Thema mit Optimieren:

Loop, Read, %sourcefolder%settings.xml                                                        
    {
   If InStr(A_LoopReadLine, "volume_navi")                                            
        {
        indexzeile = %A_LoopReadLine%                                                
        StringRight, indexzeile, indexzeile, 6
        StringLeft, indexzeile, indexzeile, 2
        Reg_Volume := indexzeile
        ;MsgBox,262144,, %indexzeile%        
        }
    }

;meine Version:
Loop, Read, %sourcefolder%settings.xml          
   If InStr(A_LoopReadLine, "volume_navi")        
     Reg_Volume:=Substring(A_LoopReadLine,-5,2)

Visit the new forum ahkscript.org.

http://ahkscript.org


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

ich gehe mal davon aus das der interpreter abkackt

du kommst aus spandau ??



Manni 123
  • Members
  • 84 posts
  • Last active: Jan 10 2016 12:56 AM
  • Joined: 02 Dec 2012
Nein ich komme nicht aus Spandau , ich komme aus dem Sauerland ( Märkischehrkreis ) .

Das Bild mit Fehlermeldung wurde mir im Navi Forum geschickt von einem WinCE6 Besitzer , ich selbst habe nur WinCE5 Navis , was die Fehler Suche erschwert .


Danke nnnik

Vielleicht hat das schon auf WinCE6 geholfen , muss ich Testen lassen.

auf WinCE5 geht es mit
Reg_Volume:=Substr(A_LoopReadLine,-5,2)

Gruß Manni

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

Ich habe es jetzt in etwa geschafft die Icon Steuerung der Navigation zu überlassen .

 

Hier mal ein Video , Ton muss sehr laut gestellt werden .

In real passt das Timing schon , im Video hinkt das Bild dem Ton etwas nach .

 

Da wo ich während der Navigation hin klicke oben links zwei unsichtbare Buttons ist in real beim Kicken ein grauer Pushed Button zusehen  so wie es ohne Navigation mit MP3 im Hintergrund zu sehen ist , in der Navigation ist die CPU voll ausgelastet , dann erwischt das Video nicht alle Bilder .

 

 

 

Gruß Manni



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

Hallo alle

 

Kann mir bitte mal jemand sagen wie ich das hier in AHK starte .

 

So ist es in MortScript

Run ("\My Flash Disk\programme\koord465.exe" , "param: include=\My Flash Disk\programme\Mute\Start1.txt")

 

 

Ich denke ich habe alle Varianten ausprobiert .

 

Gruß Manni



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

steht doch alles in der hilfeunsure.png

prog  =  C:\Windows\Notepad.exe 
param = "C:\boot.ini"
Run, %prog% %param%


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

Danke lasso

 

 

So geht es , und was habe ich damit rum geeiert.

 

Gruß Manni

 

 

pfad = \My Flash Disk\Programme\koord465.exe
para :=  "param: include=\My Flash Disk\programme\Mute\Start1.txt"


Run, %pfad% %para%
 


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

Jetzt weis ich auch warum ich mit diesem Run solange rum geeiert habe .

 

Das mit den Parameter in einzelnen Variablen fassen hatte ich auch probiert , vielleicht nicht so wie in Post ein höher aber mit Sicherheit so ähnlich .

 

Nach einem Hardreset ist die Registry des Navi WinCE zurückgesetzt in Auslieferungszustand  , also weis die Registry noch nichts von Koord465.exe , dann startet Koord den Button zwecks Abdeckung nicht , erst nach dem zweiten Koord start wird das Icon oder Button eingeblendet , aber da ich den zweiten Koord Start verhindern musste weil sonst die Navigationssoftware mit Mute on-off Icons durcheinander kommt habe ich nicht bemerkt wann Run Koord mit Parameter funktioniert und wann nicht , durch Zufall hatte ich nur ein Softreset gemach wo die Registry erhalten bleibt dann funktionierte Koord beim ersten Start .

 

 

 

So startet es zweimal Koord wenn es beim ersten mal nicht klappt .

 

 

pfad    := "\My Flash Disk\Programme\koord465.exe"
para1   := "param:"
para2   := "include=" A_WorkingDir "\Start1.txt"


Run, %pfad% %para1% %para2%
IfWinNotExist, Prototype
Run, %pfad% %para1% %para2%

 

 

 

Gruß Manni