2009-07-30 19 views
12

... id giống như một cái gì đó tôi có thể tích hợp vào quá trình xây dựng của tôi: là có bất cứ điều gì "tiêu chuẩn" công cụ thực hiện điều này?Có tiện ích dòng lệnh nào để thay đổi Biểu tượng được nhúng của exe win32 không?

+0

Nếu bạn đang làm điều này trong quá trình xây dựng, tại sao bạn cần phải thay đổi biểu tượng sau khi thực tế? Tại sao không chỉ xây dựng nó với biểu tượng chính xác ở nơi đầu tiên? (Xem câu trả lời của Ville Laurikari). –

+0

Xem nhận xét của tôi để trả lời câu trả lời của anh ấy. – jkp

+0

Đôi khi cần cập nhật phiên bản của tệp sau khi xây dựng thực tế (chèn SVN hoặc sửa đổi CVS mà không cần thay đổi nguồn). Nhưng tôi thực sự không thể thấy tại sao bạn cần phải thay đổi biểu tượng. –

Trả lời

3

Tôi khá chắc chắn Resource Hacker có thể làm điều này, và một số thứ khác, tôi tin rằng tôi nhận ra biểu tượng của nó từ khi tôi sử dụng nó một lúc trở lại. Hy vọng rằng sẽ giúp bạn!

+0

Thats tuyệt vời: và gần như hoàn hảo, ngoại trừ tôi không thể chạy nó như là một phần của quá trình xây dựng của tôi bởi vì nó không dựa trên dòng lệnh. Upvote cho một liên kết thú vị mặc dù. – jkp

+0

Tôi tìm thấy điều này: http://www.heaventools.com/command-line_resource_editor.htm. Xấu hổ họ muốn một lượng tiền mặt vô hạn cho nó. – jkp

+0

Ứng dụng không phải là giao diện điều khiển của nó, nhưng bạn vẫn có thể chạy nó với các tham số và thực hiện một "hành động" đơn lẻ mà không có sự tương tác của người dùng. Nó cũng hỗ trợ các tập tin kịch bản nếu bạn cần thực hiện một số hành động – Anders

2

Bạn cần phải tạo một tập tin kịch bản tài nguyên (.rc), và sau đó biên dịch nó vào một tập tin đối tượng với rc (.rc.res) và cvtres (.res.obj). Cả hai công cụ đều được bao gồm trong Microsoft Platform SDK. Khi bạn đưa tệp đối tượng vào lệnh liên kết, kết quả sẽ có biểu tượng được chỉ định trong tệp tập lệnh tài nguyên. Đây là một tập tin tài nguyên mẫu và các lệnh để tạo ra các đối tượng:

resource.rc:

101   ICON     "my_icon.ico" 

file icon của bạn là trong file my_icon.ico. Các lệnh để biên dịch các tệp này thành tệp đối tượng:

rc -fo resource.res resource.rc 
cvtres -machine:ix86 -out:resource.obj resource.res 

Tuy nhiên, cách dễ nhất để đặt biểu tượng chương trình là chỉ do it in Visual Studio.

Về mặt kỹ thuật, không cho phép bạn thực sự thay đổi biểu tượng của tệp thi hành hiện có, nhưng bằng cách nào đó tôi nghi ngờ đó là điều bạn thực sự muốn làm.

+0

Không không, tôi thực sự làm! Lý do là phức tạp: Tôi cần thêm các biểu tượng tùy chỉnh vào một số tiện ích mà tôi xây dựng bằng PyInstaller. Vấn đề là chức năng của hộp phụ thuộc vào pywin32 là OK, ngoại trừ việc tôi chạy build của tôi trong một sandbox được cung cấp bởi 'virtualenv' và' pip' trong sự kết hợp: thật không may, tôi không thể tìm cách để lấy 'pywin32' cài đặt ở tất cả: dường như không có cách nào để làm cho nó xây dựng trong môi trường này. Vì vậy, để phụ bước vấn đề, tôi muốn có thể thay đổi biểu tượng sau khi PyInstaller đã làm nó là bit. – jkp

3

Có vẻ như tôi đã tìm thấy số perfect solution cho những gì tôi đang cố gắng làm.

+1

Thật không may sau này tôi thấy nó không hoàn chỉnh tính năng. Tuy nhiên, với ít nỗ lực, ai đó có thể hoàn thành nó: nó chỉ là một tệp nguồn 'cpp' và mã rất sạch sẽ. – jkp

+0

Tôi từ bỏ công cụ này vì tôi không muốn cài đặt python cho một công việc nhỏ như thay đổi biểu tượng. – fpemud

7

Bạn đã xem Resource Hacker chưa? Bạn cũng có thể lái nó qua command line (tập lệnh) để chắc chắn nó có thể được tích hợp vào bản dựng của bạn.

+0

Tôi không thể thay thế các biểu tượng trong tệp tự giải nén 7z với Resource Hacker 4.2.5. Có hai biểu tượng 1: 0 2: 0 và một nhóm biểu tượng 101: 0 trong tệp exe của tôi. Tôi muốn thay thế dữ liệu biểu tượng và giữ nguyên chỉ mục tài nguyên mà tôi nghĩ là cách đơn giản nhất. Theo kiến ​​thức của tôi về định dạng PE nó là doable, nhưng RH4.2.5 chỉ không thể làm điều này. – fpemud

Các vấn đề liên quan