problem mit icon in phc-win pojects

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit icon in phc-win pojects

    Hallo Freunde der Nacht,

    habe mal wieder n Problem, zu welchem ihr mir sicherlich helfen könnt.
    Also -> ich möchte einfach das Icon einer von phc-win erstellten .exe Datei verändern und zwar mit php - > dazu folgender Code von bamcompile:

    PHP-Code:

    if(file_exists($iconfile))
    {
        
    $icondata file_get_contents($iconfile);
        
    $offset 4;
        
    $icon_count unpack("S",substr($icondata,$offset,2));
        
    $icon_count $icon_count[1];
        
    $offset+=2;
        
    $icons = array();
        for(
    $i=0;$i<$icon_count;$i++)
        {
            
    $icon = array();
        
            
    $val unpack("C",substr($icondata,$offset,1));
            
    $icon[width] = $val[1];
            
    $offset++;
        
            
    $val unpack("C",substr($icondata,$offset,1));
            
    $icon[height] = $val[1];
            
    $offset++;
        
            
    $val unpack("C",substr($icondata,$offset,1));
            
    $icon[colors] = $val[1];
            
    $offset+=2;
        
            
    $val unpack("S",substr($icondata,$offset,2));
            
    $icon[planes] = $val[1];
            
    $offset+=2;
        
            
    $val unpack("S",substr($icondata,$offset,2));
            
    $icon[bitcount] = $val[1];
            
    $offset+=2;
        
            
    $val unpack("L",substr($icondata,$offset,4));
            
    $icon[size] = $val[1];
            
    $offset+=4;
        
            
    $val unpack("L",substr($icondata,$offset,4));
            
    $icon[offset] = $val[1];
            
    $offset+=4;
        
            
    $icons[] = $icon;
        }
        for(
    $i=0;$i<count($icons);$i++)
        {
            
    $data substr($icondata,$icons[$i][offset],$icons[$i][size]);
            
    $icons[$i][data] = $data;
        }

        
    $icon_group "";
        
    $icon_group.=pack("S",0);
        
    $icon_group.=pack("S",1);
        
    $icon_group.=pack("S",$icon_count);
        for(
    $i=0;$i<$icon_count;$i++)
        {
            
    $icon_group.=pack("C",$icons[$i][width]);
            
    $icon_group.=pack("C",$icons[$i][height]);
            
    $icon_group.=pack("C",$icons[$i][colors]);
            
    $icon_group.=pack("C",0); // "RESERVED"
            
    $icon_group.=pack("S",$icons[$i][planes]);
            
    $icon_group.=pack("S",$icons[$i][bitcount]);
            
    $icon_group.=pack("L",$icons[$i][size]);
            
    $icon_group.=pack("S",$i+1);
        }

        print 
    "Updating icon...";
        
    res_set($outfile,"RT_GROUP_ICON","#1",$icon_group);
        for(
    $i=0;$i<$icon_count;$i++)
        {
            
    $worked res_set($outfile,RT_ICON,"#".($i+1),$icons[$i][data]);
        }
        print 
    "done\n";

    Selbiger ändert die Icon Resource -> allerdings geht das nur wenn ich beide Dateien -> also outfile und das File wo der obige Code drin is mit bamcompile kompiliert habe. So nun würde ich gerne Wissen, wie ich diese .ico File OHNE sonstige Hilfsprogramme als Resource setzen kann.

    Ich dachte auch schon über .rc files in winbinder -> aber dies ist mir ebenso schleierhaft :/

    Danke schonmal im Voraus!

    Gruß Robert
    Immer eine Handbreit Puffer unterm Code

  • #2
    Zitat von ibor Beitrag anzeigen
    Hallo Freunde der Nacht,

    habe mal wieder n Problem, zu welchem ihr mir sicherlich helfen könnt.
    Also -> ich möchte einfach das Icon einer von phc-win erstellten .exe Datei verändern und zwar mit php - > dazu folgender Code von bamcompile: ...
    Ist dir klar, dass Bambalam eine etwas antiquierte Software ist, die noch dazu nur mit nicht mehr supporteten PHP-Versionen läuft? Dazu "sicherlich" Hilfe zu erwarten, erscheint mir ein wenig zu optimistisch ...

    So nun würde ich gerne Wissen, wie ich diese .ico File OHNE sonstige Hilfsprogramme als Resource setzen kann.
    Ohne sonstige Hilfsprogramme (wie Resource-Editoren) gar nicht. Jedenfalls nicht mit deinen PHP- und Windows-Exe-File-Format-Kenntnissen.
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Da gebe ich dir Recht...

      Allerdings frage ich mich warum man den ein und selben code nicht unter phc-win funktioniert? Da ich aber gerade dran bin phc-win für die cli zu schreiben und dazu wäre es schön wenn man den icon der exe datei so wie bei bamcompile setzen könnte.

      Vielen Dank
      Robert
      Immer eine Handbreit Puffer unterm Code

      Kommentar


      • #4
        Zitat von ibor Beitrag anzeigen
        Da gebe ich dir Recht...

        Allerdings frage ich mich warum man den ein und selben code nicht unter phc-win funktioniert? Da ich aber gerade dran bin phc-win für die cli zu schreiben und dazu wäre es schön wenn man den icon der exe datei so wie bei bamcompile setzen könnte.
        Beide "Compiler" benutzen vermutlich unterschiedliche Daten-Strukturen. Daher kannst du die Dateien, die der eine erzeugt, nicht mit den Werkzeugen des anderen bearbeiten. Und PHP-only-Tools, die direkt Windows-PE-Dateien bearbeiten können, sind mir nicht bekannt.

        Aber höchstwahrscheinlich kann bei phc-win vor dem Compilier-Vorgang eine Icon-Datei als zu verwendende Resource angegeben werden. Wo genau, sollte dir die Dokumentation sagen. Mir fehlt leider gerade ein wenig die Motivation, um selbst danach zu suchen. Ich weiß ja nicht einmal, welche phc-win-Variante du verwendest ...

        Phc-win - wiki.swiftlytilting.com
        https://github.com/RDashINC/phc-win
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #5
          So vielen Dank erstmal das überhaupt jemand geantwortet hat!

          Also so wie ich das sehe dreht es sich um die res_set funktion von
          win32std:index [Wild PHP Wiki]
          Weiter verwende ich phc-win in Version 0.3.1

          Ich hoffe das mir dies irgend jemand wenigstens erklären kann.
          Denn der Code funktioniert ja auch teilweise aber er ändert eben nicht das icon das in der resource "Group Icon" liegt.

          Würde mich sehr über Hilfe freuen.

          Danke und Gruß
          Robert
          Immer eine Handbreit Puffer unterm Code

          Kommentar


          • #6
            okay,

            also was schonmal der Unterschied war, dass der Code der oben von bamcompile stammt einfach extreme syntax probleme hat -> habe sie beseitigt allerdings wird nicht die resource überschrieben allerdings kann ich nun resourcen setzen ... -> bitte um Hilfe - Danke!

            Immer eine Handbreit Puffer unterm Code

            Kommentar


            • #7
              so,

              habe nun weitere Fortschritte zu verzeichnen...
              Und zwar liegt es wahrscheinlich am EMBEDER von phc-win...
              Er legt gleich nach der Aktion die Resourcen fest ...

              So und nun forsche ich mal weiter
              Immer eine Handbreit Puffer unterm Code

              Kommentar

              Lädt...
              X