mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-04 12:11:33 +02:00
Compare commits
1470 Commits
v1.7.0beta
...
v1.8.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf9bb26d19 | ||
|
|
01efba99af | ||
|
|
6e469662d3 | ||
|
|
4bc94c17ea | ||
|
|
1820d4018e | ||
|
|
f130a2716e | ||
|
|
deb5e68e15 | ||
|
|
9a9897ea1e | ||
|
|
deea902c4f | ||
|
|
42513af536 | ||
|
|
676a2ff8ca | ||
|
|
1e56349838 | ||
|
|
33b8064042 | ||
|
|
1f5170253c | ||
|
|
ad6f2e03c9 | ||
|
|
4c3daf7927 | ||
|
|
4936f70d20 | ||
|
|
ecd2da185d | ||
|
|
7a7bf4c561 | ||
|
|
827e07700d | ||
|
|
d142c554d1 | ||
|
|
69f2b2da7c | ||
|
|
4000993200 | ||
|
|
2c6c21d753 | ||
|
|
34384e3613 | ||
|
|
a42856ef84 | ||
|
|
e7f01b9a95 | ||
|
|
fc2ceb88fb | ||
|
|
36f62f7fd4 | ||
|
|
ee08b3759d | ||
|
|
c73110e3c7 | ||
|
|
9ced5fb9a3 | ||
|
|
f9659d80c9 | ||
|
|
553e831121 | ||
|
|
e9ff471e1c | ||
|
|
eb6d29a223 | ||
|
|
3df26ef189 | ||
|
|
25767bee0b | ||
|
|
0f7773ff99 | ||
|
|
2ed329e025 | ||
|
|
e04882cc7c | ||
|
|
40818920d1 | ||
|
|
1bec652822 | ||
|
|
4c10f1e40c | ||
|
|
53154bcd1e | ||
|
|
1d600ceecc | ||
|
|
e1a36b53dc | ||
|
|
5f91abd7c6 | ||
|
|
75b38d1a2f | ||
|
|
7f597e5dd2 | ||
|
|
e3be1a176d | ||
|
|
b1658cb1cf | ||
|
|
6ba3324035 | ||
|
|
e2a26f0eaf | ||
|
|
8cfb17bca6 | ||
|
|
211e5ec82e | ||
|
|
2435ba7e7d | ||
|
|
be77e4f57e | ||
|
|
f344b42aa9 | ||
|
|
90f4a20a50 | ||
|
|
793130a533 | ||
|
|
1ddb162338 | ||
|
|
070d9d3147 | ||
|
|
9b73308edd | ||
|
|
b46a8239e2 | ||
|
|
e9d0f5a022 | ||
|
|
5721d8eb64 | ||
|
|
e708c145fa | ||
|
|
713beeb2a5 | ||
|
|
6c46713701 | ||
|
|
3754e6c781 | ||
|
|
6401b1cfc3 | ||
|
|
6b9e123816 | ||
|
|
fb2295fcec | ||
|
|
0af2f7e5ed | ||
|
|
1c84d01584 | ||
|
|
3fcce08a22 | ||
|
|
289800c1ba | ||
|
|
49fb37fefc | ||
|
|
9a02a0f3a8 | ||
|
|
4e79093f84 | ||
|
|
d2fff2c3e3 | ||
|
|
8f277e46d6 | ||
|
|
c33d962712 | ||
|
|
3870915118 | ||
|
|
b05ca526a4 | ||
|
|
4e28a24af3 | ||
|
|
aebadfcda2 | ||
|
|
c975954a9a | ||
|
|
dec3bd4a02 | ||
|
|
64ce0cd7a2 | ||
|
|
34593cccb6 | ||
|
|
5b5a636cc1 | ||
|
|
5c6a6529a6 | ||
|
|
68fa190cf7 | ||
|
|
d148464efe | ||
|
|
6a7f2089e8 | ||
|
|
17fe4c3b29 | ||
|
|
dd6c97abb6 | ||
|
|
ddfe3fa7ab | ||
|
|
1f7274c2f2 | ||
|
|
4d87f30434 | ||
|
|
8b371c42b7 | ||
|
|
c7f759fedf | ||
|
|
830daa40d1 | ||
|
|
f016d25b4c | ||
|
|
e18fd62f34 | ||
|
|
3701fbcbfe | ||
|
|
823f9fa0d1 | ||
|
|
67d38bc87b | ||
|
|
b36ff1ed1d | ||
|
|
ec83295b99 | ||
|
|
e36252a845 | ||
|
|
d0d8de9f2f | ||
|
|
9693048f78 | ||
|
|
101d2268ff | ||
|
|
2fcad760b9 | ||
|
|
52eb6c95cf | ||
|
|
35169e3de4 | ||
|
|
650b201b33 | ||
|
|
f595fc2f9c | ||
|
|
06c889630c | ||
|
|
d6dbabfbc4 | ||
|
|
bcae146444 | ||
|
|
8a39748654 | ||
|
|
3556ed416c | ||
|
|
e5e2ce2b22 | ||
|
|
39d103adf7 | ||
|
|
afd1406e61 | ||
|
|
a4c411af99 | ||
|
|
bcc896fb6e | ||
|
|
76166c6252 | ||
|
|
dd5a49bc78 | ||
|
|
cdfafa2180 | ||
|
|
6b16e18eb8 | ||
|
|
c2dacd03a5 | ||
|
|
505dba5b23 | ||
|
|
af5a7063c9 | ||
|
|
9e7779a476 | ||
|
|
625e61516f | ||
|
|
41614ec851 | ||
|
|
4d3a0ed250 | ||
|
|
cac15988f0 | ||
|
|
1e131f4732 | ||
|
|
22c35c4d15 | ||
|
|
9507bb4be6 | ||
|
|
e1c370a9a2 | ||
|
|
b9eafaaf24 | ||
|
|
909368025f | ||
|
|
15bfa46023 | ||
|
|
0359c775e0 | ||
|
|
1053153ec4 | ||
|
|
79ac61684c | ||
|
|
441eca86c4 | ||
|
|
f07d3d069e | ||
|
|
e300e3c744 | ||
|
|
b9df8290c9 | ||
|
|
73e2254a80 | ||
|
|
352c2957b2 | ||
|
|
23b6426dfa | ||
|
|
9ef8658122 | ||
|
|
0a67719f2f | ||
|
|
04d820f9cf | ||
|
|
931dd59844 | ||
|
|
a6500d8068 | ||
|
|
0d5d2c578d | ||
|
|
77679790db | ||
|
|
ee71024496 | ||
|
|
b1f326054f | ||
|
|
bceb40ed80 | ||
|
|
fd684eda52 | ||
|
|
9e3c3353bd | ||
|
|
07ffff3d77 | ||
|
|
9b34427a1c | ||
|
|
5fba476076 | ||
|
|
d63abef718 | ||
|
|
cdba8a7f2f | ||
|
|
21967a130b | ||
|
|
08e78d5d6f | ||
|
|
fe68e1e82c | ||
|
|
25ac3bfdb7 | ||
|
|
4700c604b1 | ||
|
|
356fa737c5 | ||
|
|
520e2eb392 | ||
|
|
e0d2bd4830 | ||
|
|
1dc05f99bf | ||
|
|
b2b176bcd0 | ||
|
|
fde5ccd0df | ||
|
|
d1fe25cc31 | ||
|
|
60c18f75b5 | ||
|
|
c7f3791f3d | ||
|
|
ee9d5e6bf0 | ||
|
|
96fa3a3a1a | ||
|
|
7c4deec800 | ||
|
|
78e82eb920 | ||
|
|
3c91a1ace4 | ||
|
|
3a52db46ad | ||
|
|
137bce6dd0 | ||
|
|
f000e6ce6a | ||
|
|
7c1281dd06 | ||
|
|
60729f2bbd | ||
|
|
0b0ecfcbe4 | ||
|
|
1fe86bced2 | ||
|
|
c6a62a497d | ||
|
|
8be6881093 | ||
|
|
99c8118229 | ||
|
|
6c5ca055c4 | ||
|
|
a6ec8f3090 | ||
|
|
b039c2ce86 | ||
|
|
5a6d286c41 | ||
|
|
ba65187ad3 | ||
|
|
a91f54f0a8 | ||
|
|
d77c1f3e4a | ||
|
|
7390ddbd98 | ||
|
|
32a4b40f0a | ||
|
|
bc1bc2a4f8 | ||
|
|
155c965866 | ||
|
|
6c73f25747 | ||
|
|
2518fd7059 | ||
|
|
56edae6958 | ||
|
|
d8275cd4e1 | ||
|
|
c3dca7a288 | ||
|
|
96ff0076c7 | ||
|
|
8bb4af067a | ||
|
|
df0df76b51 | ||
|
|
458f336405 | ||
|
|
3f3f27d4d3 | ||
|
|
7c9cffa5ae | ||
|
|
996223197c | ||
|
|
b8e7555977 | ||
|
|
ed80a712ab | ||
|
|
2866e56c51 | ||
|
|
2074bdbb19 | ||
|
|
d212ac7d16 | ||
|
|
d2bae21b14 | ||
|
|
4283ab3b44 | ||
|
|
c579069071 | ||
|
|
88488c695c | ||
|
|
21594e9aa9 | ||
|
|
9ffacd4ecd | ||
|
|
9d5f5ea3bc | ||
|
|
2dbd27af76 | ||
|
|
0634a4d0c6 | ||
|
|
fa80a006b8 | ||
|
|
9d88ef5432 | ||
|
|
7b99877c68 | ||
|
|
ec81cdefb0 | ||
|
|
454d5b575c | ||
|
|
785b59e6d1 | ||
|
|
9d8fc4aa4d | ||
|
|
57ac1d9ea2 | ||
|
|
d9ea6936ab | ||
|
|
c917251e9e | ||
|
|
c805c5d6e9 | ||
|
|
adcf40afc3 | ||
|
|
d986011067 | ||
|
|
5a83636f81 | ||
|
|
d475628c70 | ||
|
|
4a890eae38 | ||
|
|
760e11bc5d | ||
|
|
96ebf2b519 | ||
|
|
4a6f4919d7 | ||
|
|
b98040c7d5 | ||
|
|
1240a8163d | ||
|
|
e15b9b5358 | ||
|
|
1617c9d482 | ||
|
|
16600fe86a | ||
|
|
50ba73860c | ||
|
|
750cdc1910 | ||
|
|
f4e2c84111 | ||
|
|
4f27750711 | ||
|
|
71d9f23068 | ||
|
|
9f7aed7602 | ||
|
|
7f2213416a | ||
|
|
9b9f0bdd4d | ||
|
|
ee0aec514f | ||
|
|
c2fd7d6ebd | ||
|
|
4a893c5267 | ||
|
|
2473183f19 | ||
|
|
7d7142d7d8 | ||
|
|
cb57cda87a | ||
|
|
f2fa812b0b | ||
|
|
ef89582d7e | ||
|
|
ae74a21305 | ||
|
|
32af63764c | ||
|
|
61ff90409d | ||
|
|
ba0c3256fa | ||
|
|
b6fe5d2cff | ||
|
|
9123fac545 | ||
|
|
c6bc388001 | ||
|
|
ea985a85af | ||
|
|
2578832002 | ||
|
|
cfada67aa6 | ||
|
|
5483682281 | ||
|
|
2a8c23aac3 | ||
|
|
88bc96fc4c | ||
|
|
588129d852 | ||
|
|
0889991c38 | ||
|
|
5c87a35fe4 | ||
|
|
418185af9a | ||
|
|
4b56cc6e08 | ||
|
|
3cef771868 | ||
|
|
59b20de7cd | ||
|
|
e0ae34f01b | ||
|
|
a9a24c96fc | ||
|
|
a202203325 | ||
|
|
83c3d76966 | ||
|
|
99734f8d72 | ||
|
|
570a0bb586 | ||
|
|
450a815d61 | ||
|
|
dafc2d2b73 | ||
|
|
0bd2edd33a | ||
|
|
807267cfdb | ||
|
|
48c9222578 | ||
|
|
b5ea56df73 | ||
|
|
2fdf6dd8f2 | ||
|
|
5b8c9eb16f | ||
|
|
9c05150c12 | ||
|
|
c7eb85ef78 | ||
|
|
4df455f2e0 | ||
|
|
653a00d63d | ||
|
|
3c9acdf724 | ||
|
|
e81d1ab9b8 | ||
|
|
ad5620efb5 | ||
|
|
f455c71338 | ||
|
|
033f2cd231 | ||
|
|
c9eccd729d | ||
|
|
b1100cd9e5 | ||
|
|
8f728ddfb2 | ||
|
|
4ef0ce112c | ||
|
|
57c14a0eba | ||
|
|
89f831e7d4 | ||
|
|
917b8409ae | ||
|
|
86fd39e3a9 | ||
|
|
04db332051 | ||
|
|
06a2f58c51 | ||
|
|
b87d55758b | ||
|
|
38ef525d5e | ||
|
|
367b1fcc33 | ||
|
|
f5c930968e | ||
|
|
5264a8c7f6 | ||
|
|
6c4b7f1479 | ||
|
|
c42c9f0002 | ||
|
|
95f299f865 | ||
|
|
09749e2c7f | ||
|
|
dc33784a76 | ||
|
|
961df1fc44 | ||
|
|
e93c1ccb73 | ||
|
|
286ad0c478 | ||
|
|
e30970ff90 | ||
|
|
14e0e4a072 | ||
|
|
60da0a15e6 | ||
|
|
0f84510e6f | ||
|
|
1dd3488973 | ||
|
|
12e5306947 | ||
|
|
9249d6c2f9 | ||
|
|
d0f07ee3a9 | ||
|
|
3992fba168 | ||
|
|
4601ac8b0e | ||
|
|
a81b0db2a8 | ||
|
|
d88751bb8b | ||
|
|
f13dfc19a0 | ||
|
|
0fccf5e50d | ||
|
|
a2aab28ba6 | ||
|
|
8e7b7caf04 | ||
|
|
8cc5ff0e70 | ||
|
|
9086f09fe2 | ||
|
|
5a6eecd694 | ||
|
|
efe9f1b442 | ||
|
|
db7919dc2f | ||
|
|
4a01644625 | ||
|
|
1ca68140f6 | ||
|
|
071177cee2 | ||
|
|
c88742fad3 | ||
|
|
791a0fd01e | ||
|
|
3b12b9d81d | ||
|
|
31e4009737 | ||
|
|
8746914f3b | ||
|
|
2fa6839ac7 | ||
|
|
b09e08c06f | ||
|
|
659f5ad301 | ||
|
|
6fe7f01a8d | ||
|
|
99f51998f2 | ||
|
|
4c13992f5d | ||
|
|
396f38598f | ||
|
|
b6e24cbd45 | ||
|
|
d2848b9c26 | ||
|
|
227ed8ae07 | ||
|
|
b622981b23 | ||
|
|
36e14cfc69 | ||
|
|
668de9bf31 | ||
|
|
3f712dce02 | ||
|
|
2eaeaf33fa | ||
|
|
8e21d612d8 | ||
|
|
398bca9fe4 | ||
|
|
07e60b9161 | ||
|
|
46d5d22f72 | ||
|
|
97c221d860 | ||
|
|
a5d29e6d56 | ||
|
|
4662f59577 | ||
|
|
131cf63d8d | ||
|
|
4d85f1daec | ||
|
|
f913cd97ee | ||
|
|
ccbeb86140 | ||
|
|
b43e0f5ebd | ||
|
|
b3c82fd7b6 | ||
|
|
15a60bb359 | ||
|
|
fe574dbbf9 | ||
|
|
7595c7e697 | ||
|
|
bd6769a3fd | ||
|
|
dc2a919e75 | ||
|
|
c20fc24f4d | ||
|
|
5f8af4527e | ||
|
|
80f3c7584b | ||
|
|
05624e3fc8 | ||
|
|
e381143a8f | ||
|
|
b03209ccef | ||
|
|
ec03ebd69f | ||
|
|
ff68caac24 | ||
|
|
51c617801d | ||
|
|
e53290088f | ||
|
|
4f7c062f3f | ||
|
|
8507aba9f8 | ||
|
|
d8b6e00fe7 | ||
|
|
c8167b77c9 | ||
|
|
c37792f58f | ||
|
|
842e5ba5e0 | ||
|
|
10d28292c6 | ||
|
|
506cc3908a | ||
|
|
ca00b02b0a | ||
|
|
201075827f | ||
|
|
961623d388 | ||
|
|
a98ab6f51d | ||
|
|
5c7fd24ea8 | ||
|
|
76ac628153 | ||
|
|
6f71bd9353 | ||
|
|
f88398e776 | ||
|
|
ed315f54e3 | ||
|
|
08c33cd1dc | ||
|
|
0464947610 | ||
|
|
1929040bb7 | ||
|
|
3af936c8a1 | ||
|
|
3bd48c1b3f | ||
|
|
298ca552c8 | ||
|
|
5dcc6a16ee | ||
|
|
318b858ce6 | ||
|
|
6c09764b35 | ||
|
|
96501322fa | ||
|
|
b1e9a74cc2 | ||
|
|
f38aa698eb | ||
|
|
366f3f68b8 | ||
|
|
276dd50650 | ||
|
|
defd6180c6 | ||
|
|
03e23da6a3 | ||
|
|
2ddaf5a06a | ||
|
|
5e1aa7d383 | ||
|
|
e1871eb325 | ||
|
|
66fc8e9e27 | ||
|
|
3259cf59f5 | ||
|
|
c6442f67c1 | ||
|
|
1998b602b9 | ||
|
|
193fca4a8b | ||
|
|
9659d0bdc7 | ||
|
|
ccf4298c81 | ||
|
|
0b461e2275 | ||
|
|
4f4ae5861a | ||
|
|
fedf368c7a | ||
|
|
c5f78fab51 | ||
|
|
56a907128a | ||
|
|
fb77cd5f7e | ||
|
|
99d674c346 | ||
|
|
9690ca0198 | ||
|
|
9351c7485f | ||
|
|
d43b82dc82 | ||
|
|
ce195bd599 | ||
|
|
c0c8a22fa3 | ||
|
|
93717c95fb | ||
|
|
a955defae5 | ||
|
|
9579102541 | ||
|
|
2423aa592f | ||
|
|
151228b2a6 | ||
|
|
025d74bbcd | ||
|
|
7626478165 | ||
|
|
3dea1eb173 | ||
|
|
bd4f68233f | ||
|
|
d6bdbf9f34 | ||
|
|
2ccfb8671e | ||
|
|
04bb67ef45 | ||
|
|
4b67429234 | ||
|
|
23e248b5d1 | ||
|
|
40dbc78407 | ||
|
|
b159018f51 | ||
|
|
17570acab2 | ||
|
|
4710609cb9 | ||
|
|
d297580d26 | ||
|
|
b50f1d0318 | ||
|
|
957c9f060d | ||
|
|
0bf0bab1eb | ||
|
|
a7c97388a9 | ||
|
|
86c480ee09 | ||
|
|
0184a00151 | ||
|
|
b9161aa06c | ||
|
|
00e42d1177 | ||
|
|
d37dd040d0 | ||
|
|
a2aef04f21 | ||
|
|
8f75434558 | ||
|
|
3dd6bcc323 | ||
|
|
063271e978 | ||
|
|
438c4fe72e | ||
|
|
f4144d6d38 | ||
|
|
eada70ba44 | ||
|
|
bed34b1ddd | ||
|
|
3439ea395b | ||
|
|
ba3bab8f49 | ||
|
|
9ba88f6baf | ||
|
|
6be0b2b6c3 | ||
|
|
e4fce1250b | ||
|
|
926bc56b3a | ||
|
|
8523803d94 | ||
|
|
4f202e5f4c | ||
|
|
7e211ef3d9 | ||
|
|
dc85ee3f0a | ||
|
|
91ae912373 | ||
|
|
9aeda891c3 | ||
|
|
5cdf448693 | ||
|
|
89c69250ef | ||
|
|
5b6a6319c2 | ||
|
|
e79e2b80c8 | ||
|
|
f8b24ac34d | ||
|
|
4ff0d6635c | ||
|
|
51b9ec30a9 | ||
|
|
377887871c | ||
|
|
d45d3892cb | ||
|
|
0bf6a220ae | ||
|
|
04a4d7c2c9 | ||
|
|
209d93ac05 | ||
|
|
c44abf4918 | ||
|
|
d7f5e89a1d | ||
|
|
72ec7ccde2 | ||
|
|
13aaa46a55 | ||
|
|
3121546fb6 | ||
|
|
51337a10af | ||
|
|
5f3104786a | ||
|
|
faec7362fe | ||
|
|
adfb216325 | ||
|
|
e0656af1fc | ||
|
|
07fe077f7f | ||
|
|
d3103adbd8 | ||
|
|
d4132072d8 | ||
|
|
b8e9dd587d | ||
|
|
c48ab4830d | ||
|
|
eedb5d0dae | ||
|
|
07849537cf | ||
|
|
4849c31add | ||
|
|
9a4f4854de | ||
|
|
9ff48e6bb5 | ||
|
|
01bca39138 | ||
|
|
6e8527e66d | ||
|
|
0d2b7967bc | ||
|
|
70c8803a79 | ||
|
|
0d2fb0754c | ||
|
|
dbca7469f2 | ||
|
|
1e57432aae | ||
|
|
7c0d3b8485 | ||
|
|
46abd47bfe | ||
|
|
2a88f5083c | ||
|
|
5ec793e045 | ||
|
|
1554f41441 | ||
|
|
9e945eb471 | ||
|
|
b5212c4467 | ||
|
|
c4dd1cfb69 | ||
|
|
00774b95a1 | ||
|
|
7de559f351 | ||
|
|
eaa9c4fdf8 | ||
|
|
6050d5873c | ||
|
|
94e61c3205 | ||
|
|
c4cf13bd97 | ||
|
|
71e22ffe2c | ||
|
|
3169a6f170 | ||
|
|
e7b190404a | ||
|
|
446e2b27d7 | ||
|
|
856df4c5f6 | ||
|
|
34237f604e | ||
|
|
6d380c8548 | ||
|
|
af0001a149 | ||
|
|
2debd5a198 | ||
|
|
59bdda6226 | ||
|
|
21345b81f1 | ||
|
|
4f03234487 | ||
|
|
3dd8ce08b8 | ||
|
|
f233af04f6 | ||
|
|
3a1501dea4 | ||
|
|
11f1229c31 | ||
|
|
acb7e972ea | ||
|
|
667665b809 | ||
|
|
1ac523ec01 | ||
|
|
ca56e5d9ca | ||
|
|
43a51c1bef | ||
|
|
68ec24797b | ||
|
|
26132fd14e | ||
|
|
5fdf9bb7d2 | ||
|
|
ca68ccd76a | ||
|
|
1f9d7c41e8 | ||
|
|
52d330d8e5 | ||
|
|
17eb509c4e | ||
|
|
48254579a2 | ||
|
|
9d93642102 | ||
|
|
a3106b1771 | ||
|
|
d2670b8473 | ||
|
|
227b7ccabd | ||
|
|
6c3e19e531 | ||
|
|
ed49a708d0 | ||
|
|
e04300a01c | ||
|
|
65cebe7edd | ||
|
|
63cda04b56 | ||
|
|
acda7bddb8 | ||
|
|
6ffc04808d | ||
|
|
c932e26f83 | ||
|
|
682ce2e1e2 | ||
|
|
9873204be6 | ||
|
|
49021fd96d | ||
|
|
5dc2871e2b | ||
|
|
481d4f3478 | ||
|
|
5cf8726e60 | ||
|
|
db6214e090 | ||
|
|
bb215ad095 | ||
|
|
df214cd6c1 | ||
|
|
ea72d7bb11 | ||
|
|
d2f1e6e03e | ||
|
|
37f19dd0fe | ||
|
|
0c987f58e6 | ||
|
|
f84758eaac | ||
|
|
8c58236e7c | ||
|
|
027328d3a6 | ||
|
|
332601ed26 | ||
|
|
6c0a449ebe | ||
|
|
b1d2e1fa10 | ||
|
|
44e1d33faa | ||
|
|
183b3c61e4 | ||
|
|
a199f2ba40 | ||
|
|
d6c4f749a6 | ||
|
|
8af2c6c397 | ||
|
|
367ef7195a | ||
|
|
43d6dbb0f2 | ||
|
|
cd0ad21132 | ||
|
|
6fa73e073f | ||
|
|
5fc231cda4 | ||
|
|
1ca8ab81c7 | ||
|
|
22d3a4a48f | ||
|
|
d70e146c1f | ||
|
|
3888a461f3 | ||
|
|
4df2c8d872 | ||
|
|
989005d616 | ||
|
|
ed05a24cc4 | ||
|
|
2cee591b0e | ||
|
|
8a71d7d254 | ||
|
|
7950eb8ed6 | ||
|
|
f59515883d | ||
|
|
2c432e0b97 | ||
|
|
524f04f34e | ||
|
|
9e7ee42eb7 | ||
|
|
6f82e80698 | ||
|
|
37680a0909 | ||
|
|
350ad98c27 | ||
|
|
2a3df5562c | ||
|
|
b0dbb49ca8 | ||
|
|
4603798996 | ||
|
|
3169833cd7 | ||
|
|
75540e8a4c | ||
|
|
9abc3e1333 | ||
|
|
fb79211514 | ||
|
|
502e7081cf | ||
|
|
dcba129a98 | ||
|
|
b856266e91 | ||
|
|
7f1f62e14a | ||
|
|
fe51ada1e8 | ||
|
|
6708c959d9 | ||
|
|
af9daaeff7 | ||
|
|
a999884adf | ||
|
|
807277c0ae | ||
|
|
0af97156c9 | ||
|
|
12ac9f9aa9 | ||
|
|
3885d5d706 | ||
|
|
f284786749 | ||
|
|
c54621eb19 | ||
|
|
2943b4a85a | ||
|
|
ed4d31ebc5 | ||
|
|
ed0b4e48d5 | ||
|
|
f9938c90ff | ||
|
|
bcdc19f0e3 | ||
|
|
fb967427e8 | ||
|
|
0b10761291 | ||
|
|
316c476bbd | ||
|
|
081cc0b9e8 | ||
|
|
560759ede8 | ||
|
|
0f98a90858 | ||
|
|
094da51d82 | ||
|
|
39097980b0 | ||
|
|
3c26bfa618 | ||
|
|
168c89aba7 | ||
|
|
0502f684e9 | ||
|
|
45cb679ea7 | ||
|
|
c9f9d55658 | ||
|
|
d285db653e | ||
|
|
dde8e35785 | ||
|
|
5860e5a46b | ||
|
|
fa4e6d8261 | ||
|
|
145df8ec67 | ||
|
|
af5cbdbed8 | ||
|
|
ba8b1bbe06 | ||
|
|
82e5e36c57 | ||
|
|
f2a7e0b28f | ||
|
|
0e86ceff73 | ||
|
|
c91de092e5 | ||
|
|
7a173f6e62 | ||
|
|
95f7e83c5c | ||
|
|
d8b621d05f | ||
|
|
fb87ad1442 | ||
|
|
c580275a01 | ||
|
|
5c2298fa37 | ||
|
|
08043bed21 | ||
|
|
906779c4b1 | ||
|
|
bd80c034ba | ||
|
|
fd69f60a49 | ||
|
|
00ed37dd02 | ||
|
|
4de815ad67 | ||
|
|
86eed7cb81 | ||
|
|
63f18a7ebb | ||
|
|
233f0423fa | ||
|
|
d5bddca01d | ||
|
|
00cb6f71da | ||
|
|
9ac35d5869 | ||
|
|
bd1db30eea | ||
|
|
6c3a5b1d69 | ||
|
|
c233baab5b | ||
|
|
aa6a5e4ac2 | ||
|
|
71560ace71 | ||
|
|
0fba4eee98 | ||
|
|
91fce3ea73 | ||
|
|
b50475bc17 | ||
|
|
40c802b148 | ||
|
|
7d9f917810 | ||
|
|
a5ae1a9734 | ||
|
|
506360716a | ||
|
|
22ad34fa0e | ||
|
|
ce0e7e4a5d | ||
|
|
907b79d3b8 | ||
|
|
863731fd6a | ||
|
|
c9f1b3229b | ||
|
|
2b8b204cfc | ||
|
|
264471af43 | ||
|
|
e31514f769 | ||
|
|
08d3ae9f02 | ||
|
|
f654c53c35 | ||
|
|
7121b64c59 | ||
|
|
cd0c9b2ddb | ||
|
|
b80bbe6587 | ||
|
|
879d41bf2d | ||
|
|
7b1cfd69d7 | ||
|
|
ff695f08f7 | ||
|
|
ef9f2a965d | ||
|
|
ac0e8b1fe1 | ||
|
|
da0f7317b4 | ||
|
|
3e81839af5 | ||
|
|
0af5574951 | ||
|
|
0ae9055ea6 | ||
|
|
885aafcea3 | ||
|
|
7445fa7ef7 | ||
|
|
a544133d73 | ||
|
|
b3c02798a3 | ||
|
|
0bd6eb1792 | ||
|
|
3ec19ee355 | ||
|
|
0215b250af | ||
|
|
6a0c9fdd34 | ||
|
|
7f1593c5d7 | ||
|
|
e420a689dc | ||
|
|
9addd56f9b | ||
|
|
a7e69a5dc5 | ||
|
|
f6a83d5de2 | ||
|
|
d1d8a40acf | ||
|
|
cb18dfaaef | ||
|
|
a22a03e501 | ||
|
|
9a35b5670e | ||
|
|
017b54f9a8 | ||
|
|
9b7e6cc5c1 | ||
|
|
209276efa8 | ||
|
|
d2fc3e8023 | ||
|
|
1afdeb7216 | ||
|
|
b754ffb047 | ||
|
|
89eb4727b4 | ||
|
|
5619947685 | ||
|
|
31e584e3e3 | ||
|
|
ad09f6491b | ||
|
|
efbe033bfb | ||
|
|
2c6f0950f6 | ||
|
|
b680788f48 | ||
|
|
5e0d4ab31d | ||
|
|
488f993f45 | ||
|
|
876407e2e7 | ||
|
|
811cbc27c0 | ||
|
|
214f925b2f | ||
|
|
cefa31eb82 | ||
|
|
25e90ff658 | ||
|
|
fa390299f9 | ||
|
|
accb036507 | ||
|
|
44690ff596 | ||
|
|
e20f819c1d | ||
|
|
1d011a2f9a | ||
|
|
bc84a78b0f | ||
|
|
6034bd0946 | ||
|
|
6abe714dff | ||
|
|
37606dab4b | ||
|
|
f9b98d6d1d | ||
|
|
786a877986 | ||
|
|
b637ae1e53 | ||
|
|
cc8a54d314 | ||
|
|
c86d8e5acf | ||
|
|
4a819026df | ||
|
|
7671ae8df7 | ||
|
|
94d0c28f69 | ||
|
|
df555d5321 | ||
|
|
c3468b7ed6 | ||
|
|
bbf0e7c0a5 | ||
|
|
3f5c1d2ade | ||
|
|
dd063d0207 | ||
|
|
309ff2997c | ||
|
|
8e8ca97eec | ||
|
|
b734958ab9 | ||
|
|
51d7559a2c | ||
|
|
5c4f706fe4 | ||
|
|
7ac32a19b5 | ||
|
|
6e4da53e31 | ||
|
|
8e3dbcb7c0 | ||
|
|
5287984307 | ||
|
|
5539f1d498 | ||
|
|
e8cce4d1a1 | ||
|
|
ab0bc75e43 | ||
|
|
2d8053a9df | ||
|
|
c4dd64940e | ||
|
|
414ac5433d | ||
|
|
b2c01ffe21 | ||
|
|
517dea6958 | ||
|
|
225e6c6b9f | ||
|
|
1dd4fecffb | ||
|
|
5f2645b84a | ||
|
|
fc4b11e224 | ||
|
|
cf3383dd59 | ||
|
|
ead6ba50e7 | ||
|
|
7127b989c6 | ||
|
|
3fc755d92f | ||
|
|
0dc43e5211 | ||
|
|
4ddbb17a11 | ||
|
|
bfe31645ab | ||
|
|
09f843727d | ||
|
|
191a6b7d2b | ||
|
|
096511fc89 | ||
|
|
85687ce4a2 | ||
|
|
a6bfb23d20 | ||
|
|
c2f3413dc5 | ||
|
|
755daeb024 | ||
|
|
26233ac078 | ||
|
|
2ee2876855 | ||
|
|
ee2e6e5dce | ||
|
|
facb6b2e81 | ||
|
|
ec3c83c0c9 | ||
|
|
0ad4fb7273 | ||
|
|
763d5f67cd | ||
|
|
b7d4c997a3 | ||
|
|
bd7f45e398 | ||
|
|
748440ced3 | ||
|
|
5c7795bb63 | ||
|
|
f7ebd2e793 | ||
|
|
9298891d00 | ||
|
|
3a1dc6f23e | ||
|
|
e250153204 | ||
|
|
a2e5a6628d | ||
|
|
6b3278cd8e | ||
|
|
16c4864e67 | ||
|
|
11f225aada | ||
|
|
cd8affc255 | ||
|
|
8677fb18bb | ||
|
|
8979981553 | ||
|
|
4fa212c43b | ||
|
|
a9da5ebff6 | ||
|
|
38ebfec1fb | ||
|
|
6c7acd585e | ||
|
|
e8efaa5ed8 | ||
|
|
5a83b30303 | ||
|
|
986b23856f | ||
|
|
96872e2b3b | ||
|
|
42ffed3f57 | ||
|
|
a006c6962c | ||
|
|
cc3f7995fb | ||
|
|
3f399225fa | ||
|
|
dc5d0e367c | ||
|
|
a2803e4f5f | ||
|
|
b1d392e415 | ||
|
|
cbf00e9378 | ||
|
|
414838cae8 | ||
|
|
3ee14164db | ||
|
|
63712de170 | ||
|
|
43673d6694 | ||
|
|
f195648b90 | ||
|
|
06f77acfa1 | ||
|
|
f04a693fbe | ||
|
|
c012711763 | ||
|
|
c6daa8e59b | ||
|
|
7cc6c1a10f | ||
|
|
7f73cc1694 | ||
|
|
87973ac692 | ||
|
|
9a13ec736d | ||
|
|
1a3041690f | ||
|
|
84e5ad7346 | ||
|
|
4559bb5553 | ||
|
|
2d51a78ee7 | ||
|
|
95a380ae9e | ||
|
|
d8c59fcb73 | ||
|
|
8dff17d78b | ||
|
|
53d5de685c | ||
|
|
f0ce8b8fd4 | ||
|
|
aeb1f10621 | ||
|
|
a3e7f513e6 | ||
|
|
8b63a6f29b | ||
|
|
133a8ec225 | ||
|
|
131747ea4b | ||
|
|
e982790ad5 | ||
|
|
a7f1f886d3 | ||
|
|
d034f10af3 | ||
|
|
a2b817f0c0 | ||
|
|
bce6d44e06 | ||
|
|
d5f2c36abd | ||
|
|
d86b3f04b1 | ||
|
|
72a90199db | ||
|
|
e69702799f | ||
|
|
118aead9b9 | ||
|
|
49bb861045 | ||
|
|
1d6661e7e4 | ||
|
|
a43173fa90 | ||
|
|
d2a24b5186 | ||
|
|
40f44c2389 | ||
|
|
441b5bd1dc | ||
|
|
dc2f0d59cb | ||
|
|
4dcfacf2d5 | ||
|
|
b7485106ef | ||
|
|
f82893496b | ||
|
|
c418e58f88 | ||
|
|
054e557531 | ||
|
|
3020dc75ab | ||
|
|
9ea359de52 | ||
|
|
c5daf7d1b6 | ||
|
|
b7d7f424c5 | ||
|
|
e1fa6f1a0d | ||
|
|
a23e0fef8d | ||
|
|
0fd0b08c09 | ||
|
|
ce1690b450 | ||
|
|
46bd473664 | ||
|
|
6030fec6cb | ||
|
|
b7323dc403 | ||
|
|
c6d74d6c12 | ||
|
|
a42709f814 | ||
|
|
3016844dd7 | ||
|
|
8fbb55a0c8 | ||
|
|
f046a7e7fe | ||
|
|
92ce707268 | ||
|
|
3f5887cc03 | ||
|
|
fb3f5d86cf | ||
|
|
512492bf30 | ||
|
|
2477c3914e | ||
|
|
afee1ee1c0 | ||
|
|
f233593909 | ||
|
|
3253cc38b2 | ||
|
|
b154e1baa1 | ||
|
|
714599aeaa | ||
|
|
119a9983a9 | ||
|
|
8866494c94 | ||
|
|
2e06b4be66 | ||
|
|
0ec2e71f58 | ||
|
|
fc3a8b944e | ||
|
|
2ed2ef3b28 | ||
|
|
a3c5da90d2 | ||
|
|
e7e91b6931 | ||
|
|
1f9d02e7fa | ||
|
|
0895ca3e4a | ||
|
|
2ee70db7cd | ||
|
|
c9c1547813 | ||
|
|
9a8c868793 | ||
|
|
13ec5da84e | ||
|
|
3e34d000f2 | ||
|
|
12203461f0 | ||
|
|
a337564864 | ||
|
|
734db6f932 | ||
|
|
d76e3c0488 | ||
|
|
c0de20dda0 | ||
|
|
79c37f9fe4 | ||
|
|
7f520a6f28 | ||
|
|
23f72ecf7b | ||
|
|
8c57e7621b | ||
|
|
c460b3f3be | ||
|
|
1c001ee138 | ||
|
|
fab82107bb | ||
|
|
78362af168 | ||
|
|
1c58b75ac2 | ||
|
|
41568c885d | ||
|
|
dba2efe367 | ||
|
|
e3b07f569a | ||
|
|
65a307970b | ||
|
|
3e3ca14b4c | ||
|
|
8b45d1c928 | ||
|
|
0fe7a69b39 | ||
|
|
6d09f1b6c0 | ||
|
|
1ada20ac7b | ||
|
|
d04eedeb8d | ||
|
|
f275002ebe | ||
|
|
d4e0941c27 | ||
|
|
9dc57359b9 | ||
|
|
06b31d7cf0 | ||
|
|
4d7b8bdb25 | ||
|
|
421a8cc6b7 | ||
|
|
3a448fda91 | ||
|
|
3706c76622 | ||
|
|
9a6710e330 | ||
|
|
1113980b20 | ||
|
|
e890c4ae1b | ||
|
|
7ada625161 | ||
|
|
7d8dd54b19 | ||
|
|
0b275c4933 | ||
|
|
e529bbed90 | ||
|
|
39e97779ec | ||
|
|
629d46ca25 | ||
|
|
c5a35ad56f | ||
|
|
1e94161ec1 | ||
|
|
6f78ff200c | ||
|
|
02e96484a8 | ||
|
|
67b0e4dd15 | ||
|
|
a3b21022af | ||
|
|
ad92e7b888 | ||
|
|
c73522de2e | ||
|
|
14f5e8e32e | ||
|
|
f3797abecf | ||
|
|
5b7ec19778 | ||
|
|
e71c617bfd | ||
|
|
1310bef528 | ||
|
|
f1432992d3 | ||
|
|
348b7bf4eb | ||
|
|
30479cc5a2 | ||
|
|
1ba1bdec2d | ||
|
|
8993af4378 | ||
|
|
7246011b62 | ||
|
|
058d868edd | ||
|
|
9a58d0e559 | ||
|
|
281c0e1553 | ||
|
|
52a63a65ef | ||
|
|
cdac8d56d5 | ||
|
|
b04cb23ed5 | ||
|
|
7b4be209aa | ||
|
|
c712b7c46c | ||
|
|
22c6892870 | ||
|
|
134650eb44 | ||
|
|
506ba022f1 | ||
|
|
fc6d572a6c | ||
|
|
e6eb91c5f9 | ||
|
|
ced986e010 | ||
|
|
cde9b3ac85 | ||
|
|
b54c079766 | ||
|
|
2db17a57d2 | ||
|
|
a992c5b8d3 | ||
|
|
58f1a9bb30 | ||
|
|
269b59c2ba | ||
|
|
d462c8838f | ||
|
|
1297ac77b9 | ||
|
|
d57d3cf1f6 | ||
|
|
ae85aa33fd | ||
|
|
f2eadacf09 | ||
|
|
9ebc41ed6f | ||
|
|
f9dfdd58df | ||
|
|
c9f9388ef6 | ||
|
|
7ae6712d56 | ||
|
|
98a283b4ec | ||
|
|
d524f6b395 | ||
|
|
6b716683e2 | ||
|
|
ba2c33af0b | ||
|
|
de11f602d5 | ||
|
|
b8cb180e4b | ||
|
|
260c8e0227 | ||
|
|
e579504181 | ||
|
|
7c034b427e | ||
|
|
08868594ae | ||
|
|
f25d175b5d | ||
|
|
cc6e548a78 | ||
|
|
17a4299f74 | ||
|
|
776f4dc316 | ||
|
|
5db55d9e29 | ||
|
|
5c9564ac08 | ||
|
|
5c5a89c1a4 | ||
|
|
176413d312 | ||
|
|
b70ecc3dd3 | ||
|
|
89670e5ce4 | ||
|
|
174e1acbc7 | ||
|
|
1f09a24a72 | ||
|
|
eed91ddf46 | ||
|
|
96a7118d05 | ||
|
|
6eec896282 | ||
|
|
a78bb252de | ||
|
|
0ba07f19f7 | ||
|
|
a49a6bfd88 | ||
|
|
b87931c0a9 | ||
|
|
9b640d586b | ||
|
|
7440ffc0e6 | ||
|
|
63e901cd0b | ||
|
|
af4e9c30f5 | ||
|
|
5805ffebec | ||
|
|
39bfacf1d5 | ||
|
|
8d30fc2718 | ||
|
|
19daff36b0 | ||
|
|
c34c8ff358 | ||
|
|
af68cb6029 | ||
|
|
6b6b212643 | ||
|
|
dd2a71fa8f | ||
|
|
cd72d133a3 | ||
|
|
d3662d0e34 | ||
|
|
cf6219bb6f | ||
|
|
45eeb5065f | ||
|
|
f563eb1f63 | ||
|
|
2c1f31cecb | ||
|
|
ef16c409ef | ||
|
|
1029f9521c | ||
|
|
825eca078d | ||
|
|
1eccfb798f | ||
|
|
b9b9f3c136 | ||
|
|
7810da51a8 | ||
|
|
a470138450 | ||
|
|
4e20a02fe5 | ||
|
|
7bad731ad2 | ||
|
|
eeb54290b3 | ||
|
|
dc1e73dcb7 | ||
|
|
94be12b9e4 | ||
|
|
1862fb77ff | ||
|
|
782463589e | ||
|
|
ff570c4a6b | ||
|
|
06b619f0ed | ||
|
|
f5cc6cfd07 | ||
|
|
0f5cf00e35 | ||
|
|
105ff694f2 | ||
|
|
26ff6be63c | ||
|
|
47e3da9ebf | ||
|
|
b7ce5ba82a | ||
|
|
5723abe6eb | ||
|
|
95a9b0427c | ||
|
|
0692fea9d8 | ||
|
|
b0882a5cd2 | ||
|
|
4c1a0005e6 | ||
|
|
05ceed926c | ||
|
|
b691521662 | ||
|
|
ce300d88ee | ||
|
|
05c0249672 | ||
|
|
2498c13078 | ||
|
|
ab5dae741a | ||
|
|
cddad94e45 | ||
|
|
2f0a40c1c8 | ||
|
|
24b07aaaef | ||
|
|
ece1100d65 | ||
|
|
3b1ff5bf41 | ||
|
|
e5b03634ae | ||
|
|
1bd1c61c3c | ||
|
|
9cd81d87b2 | ||
|
|
59efea1b0e | ||
|
|
59f18583d1 | ||
|
|
d0b40bab47 | ||
|
|
d76192cce1 | ||
|
|
0e828d802e | ||
|
|
9505d7cc51 | ||
|
|
1c4072e231 | ||
|
|
86e13ea06f | ||
|
|
c12d3870cd | ||
|
|
fce76a13cb | ||
|
|
82b14370fc | ||
|
|
a9d8e9dcd8 | ||
|
|
542e989046 | ||
|
|
f5c199740d | ||
|
|
f37b81c8b7 | ||
|
|
c0ea69ee24 | ||
|
|
5640cbf653 | ||
|
|
6d81e5c87a | ||
|
|
3c7ff97ed4 | ||
|
|
2120ff8037 | ||
|
|
92c35c6aa6 | ||
|
|
149b16aefd | ||
|
|
114c38c1ff | ||
|
|
e5269a4151 | ||
|
|
81584c6d51 | ||
|
|
0d9ae241c9 | ||
|
|
e726e7aad8 | ||
|
|
c7c05ea869 | ||
|
|
b5da8423a6 | ||
|
|
c3de0a2d4b | ||
|
|
83880aed52 | ||
|
|
de56b753d1 | ||
|
|
dab01e3f3f | ||
|
|
e46ab72718 | ||
|
|
9f6d7eb587 | ||
|
|
bbd9098e44 | ||
|
|
47ad4e3fe8 | ||
|
|
9330d2e1e8 | ||
|
|
020e19f770 | ||
|
|
3be5600caf | ||
|
|
22dd275b15 | ||
|
|
6342e76e19 | ||
|
|
55dd149a03 | ||
|
|
39a0f28753 | ||
|
|
dd45b448d9 | ||
|
|
7740150576 | ||
|
|
4f367faf4d | ||
|
|
3840186dd8 | ||
|
|
d77fcea365 | ||
|
|
ed51a45187 | ||
|
|
c832226aa1 | ||
|
|
a20375372d | ||
|
|
ba86988101 | ||
|
|
6073e3f345 | ||
|
|
d31ccacf57 | ||
|
|
7e3d2029e0 | ||
|
|
de48e65091 | ||
|
|
3243365210 | ||
|
|
7ae0338f5c | ||
|
|
b2460fbee2 | ||
|
|
8dc3f2146a | ||
|
|
a993496ab4 | ||
|
|
61e72ef50b | ||
|
|
d7ac878efd | ||
|
|
e5a0db8782 | ||
|
|
24d4840c93 | ||
|
|
fa70798fb5 | ||
|
|
1af480ea3b | ||
|
|
a76fc0ee5a | ||
|
|
80e86d6c1b | ||
|
|
dc13e39bb1 | ||
|
|
98c5871d38 | ||
|
|
5a109d9293 | ||
|
|
56316bc980 | ||
|
|
21c8e65d13 | ||
|
|
86d8079739 | ||
|
|
d2be45bce1 | ||
|
|
5d048c18bc | ||
|
|
0fb779d363 | ||
|
|
d0ed82a686 | ||
|
|
d33b68ccc9 | ||
|
|
26f068bcab | ||
|
|
f0dc3725e8 | ||
|
|
2de22b408b | ||
|
|
04b62b139d | ||
|
|
2f20f3c65d | ||
|
|
53b3e5af1b | ||
|
|
7dbb98c2e5 | ||
|
|
8b35cda4c6 | ||
|
|
cb36a37779 | ||
|
|
704c5f2de7 | ||
|
|
3fcb0d2d6b | ||
|
|
2dfe0ed42e | ||
|
|
ac48fbae9c | ||
|
|
6048a7143a | ||
|
|
7c24db07c2 | ||
|
|
271cdac474 | ||
|
|
79e2c132cc | ||
|
|
b5736fb5a7 | ||
|
|
7822a6b000 | ||
|
|
306b63599c | ||
|
|
3021fb546e | ||
|
|
a5bd437d48 | ||
|
|
08156186fa | ||
|
|
f1006ca8b0 | ||
|
|
93c85711d1 | ||
|
|
e5ef5f2410 | ||
|
|
52a5729298 | ||
|
|
b9849580f8 | ||
|
|
4525161e7c | ||
|
|
dee6d18d69 | ||
|
|
d44179142f | ||
|
|
c66c01245b | ||
|
|
bce6916c13 | ||
|
|
681c43631b | ||
|
|
2f740fe471 | ||
|
|
b1c10c8454 | ||
|
|
1d5b3aadea | ||
|
|
2d420cd72c | ||
|
|
707d6880a8 | ||
|
|
dbad1a8d45 | ||
|
|
36eaff92e5 | ||
|
|
e51c299937 | ||
|
|
8c7953a47c | ||
|
|
4527784905 | ||
|
|
ee8a93ae9a | ||
|
|
6096362052 | ||
|
|
89c51e7649 | ||
|
|
6c92076ec3 | ||
|
|
2bba4134fb | ||
|
|
10175c8d57 | ||
|
|
7804bf0a9a | ||
|
|
336c95ce5b | ||
|
|
babe891242 | ||
|
|
bb37e93f52 | ||
|
|
aa0f2c64ff | ||
|
|
e66ca267f4 | ||
|
|
eeb5ca42e0 | ||
|
|
74ec90c725 | ||
|
|
03ee742981 | ||
|
|
557c63b372 | ||
|
|
b4c86bcf40 | ||
|
|
0094c1ecf5 | ||
|
|
6b5fcf53eb | ||
|
|
4b001a77b3 | ||
|
|
357c08c5b3 | ||
|
|
e7d9ec50dc | ||
|
|
09b0ba31ef | ||
|
|
8231bc931b | ||
|
|
26ffa078ef | ||
|
|
eb60aca34f | ||
|
|
4d3020421a | ||
|
|
f1ce0a1cf3 | ||
|
|
dd28a645a1 | ||
|
|
561e3c780d | ||
|
|
8371e34d87 | ||
|
|
46fd79604d | ||
|
|
d08c2de619 | ||
|
|
a452a05e52 | ||
|
|
0a96aa3aaf | ||
|
|
07bcaaebf9 | ||
|
|
0cde7c8ac1 | ||
|
|
b285e98988 | ||
|
|
ab40ba2f75 | ||
|
|
bbcb8ba3e7 | ||
|
|
ef48de34f7 | ||
|
|
7e898cf60c | ||
|
|
2f5cea0e73 | ||
|
|
282abdd804 | ||
|
|
9b178c5bb2 | ||
|
|
d491663143 | ||
|
|
8eaeba6486 | ||
|
|
631e67949e | ||
|
|
77d2cba155 | ||
|
|
2149092c7a | ||
|
|
100d1361b6 | ||
|
|
76f5266fa1 | ||
|
|
3ebe3b1196 | ||
|
|
c4f96c2fba | ||
|
|
d880f2ffbc | ||
|
|
f8f5a7ceaa | ||
|
|
b01839e9a4 | ||
|
|
75dbf12ae6 | ||
|
|
9bb89dced5 | ||
|
|
661fe5df66 | ||
|
|
8a93437e55 | ||
|
|
b20752f13e | ||
|
|
61967f6e1b | ||
|
|
f0fef4f232 | ||
|
|
7eb10a08b8 | ||
|
|
4c83653d5d | ||
|
|
3149cd03be | ||
|
|
5314765410 | ||
|
|
621a37be15 | ||
|
|
6de104a03a | ||
|
|
97560509ea | ||
|
|
32aaecd832 | ||
|
|
dfba8fbe5e | ||
|
|
32fea6523f | ||
|
|
d1c1a18226 | ||
|
|
04558beabe | ||
|
|
425d0d77c5 | ||
|
|
edf7cd29dd | ||
|
|
27318dded6 | ||
|
|
11fe0c5b4b | ||
|
|
886f9d82f2 | ||
|
|
4f2fb4af5d | ||
|
|
6c8eab734e | ||
|
|
9d5d6aff38 | ||
|
|
705cd571a5 | ||
|
|
48d3c75745 | ||
|
|
6fbd28d228 | ||
|
|
285cb78962 | ||
|
|
708655d9b2 | ||
|
|
9bd7ffe952 | ||
|
|
8febd90f2a | ||
|
|
51109ea485 | ||
|
|
1579c23ff1 | ||
|
|
bf18ecae13 | ||
|
|
89971925ca | ||
|
|
2ba007ee4f | ||
|
|
d1cc3c34c9 | ||
|
|
de79f9338a | ||
|
|
5471bfd5a8 | ||
|
|
961df010cb | ||
|
|
103986b320 | ||
|
|
764c0cdb03 | ||
|
|
12b09fab67 | ||
|
|
ed5a8ab090 | ||
|
|
41fa562dce | ||
|
|
6c2ce06fea | ||
|
|
ef019cdbfa | ||
|
|
1b02a1a6f3 | ||
|
|
b6d97cfffb | ||
|
|
dce30a27b9 | ||
|
|
1543899795 | ||
|
|
6d94acee8f | ||
|
|
37a7ad4795 | ||
|
|
d7d241196e | ||
|
|
fa606b38b7 | ||
|
|
9ae4d45243 | ||
|
|
1cd5681967 | ||
|
|
eab488e64f | ||
|
|
50e718b1e7 | ||
|
|
7c36e5c0e6 | ||
|
|
1b62ed1e7e | ||
|
|
c3d41f0d48 | ||
|
|
9daacd7aee | ||
|
|
ece11dc3d8 | ||
|
|
66595a3597 | ||
|
|
6e42ee1bd4 | ||
|
|
f3cc614427 | ||
|
|
4960890d70 | ||
|
|
76f0f3cbf2 | ||
|
|
f5f04bcc4b | ||
|
|
c232411e96 | ||
|
|
fef37b0222 | ||
|
|
7ad557f2f8 | ||
|
|
ef70052b0e | ||
|
|
202426f536 | ||
|
|
d240415671 | ||
|
|
1aca22b5f8 | ||
|
|
ff970ee3f5 | ||
|
|
51a46a8ad7 | ||
|
|
bcff1ced5e | ||
|
|
38ff7d87c8 | ||
|
|
7ec0c52439 | ||
|
|
905dd20d0c | ||
|
|
6abaad1ae8 | ||
|
|
89aec52503 | ||
|
|
2aef6a2174 | ||
|
|
b8e8d975aa | ||
|
|
6e0330ff65 | ||
|
|
3aa7178382 | ||
|
|
439bf7641e | ||
|
|
34042028b3 | ||
|
|
44a281534d | ||
|
|
cf12a56b4c | ||
|
|
2c6324e3e5 | ||
|
|
e442ba863a | ||
|
|
2b4849a2fa | ||
|
|
17e16f5e79 | ||
|
|
b176ff6626 | ||
|
|
e5471d8318 | ||
|
|
902bb7a198 | ||
|
|
b037e6356e | ||
|
|
824628061b | ||
|
|
449abace66 | ||
|
|
4fc044d368 | ||
|
|
8cd1d43798 | ||
|
|
acd3df33b6 | ||
|
|
1bc8fd9b49 | ||
|
|
12f5e4b46e | ||
|
|
8df14ee845 | ||
|
|
550d6d66d1 | ||
|
|
7480d34742 | ||
|
|
04cc513bbd | ||
|
|
bb32831a60 | ||
|
|
ea690c285b | ||
|
|
28879712e9 | ||
|
|
3c2e43d883 | ||
|
|
5041880854 | ||
|
|
2c904afd04 | ||
|
|
2cc13fb74a | ||
|
|
df3c3bca02 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,7 +2,6 @@
|
|||||||
*build*/
|
*build*/
|
||||||
*flymake*
|
*flymake*
|
||||||
CMakeLists.txt.user*
|
CMakeLists.txt.user*
|
||||||
*.patch
|
|
||||||
*~
|
*~
|
||||||
*.autosave
|
*.autosave
|
||||||
doc/_build/*
|
doc/_build/*
|
||||||
|
|||||||
5
.gitmodules
vendored
5
.gitmodules
vendored
@@ -3,7 +3,10 @@
|
|||||||
url = https://github.com/owncloud/documentation
|
url = https://github.com/owncloud/documentation
|
||||||
[submodule "src/3rdparty/qtmacgoodies"]
|
[submodule "src/3rdparty/qtmacgoodies"]
|
||||||
path = src/3rdparty/qtmacgoodies
|
path = src/3rdparty/qtmacgoodies
|
||||||
url = git://github.com/guruz/qtmacgoodies.git
|
url = git://github.com/shadone/qtmacgoodies.git
|
||||||
[submodule "binary"]
|
[submodule "binary"]
|
||||||
path = binary
|
path = binary
|
||||||
url = git://github.com/owncloud/owncloud-client-binary.git
|
url = git://github.com/owncloud/owncloud-client-binary.git
|
||||||
|
[submodule "src/3rdparty/libcrashreporter-qt"]
|
||||||
|
path = src/3rdparty/libcrashreporter-qt
|
||||||
|
url = git://github.com/dschmidt/libcrashreporter-qt.git
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
cmake_policy(VERSION 2.8.0)
|
cmake_policy(VERSION 2.8.0)
|
||||||
|
|
||||||
project(mirall)
|
project(client)
|
||||||
set(PACKAGE "mirall")
|
|
||||||
set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
|
|
||||||
|
|
||||||
include(Warnings)
|
|
||||||
|
|
||||||
set(OEM_THEME_DIR "" CACHE STRING "Define directory containing a custom theme")
|
set(OEM_THEME_DIR "" CACHE STRING "Define directory containing a custom theme")
|
||||||
if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
|
if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
|
||||||
@@ -14,15 +9,38 @@ if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
|
|||||||
else ()
|
else ()
|
||||||
include ( ${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake )
|
include ( ${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake )
|
||||||
endif()
|
endif()
|
||||||
|
# need this logic to not mess with re/uninstallations via macosx.pkgproj
|
||||||
|
if(${APPLICATION_REV_DOMAIN} STREQUAL "com.owncloud.desktopclient")
|
||||||
|
set(APPLICATION_REV_DOMAIN_INSTALLER "com.ownCloud.client")
|
||||||
|
else()
|
||||||
|
set(APPLICATION_REV_DOMAIN_INSTALLER ${APPLICATION_REV_DOMAIN})
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT DEFINED APPLICATION_SHORTNAME)
|
if (NOT DEFINED APPLICATION_SHORTNAME)
|
||||||
set ( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
|
set ( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(PACKAGE "${APPLICATION_SHORTNAME}-client")
|
||||||
|
set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
|
||||||
|
|
||||||
|
if(NOT CRASHREPORTER_EXECUTABLE)
|
||||||
|
set(CRASHREPORTER_EXECUTABLE "${APPLICATION_EXECUTABLE}_crash_reporter")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(Warnings)
|
||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/VERSION.cmake)
|
include(${CMAKE_SOURCE_DIR}/VERSION.cmake)
|
||||||
configure_file( ${CMAKE_SOURCE_DIR}/src/mirall/version.h.in "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/version.h" )
|
|
||||||
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/")
|
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/")
|
||||||
|
|
||||||
|
# disable the crashrepoter if libcrashreporter-qt is not available or we're building for ARM
|
||||||
|
if( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/3rdparty/libcrashreporter-qt/CMakeLists.txt")
|
||||||
|
set( WITH_CRASHREPORTER OFF )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT WITH_CRASHREPORTER)
|
||||||
|
message(STATUS "Build of crashreporter disabled.")
|
||||||
|
endif()
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## handle DBUS for Fdo notifications
|
## handle DBUS for Fdo notifications
|
||||||
if( UNIX AND NOT APPLE )
|
if( UNIX AND NOT APPLE )
|
||||||
@@ -38,12 +56,12 @@ include(QtVersionAbstraction)
|
|||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
|
|
||||||
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
|
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
|
||||||
|
|
||||||
# if we cannot get it from git, directly try .tag (packages)
|
# if we cannot get it from git, directly try .tag (packages)
|
||||||
# this will work if the tar balls have been properly created
|
# this will work if the tar balls have been properly created
|
||||||
# via git-archive.
|
# via git-archive.
|
||||||
if (GIT_SHA1)
|
|
||||||
if (${GIT_SHA1} STREQUAL "GITDIR-NOTFOUND")
|
if (${GIT_SHA1} STREQUAL "GITDIR-NOTFOUND")
|
||||||
file(READ ${CMAKE_SOURCE_DIR}/.tag sha1_candidate)
|
file(READ ${CMAKE_SOURCE_DIR}/.tag sha1_candidate)
|
||||||
string(REPLACE "\n" "" sha1_candidate ${sha1_candidate})
|
string(REPLACE "\n" "" sha1_candidate ${sha1_candidate})
|
||||||
@@ -52,7 +70,7 @@ if (${GIT_SHA1} STREQUAL "GITDIR-NOTFOUND")
|
|||||||
set (GIT_SHA1 "${sha1_candidate}")
|
set (GIT_SHA1 "${sha1_candidate}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
message(STATUS "GIT_SHA1 ${GIT_SHA1}")
|
||||||
|
|
||||||
set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
|
set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
|
||||||
set(DATADIR ${DATA_INSTALL_DIR})
|
set(DATADIR ${DATA_INSTALL_DIR})
|
||||||
@@ -84,6 +102,11 @@ if(TOKEN_AUTH_ONLY)
|
|||||||
add_definitions(-DTOKEN_AUTH_ONLY=1)
|
add_definitions(-DTOKEN_AUTH_ONLY=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(NO_MSG_HANDLER "Don't redirect QDebug outputs to the log window/file" OFF)
|
||||||
|
if(NO_MSG_HANDLER)
|
||||||
|
add_definitions(-DNO_MSG_HANDLER=1)
|
||||||
|
endif()
|
||||||
|
|
||||||
# this option creates only libocsync and libowncloudsync
|
# this option creates only libocsync and libowncloudsync
|
||||||
option(BUILD_LIBRARIES_ONLY "BUILD_LIBRARIES_ONLY" OFF)
|
option(BUILD_LIBRARIES_ONLY "BUILD_LIBRARIES_ONLY" OFF)
|
||||||
|
|
||||||
@@ -100,7 +123,27 @@ endif()
|
|||||||
#if( UNIX AND NOT APPLE ) # Fdo notifications
|
#if( UNIX AND NOT APPLE ) # Fdo notifications
|
||||||
# find_package(Qt4 4.7.0 COMPONENTS QtDBus REQUIRED )
|
# find_package(Qt4 4.7.0 COMPONENTS QtDBus REQUIRED )
|
||||||
#endif()
|
#endif()
|
||||||
find_package(Neon REQUIRED)
|
|
||||||
|
|
||||||
|
set(USE_NEON TRUE)
|
||||||
|
if(HAVE_QT5)
|
||||||
|
message(STATUS "Using Qt ${Qt5Core_VERSION_MAJOR}.${Qt5Core_VERSION_MINOR}.x")
|
||||||
|
if (${Qt5Core_VERSION_MAJOR} EQUAL "5")
|
||||||
|
if (${Qt5Core_VERSION_MINOR} EQUAL "4" OR ${Qt5Core_VERSION_MINOR} GREATER 4)
|
||||||
|
message(STATUS "We would not require Neon in this setup, compile without!")
|
||||||
|
set(USE_NEON FALSE)
|
||||||
|
else()
|
||||||
|
message(STATUS "Still requiring Neon with this Qt version :-( Qt 5.4 is better!")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "If possible compile me with Qt 5.4 which is much faster/better.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (USE_NEON)
|
||||||
|
find_package(Neon REQUIRED)
|
||||||
|
endif(USE_NEON)
|
||||||
|
find_package(OpenSSL 1.0.0 REQUIRED)
|
||||||
|
|
||||||
if(NOT TOKEN_AUTH_ONLY)
|
if(NOT TOKEN_AUTH_ONLY)
|
||||||
if (Qt5Core_DIR)
|
if (Qt5Core_DIR)
|
||||||
@@ -122,17 +165,18 @@ endif()
|
|||||||
find_package(Sphinx)
|
find_package(Sphinx)
|
||||||
find_package(PdfLatex)
|
find_package(PdfLatex)
|
||||||
|
|
||||||
|
find_package(SQLite3 3.8.0 REQUIRED)
|
||||||
|
# On some OS, we want to use our own, not the system sqlite
|
||||||
|
if (USE_OUR_OWN_SQLITE3)
|
||||||
|
include_directories(BEFORE ${SQLITE3_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(ZLIB)
|
||||||
|
|
||||||
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||||
|
|
||||||
configure_file(test/test_journal.db "${CMAKE_BINARY_DIR}/test/test_journal.db" COPYONLY)
|
configure_file(test/test_journal.db "${CMAKE_BINARY_DIR}/test/test_journal.db" COPYONLY)
|
||||||
|
|
||||||
# Copy that logo, the installer uses it later
|
|
||||||
if(BUILD_OWNCLOUD_OSX_BUNDLE)
|
|
||||||
install(FILES resources/owncloud_logo_blue.png DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(OwnCloudCPack.cmake)
|
include(OwnCloudCPack.cmake)
|
||||||
|
|
||||||
add_definitions(-DUNICODE)
|
add_definitions(-DUNICODE)
|
||||||
@@ -141,15 +185,17 @@ if( WIN32 )
|
|||||||
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
||||||
endif( WIN32 )
|
endif( WIN32 )
|
||||||
|
|
||||||
# Handle Translations, pick all mirall_* files from trans directory.
|
# Handle Translations, pick all client_* files from trans directory.
|
||||||
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/mirall_*.ts)
|
file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts)
|
||||||
set(TRANSLATIONS ${TRANS_FILES})
|
set(TRANSLATIONS ${TRANS_FILES})
|
||||||
|
|
||||||
add_subdirectory(csync)
|
add_subdirectory(csync)
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
if(NOT BUILD_LIBRARIES_ONLY)
|
||||||
add_subdirectory(shell_integration)
|
add_subdirectory(shell_integration)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
add_subdirectory(admin)
|
add_subdirectory(admin)
|
||||||
|
endif(NOT BUILD_LIBRARIES_ONLY)
|
||||||
|
|
||||||
if(UNIT_TESTING)
|
if(UNIT_TESTING)
|
||||||
include(CTest)
|
include(CTest)
|
||||||
@@ -158,7 +204,7 @@ if(UNIT_TESTING)
|
|||||||
endif(UNIT_TESTING)
|
endif(UNIT_TESTING)
|
||||||
|
|
||||||
if(BUILD_OWNCLOUD_OSX_BUNDLE)
|
if(BUILD_OWNCLOUD_OSX_BUNDLE)
|
||||||
configure_file(sync-exclude.lst ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/sync-exclude.lst COPYONLY)
|
install(FILES sync-exclude.lst DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/)
|
||||||
else()
|
else()
|
||||||
install( FILES sync-exclude.lst DESTINATION ${SYSCONFDIR}/${APPLICATION_SHORTNAME} )
|
install( FILES sync-exclude.lst DESTINATION ${SYSCONFDIR}/${APPLICATION_SHORTNAME} )
|
||||||
configure_file(sync-exclude.lst bin/sync-exclude.lst COPYONLY)
|
configure_file(sync-exclude.lst bin/sync-exclude.lst COPYONLY)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ direct these to the [mailing list][mailinglist] or our [forum][forum].
|
|||||||
We are also available on [IRC][irc].
|
We are also available on [IRC][irc].
|
||||||
|
|
||||||
### Bug Reporting Guidelines
|
### Bug Reporting Guidelines
|
||||||
* Important: Report the issue using our [template][template], it includes all the
|
* __Important__: Report the issue using our [template][template], it includes all the
|
||||||
informations we need to track down the issue.
|
informations we need to track down the issue.
|
||||||
* This repository is *only* for issues within the ownCloud desktop client.
|
* This repository is *only* for issues within the ownCloud desktop client.
|
||||||
Issues in other compontents should be reported in their own repositores:
|
Issues in other compontents should be reported in their own repositores:
|
||||||
@@ -22,7 +22,7 @@ If your issue appears to be a bug, and hasn't been reported, open a new issue.
|
|||||||
Help us to maximize the effort we can spend fixing issues and adding new
|
Help us to maximize the effort we can spend fixing issues and adding new
|
||||||
features, by not reporting duplicate issues.
|
features, by not reporting duplicate issues.
|
||||||
|
|
||||||
[template]: https://raw.github.com/owncloud/mirall/master/issue_template.md
|
[template]: https://raw.github.com/owncloud/client/master/issue_template.md
|
||||||
[mailinglist]: https://mail.kde.org/mailman/listinfo/owncloud
|
[mailinglist]: https://mail.kde.org/mailman/listinfo/owncloud
|
||||||
[forum]: http://forum.owncloud.org/
|
[forum]: http://forum.owncloud.org/
|
||||||
[irc]: http://webchat.freenode.net/?channels=owncloud&uio=d4
|
[irc]: http://webchat.freenode.net/?channels=owncloud&uio=d4
|
||||||
@@ -31,16 +31,16 @@ features, by not reporting duplicate issues.
|
|||||||
|
|
||||||
Thanks for wanting to contribute source code to ownCloud. That's great!
|
Thanks for wanting to contribute source code to ownCloud. That's great!
|
||||||
|
|
||||||
Before we're able to merge your code to mirall, you need to sign
|
Before we're able to merge your code to ownCloud Desktop Client, you need to sign
|
||||||
our [Contributor Agreement][agreement].
|
our [Contributor Agreement][agreement].
|
||||||
|
|
||||||
Please read the [Desktop Client Manual][mirallman] and the [Developer
|
Please read the [Desktop Client Manual][desktopman] and the [Developer
|
||||||
Manuals][devmanual] to get useful infos like how to create your first
|
Manuals][devmanual] to get useful infos like how to create your first
|
||||||
application or how to test the ownCloud code with phpunit.
|
application or how to test the ownCloud code with phpunit.
|
||||||
|
|
||||||
[agreement]: http://owncloud.org/about/contributor-agreement/
|
[agreement]: http://owncloud.org/about/contributor-agreement/
|
||||||
[devmanual]: http://owncloud.org/dev/
|
[devmanual]: http://owncloud.org/dev
|
||||||
[mirallman]: http://doc.owncloud.org/desktop/1.1/
|
[desktopman]: http://doc.owncloud.org/desktop
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
Please submit translations via [Transifex][transifex].
|
Please submit translations via [Transifex][transifex].
|
||||||
|
|||||||
@@ -17,8 +17,10 @@ else ()
|
|||||||
include ( "${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake" )
|
include ( "${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set( CRASHREPORTER_EXECUTABLE @CRASHREPORTER_EXECUTABLE@)
|
||||||
|
|
||||||
set( BUILD_OWNCLOUD_OSX_BUNDLE @BUILD_OWNCLOUD_OSX_BUNDLE@)
|
set( BUILD_OWNCLOUD_OSX_BUNDLE @BUILD_OWNCLOUD_OSX_BUNDLE@)
|
||||||
if(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
if(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
||||||
message( FATAL_ERROR "You're trying to build a bundle although you haven't built mirall in bundle mode.\n Add -DBUILD_OWNCLOUD_OSX_BUNDLE=ON")
|
message( FATAL_ERROR "You're trying to build a bundle although you haven't built the client in bundle mode.\n Add -DBUILD_OWNCLOUD_OSX_BUNDLE=ON")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
212
ChangeLog
212
ChangeLog
@@ -1,5 +1,205 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
version 1.8.3 (release 2015-06-23)
|
||||||
|
* Fix a bug in the Windows Installer that could crash explorer (#3320)
|
||||||
|
* Reduce 'Connection closed' errors (#3318, #3313, #3298)
|
||||||
|
* Ignores: Force a remote discovery after ignore list change (#3172)
|
||||||
|
* Shibboleth: Avoid crash by letting the webview use its own QNAM (#3359)
|
||||||
|
|
||||||
|
ChangeLog
|
||||||
|
=========
|
||||||
|
version 1.8.2 (release 2015-06-08)
|
||||||
|
* Improve reporting of server error messages (#3220)
|
||||||
|
* Discovery: Ignore folders with any 503 (#3113)
|
||||||
|
* Wizard: Show server error message if possible (#3220)
|
||||||
|
* QNAM: Fix handling of mitm cert changes (#3283)
|
||||||
|
* Win32: Installer translations added (#3277)
|
||||||
|
* Win32: Allow concurrent OEM (un-)installers (#3272)
|
||||||
|
* Win32: Make Setup/Update Mutex theme-unique (#3272)
|
||||||
|
* HTTP: Add the branding name to the UserAgent string
|
||||||
|
* ConnectonValidator: Always run with new credentials (#3266)
|
||||||
|
* Recall Feature: Admins can trigger an upload of a file from
|
||||||
|
client to server again (#3246)
|
||||||
|
* Propagator: Add 'Content-Length: 0' header to MKCOL request (#3256)
|
||||||
|
* Switch on checksum verification through branding or config
|
||||||
|
* Add ability for checksum verification of up and download
|
||||||
|
* Fix opening external links for some labels (#3135)
|
||||||
|
* AccountState: Run only a single validator, allow error message
|
||||||
|
overriding (#3236, #3153)
|
||||||
|
* SyncJournalDB: Minor fixes and simplificatons
|
||||||
|
* SyncEngine: Force re-read of folder Etags for upgrades from
|
||||||
|
1.8.0 and 1.8.1
|
||||||
|
* Propagator: Limit length of temporary file name (#2789)
|
||||||
|
* ShareDialog: Password ui fixes (#3189)
|
||||||
|
* Fix startup hang by removing QSettings lock file (#3175)
|
||||||
|
* Wizard: Allow SSL cert dialog to show twice (#3168)
|
||||||
|
* ProtocolWidget: Fix rename message (#3210)
|
||||||
|
* Discovery: Test better, treat invalid hrefs as error (#3176)
|
||||||
|
* Propagator: Overwrite local data only if unchanged (#3156)
|
||||||
|
* ShareDialog: Improve error reporting for share API fails
|
||||||
|
* OSX Updater: Only allow updates only if in /Applications (#2931)
|
||||||
|
* Wizard: Fix lock icon (#1447)
|
||||||
|
* Fix compilation with GCC 5
|
||||||
|
* Treat any 503 error as temporary (#3113)
|
||||||
|
* Work around for the Qt PUT corruption bug (#2425)
|
||||||
|
* OSX Shell integration: Optimizations
|
||||||
|
* Windows Shell integration: Optimizations
|
||||||
|
.. more than 250 commits since 1.8.1
|
||||||
|
|
||||||
|
version 1.8.1 (release 2015-05-07)
|
||||||
|
* Make "operation canceled" error a soft error
|
||||||
|
* Do not throw an error for files that are scheduled to be removed,
|
||||||
|
but can not be found on the server. #2919
|
||||||
|
* Windows: Reset QNAM to proper function after hibernation. #2899 #2895 #2973
|
||||||
|
* Fix argument verification of --confdir #2453
|
||||||
|
* Fix a crash when accessing a dangling UploadDevice pointer #2984
|
||||||
|
* Add-folder wizard: Make sure there is a scrollbar if folder names
|
||||||
|
are too long #2962
|
||||||
|
* Add-folder Wizard: Select the newly created folder
|
||||||
|
* Activity: Correctly restore column sizes #3005
|
||||||
|
* SSL Button: do not crash on empty certificate chain
|
||||||
|
* SSL Button: Make menu creation lazy #3007 #2990
|
||||||
|
* Lookup system proxy async to avoid hangs #2993 #2802
|
||||||
|
* ShareDialog: Some GUI refinements
|
||||||
|
* ShareDialog: On creation of a share always retrieve the share
|
||||||
|
This makes sure that if a default expiration date is set this is reflected
|
||||||
|
in the dialog. #2889
|
||||||
|
* ShareDialog: Only show share dialog if we are connected.
|
||||||
|
* HttpCreds: Fill pw dialog with previous password. #2848 #2879
|
||||||
|
* HttpCreds: Delete password from old location. #2186
|
||||||
|
* Do not store Session Cookies in the client cookie storage
|
||||||
|
* CookieJar: Don't accidentally overwrite cookies. #2808
|
||||||
|
* ProtocolWidget: Always add seconds to the DateTime locale. #2535
|
||||||
|
* Updater: Give context as to which app is about to be updated #3040
|
||||||
|
* Windows: Add version information for owncloud.exe. This should help us know
|
||||||
|
what version or build number a crash report was generated with.
|
||||||
|
* Fix a crash on shutdown in ~SocketApi #3057
|
||||||
|
* SyncEngine: Show more timing measurements #3064
|
||||||
|
* Discovery: Add warning if returned etag is 0
|
||||||
|
* Fix a crash caused by an invalid DiscoveryDirectoryResult::iterator #3051
|
||||||
|
* Sync: Fix sync of deletions during 503. #2894
|
||||||
|
* Handle redirect of auth request. #3082
|
||||||
|
* Discovery: Fix parsing of broken XML replies, which fixes local file disappearing #3102
|
||||||
|
* Migration: Silently restore files that were deleted locally by bug #3102
|
||||||
|
* Sort folder sizes SelectiveSyncTreeView numerically #3112
|
||||||
|
* Sync: PropagateDownload: Read the mtime from the file system after writing it #3103
|
||||||
|
* Sync: Propagate download: Fix restoring files for which the conflict file exists #3106
|
||||||
|
* Use identical User Agents and version for csync and the Qt parts
|
||||||
|
* Prevent another crash in ~SocketApi #3118
|
||||||
|
* Windows: Fix rename of finished file. #3073
|
||||||
|
* AccountWizard: Fix auth error handling. #3155
|
||||||
|
* Documentation fixes
|
||||||
|
* Infrastructure/build fixes
|
||||||
|
* Win32/OS X: Apply patch from OpenSSL to handle oudated intermediates gracefully #3087
|
||||||
|
|
||||||
|
version 1.8.0 (release 2015-03-17)
|
||||||
|
* Mac OS: HIDPI support
|
||||||
|
* Support Sharing from desktop: Added a share dialog that can be
|
||||||
|
opened by context menu in the file managers (Win, Mac, Nautilus)
|
||||||
|
Supports public links with password enforcement
|
||||||
|
* Enhanced usage of parallel HTTP requests for ownCloud 8 servers
|
||||||
|
* Renamed github repository from mirall to client.
|
||||||
|
* Mac OS: Use native notification support
|
||||||
|
* Selective Sync: allow to enforce selective sync in brandings.
|
||||||
|
* Added ability to build on Windows utilizing MingGW
|
||||||
|
* SQLite database fixes if running on FAT filesystems
|
||||||
|
* Improved detection of changing files to upload from local
|
||||||
|
* Preparations for the multi-account feature
|
||||||
|
* Fixed experience for Window manager without system tray
|
||||||
|
* Build with Qt 5.4
|
||||||
|
* Dropped libneon dependency if Qt 5.4 is available
|
||||||
|
* Keep files open very short, that avoid lock problems on Windows
|
||||||
|
especially with office software but also others.
|
||||||
|
* Merged some NetBSD patches
|
||||||
|
* Selective sync support for owncloudcmd
|
||||||
|
* Reorganize the source repository
|
||||||
|
* Prepared direct download
|
||||||
|
* Added Crashreporter feature to be switched on on demand
|
||||||
|
* A huge amount of bug fixes in all areas of the client.
|
||||||
|
* almost 700 commits since 1.7.1
|
||||||
|
|
||||||
|
version 1.7.1 (release 2014-12-18)
|
||||||
|
* Documentation fixes and updates
|
||||||
|
* Nautilus Python plugin fixed for Python 3
|
||||||
|
* GUI wording fixes plus improved log messages
|
||||||
|
* Fix hidning of the database files in the sync directories
|
||||||
|
* Compare http download size with the header value to avoid broken
|
||||||
|
downloads, bug #2528
|
||||||
|
* Avoid initial ETag fetch job at startup, which is not needed.
|
||||||
|
* Add chunk size http header to PUT requests
|
||||||
|
* Fixed deteteCookie method of our CookieJar, fix for Shibboleth
|
||||||
|
* Added fallback for distros where XDG_RUNTIME_DIR is undefined
|
||||||
|
* Fix the setup wizard, bug #1989, #2264
|
||||||
|
* Fix scheduling of ETag check jobs, bug #2553
|
||||||
|
* Fix to avoid syncing more than one folder at a time, bug #2407
|
||||||
|
* Use fife minutes timeout for all network jobs
|
||||||
|
* Cleanup for Folderwizard wording
|
||||||
|
* Improve journal check: Remove corrupted journal files, bug #2547
|
||||||
|
* Fix item count in progress dialog for deletes, bug #1132
|
||||||
|
* Display correct file count on deletion (#1132)
|
||||||
|
* Fix reinitializing the folder using the wizard in certain cases (#2606)
|
||||||
|
* Mac OS: Fixed branding of the pkg file
|
||||||
|
* Mac OS: Fix display of overlay icons in certain situations (#1132)
|
||||||
|
* Mac OS: Use a bundled version of OpenSSL (#764, #2600, #2510)
|
||||||
|
* Win32: improved filesystem watcher
|
||||||
|
* Win32: Improve threading with shell integration
|
||||||
|
* Win32: Upgraded to OpenSSL 1.0.1j
|
||||||
|
* Win32: Improve reliability of Installer, fix removal of Shell Extensions
|
||||||
|
|
||||||
|
version 1.7.0 (release 2014-11-07)
|
||||||
|
|
||||||
|
* oC7 Sharing: Handle new sharing options of ownCloud 7 correctly.
|
||||||
|
* Added Selective sync: Ability to unselect server folders which are
|
||||||
|
excluded from syncing, plus GUI and setup GUI
|
||||||
|
* Added overlay icons for Windows Explorer, Mac OS Finder and GNOME Nautilus.
|
||||||
|
Information is provided by the client via a local socket / named pipe API
|
||||||
|
which provides information about the sync status of files.
|
||||||
|
* Improved local change detection: consider file size, detect files
|
||||||
|
with ongoing changes and do not upload immediately
|
||||||
|
* Improved HTTP request timeout handler: all successful requests reset
|
||||||
|
the timeout counter
|
||||||
|
* Improvements for syncing command line tool: netrc support, improved
|
||||||
|
SSL support, non interactive mode
|
||||||
|
* Permission system: ownCloud 7 delivers file and folder permissions,
|
||||||
|
added ability to deal with it for shared folders and more.
|
||||||
|
* Ignore handling: Do not recurse into ignored or excluded directories
|
||||||
|
* Major sync journal database improvements for more stability and performance
|
||||||
|
* New library interface to sqlite3
|
||||||
|
* Improve "resync handling" if errors occur
|
||||||
|
* Blacklist improvements
|
||||||
|
* Improved logging: more useful meta info, removed noise
|
||||||
|
* Updated to latest Qt5 versions on Windows and OS X
|
||||||
|
* Fixed data loss when renaming a download temporary fails and there was
|
||||||
|
a conflict at the same time.
|
||||||
|
* Fixed missing warnings about reusing a sync folder when the back button
|
||||||
|
was used in the advanced folder setup wizard.
|
||||||
|
* The 'Retry Sync' button now also restarts all downloads.
|
||||||
|
* Clean up temporary downloads and some extra database files when wiping a
|
||||||
|
folder.
|
||||||
|
* OS X: Sparkle update to provide pkg format properly
|
||||||
|
* OS X: Change distribution format from dmg to pkg with new installer.
|
||||||
|
* Windows: Fix handling of filenames with trailing dot or space
|
||||||
|
* Windows: Don't use the wrong way to get file mtimes in the legacy propagator.
|
||||||
|
|
||||||
|
version 1.6.4 (release 2014-10-22)
|
||||||
|
* Fix startup logic, fixes bug #1989
|
||||||
|
* Fix raise dialog on X11
|
||||||
|
* Win32: fix overflow when computing the size of file > 4GiB
|
||||||
|
* Use a fixed function to get files modification time, the
|
||||||
|
original one was broken for certain timezone issues, see
|
||||||
|
core bug #9781 for details
|
||||||
|
* Added some missing copyright headers
|
||||||
|
* Avoid data corruption due to wrong error handling, bug #2280
|
||||||
|
* Do improved request timeout handling to reduce the number of
|
||||||
|
timed out jobs, bug #2155
|
||||||
|
version 1.6.3 (release 2014-09-03)
|
||||||
|
* Fixed updater on OS X
|
||||||
|
* Fixed memory leak in SSL button that could lead to quick memory draining
|
||||||
|
* Fixed upload problem with files >4 GB
|
||||||
|
* MacOSX, Linux: Bring Settings window to front properly
|
||||||
|
* Branded clients: If no configuration is detected, try to import the data
|
||||||
|
from a previously configured community edition.
|
||||||
|
|
||||||
version 1.6.2 (release 2014-07-28 )
|
version 1.6.2 (release 2014-07-28 )
|
||||||
* Limit the HTTP buffer size when downloading to limit memory consumption.
|
* Limit the HTTP buffer size when downloading to limit memory consumption.
|
||||||
* Another small mem leak fixed in HTTP Credentials.
|
* Another small mem leak fixed in HTTP Credentials.
|
||||||
@@ -53,7 +253,7 @@ version 1.6.0 (release 2014-05-30 )
|
|||||||
* Improve Cookie support (e.g. for cookie-based load-balancers)
|
* Improve Cookie support (e.g. for cookie-based load-balancers)
|
||||||
* Introduce a general timeout of 300s for network operations
|
* Introduce a general timeout of 300s for network operations
|
||||||
* Improve error handling, blacklisting
|
* Improve error handling, blacklisting
|
||||||
* Job-based change propagation, enables faster parallel up/downloads
|
* Job-based change propagation, enables faster parallel up/downloads
|
||||||
(right now only if no bandwidth limit is set and no proxy is used)
|
(right now only if no bandwidth limit is set and no proxy is used)
|
||||||
* Significantly reduced CPU load when checking for local and remote changes
|
* Significantly reduced CPU load when checking for local and remote changes
|
||||||
* Speed up file stat code on Windows
|
* Speed up file stat code on Windows
|
||||||
@@ -66,7 +266,7 @@ version 1.6.0 (release 2014-05-30 )
|
|||||||
Qt 5.2 or later
|
Qt 5.2 or later
|
||||||
* Forward server exception messages to client error messages
|
* Forward server exception messages to client error messages
|
||||||
* Mac OS X: Support Notification Center in OS X 10.8+
|
* Mac OS X: Support Notification Center in OS X 10.8+
|
||||||
* Mac OS X: Use native settings dialog
|
* Mac OS X: Use native settings dialog
|
||||||
* Mac OS X: Fix UI inconsistencies on Mavericks
|
* Mac OS X: Fix UI inconsistencies on Mavericks
|
||||||
* Shibboleth: Warn if authenticating with a different user
|
* Shibboleth: Warn if authenticating with a different user
|
||||||
* Remove vio abstraction in csync
|
* Remove vio abstraction in csync
|
||||||
@@ -101,7 +301,7 @@ version 1.5.2 (release 2014-02-26 )
|
|||||||
* Shibboleth: Proper invalidation if timeout during sync
|
* Shibboleth: Proper invalidation if timeout during sync
|
||||||
* Shibboleth: Do not pop up IdP login immediately when modifying account
|
* Shibboleth: Do not pop up IdP login immediately when modifying account
|
||||||
* Shibboleth: Avoid auth on restart by storing cookies in the wallet
|
* Shibboleth: Avoid auth on restart by storing cookies in the wallet
|
||||||
* Fix license headers
|
* Fix license headers
|
||||||
|
|
||||||
version 1.5.1 (release 2014-02-13 )
|
version 1.5.1 (release 2014-02-13 )
|
||||||
* Added an auto updater that updates the client if a
|
* Added an auto updater that updates the client if a
|
||||||
@@ -186,7 +386,7 @@ version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required
|
|||||||
version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
|
version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
|
||||||
|
|
||||||
* Translation and documentation fixes.
|
* Translation and documentation fixes.
|
||||||
* Fixed error display in settings/status dialog, displays multi
|
* Fixed error display in settings/status dialog, displays multi
|
||||||
line error messages now correctly.
|
line error messages now correctly.
|
||||||
* Wait up to 30 secs before complaining about missing systray
|
* Wait up to 30 secs before complaining about missing systray
|
||||||
Fixes bug #949
|
Fixes bug #949
|
||||||
@@ -267,7 +467,7 @@ version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
|||||||
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
||||||
* [Fixes] NSIS installer fixes
|
* [Fixes] NSIS installer fixes
|
||||||
* [Fixes] Fix crash race by making certificateChain() thread safe
|
* [Fixes] Fix crash race by making certificateChain() thread safe
|
||||||
* [Fixes] Build with older CMake versions (CentOS/RHEL 6)
|
* [Fixes] Build with older CMake versions (CentOS/RHEL 6)
|
||||||
* [Fixes] Wording in GUI
|
* [Fixes] Wording in GUI
|
||||||
* [Fixes] Silently ignore "installed = true" status.php
|
* [Fixes] Silently ignore "installed = true" status.php
|
||||||
* Set log verbosity before calling csync_init.
|
* Set log verbosity before calling csync_init.
|
||||||
@@ -277,7 +477,7 @@ version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
|||||||
version 1.2.4 (release 2013-04-11 ), csync 0.70.6 required
|
version 1.2.4 (release 2013-04-11 ), csync 0.70.6 required
|
||||||
* [Fixes] Clarify string in folder wizard
|
* [Fixes] Clarify string in folder wizard
|
||||||
* [Fixes] Fixed some valgrind warnings
|
* [Fixes] Fixed some valgrind warnings
|
||||||
* [Fixes] Ensure that only one sync thread can ever run
|
* [Fixes] Ensure that only one sync thread can ever run
|
||||||
* [Fixes] Fix default config storage path
|
* [Fixes] Fix default config storage path
|
||||||
* [Fixes] Skip folders with no absolute path
|
* [Fixes] Skip folders with no absolute path
|
||||||
* [Fixes] Allow setting the configuration directory on command line
|
* [Fixes] Allow setting the configuration directory on command line
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
set( APPLICATION_NAME "ownCloud" )
|
set( APPLICATION_NAME "ownCloud" )
|
||||||
#set( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
|
|
||||||
set( APPLICATION_EXECUTABLE "owncloud" )
|
set( APPLICATION_EXECUTABLE "owncloud" )
|
||||||
set( APPLICATION_DOMAIN "owncloud.com" )
|
set( APPLICATION_DOMAIN "owncloud.com" )
|
||||||
set( APPLICATION_VENDOR "ownCloud" )
|
set( APPLICATION_VENDOR "ownCloud" )
|
||||||
@@ -8,5 +7,12 @@ set( APPLICATION_UPDATE_URL "https://updates.owncloud.com/client/" CACHE string
|
|||||||
set( THEME_CLASS "ownCloudTheme" )
|
set( THEME_CLASS "ownCloudTheme" )
|
||||||
set( APPLICATION_REV_DOMAIN "com.owncloud.desktopclient" )
|
set( APPLICATION_REV_DOMAIN "com.owncloud.desktopclient" )
|
||||||
set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" )
|
set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" )
|
||||||
|
|
||||||
|
set( MAC_INSTALLER_BACKGROUND_FILE "${CMAKE_SOURCE_DIR}/admin/osx/installer-background.png" CACHE STRING "The MacOSX installer background image")
|
||||||
|
|
||||||
# set( THEME_INCLUDE "${OEM_THEME_DIR}/mytheme.h" )
|
# set( THEME_INCLUDE "${OEM_THEME_DIR}/mytheme.h" )
|
||||||
# set( APPLICATION_LICENSE "${OEM_THEME_DIR}/license.txt )
|
# set( APPLICATION_LICENSE "${OEM_THEME_DIR}/license.txt )
|
||||||
|
|
||||||
|
option( WITH_CRASHREPORTER "Build crashreporter" OFF )
|
||||||
|
set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE string "URL for crash repoter" )
|
||||||
|
set( CRASHREPORTER_ICON ":/owncloud-icon.png" )
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ if(APPLE)
|
|||||||
set( CPACK_GENERATOR "DragNDrop" )
|
set( CPACK_GENERATOR "DragNDrop" )
|
||||||
set( CPACK_SOURCE_GENERATOR "")
|
set( CPACK_SOURCE_GENERATOR "")
|
||||||
set( CPACK_PACKAGE_FILE_NAME ${APPLICATION_NAME}-${CPACK_PACKAGE_VERSION} )
|
set( CPACK_PACKAGE_FILE_NAME ${APPLICATION_NAME}-${CPACK_PACKAGE_VERSION} )
|
||||||
set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/ownCloud.icns)
|
set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/gui/ownCloud.icns)
|
||||||
|
|
||||||
set( CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/admin/osx/DS_Store.in")
|
set( CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/admin/osx/DS_Store.in")
|
||||||
# set( CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/admin/osx/DMGBackground.png" )
|
# set( CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/admin/osx/DMGBackground.png" )
|
||||||
|
|||||||
44
README.md
44
README.md
@@ -1,9 +1,9 @@
|
|||||||
# Mirall
|
# ownCloud Desktop Client
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Mirall is a tool to synchronize files from ownCloud Server with your computer.
|
The ownCloud Desktop Client is a tool to synchronize files from ownCloud Server
|
||||||
It uses OCSync as its syncing backend.
|
with your computer.
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
@@ -13,19 +13,45 @@ It uses OCSync as its syncing backend.
|
|||||||
|
|
||||||
### Source code
|
### Source code
|
||||||
|
|
||||||
* https://github.com/owncloud/mirall
|
Tehe ownCloud Desktop Client is developed in Git. Since Git makes it easy to
|
||||||
|
fork and improve the source code and to adapt it to your need, many copies
|
||||||
|
can be found on the Internet, in particular on GitHub. However, the
|
||||||
|
authoritative repository maintained by the developers is located at
|
||||||
|
https://github.com/owncloud/client.
|
||||||
|
|
||||||
## Building the source code
|
## Building the source code
|
||||||
|
|
||||||
Please refer to doc/building.rst, or
|
[Building the Client](http://doc.owncloud.org/desktop/1.7/building.html)
|
||||||
[Building the Client](http://doc.owncloud.org/desktop/1.5/building.html)
|
in the ownCloud Desktop Client manual.
|
||||||
in the ownCloud client manual.
|
|
||||||
|
|
||||||
## Authors
|
## Maintainers and Contributors
|
||||||
|
|
||||||
|
The maintainers of this repository are:
|
||||||
|
|
||||||
* Duncan Mac-Vicar P. <duncan@kde.org> (original Mirall author)
|
|
||||||
* Klaas Freitag <freitag@owncloud.com>
|
* Klaas Freitag <freitag@owncloud.com>
|
||||||
* Daniel Molkentin <danimo@owncloud.com>
|
* Daniel Molkentin <danimo@owncloud.com>
|
||||||
|
* Markus Goetz <guruz@owncloud.com>
|
||||||
|
* Olivier Goffart <ogoffart@owncloud.com>
|
||||||
|
|
||||||
|
ownCloud Desktop Client is developed by the ownCloud community and receives
|
||||||
|
patches from a variety of authors.
|
||||||
|
|
||||||
|
## Reporting issues and contributing
|
||||||
|
|
||||||
|
If you find any bugs or have any suggestion for improvement, please
|
||||||
|
file an issue at https://github.com/owncloud/client/issues. Do not
|
||||||
|
contact the authors directly by mail, as this increases the chance
|
||||||
|
of your report being lost.
|
||||||
|
|
||||||
|
If you created a patch, please submit a [Pull
|
||||||
|
Request](https://github.com/owncloud/client/pulls). For non-trivial
|
||||||
|
patches, we need you to sign the [Contributor
|
||||||
|
Agreement](https://owncloud.org/contribute/agreement) before
|
||||||
|
we can accept your patch.
|
||||||
|
|
||||||
|
If you want to contact us, e.g. before starting a more complex feature,
|
||||||
|
you can join us at
|
||||||
|
[#owncloud-client-dev](irc://irc.freenode.net/#owncloud-client-dev).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
set( MIRALL_VERSION_MAJOR 1 )
|
set( MIRALL_VERSION_MAJOR 1 )
|
||||||
set( MIRALL_VERSION_MINOR 7 )
|
set( MIRALL_VERSION_MINOR 8 )
|
||||||
set( MIRALL_VERSION_PATCH 0 )
|
set( MIRALL_VERSION_PATCH 3 )
|
||||||
set( MIRALL_SOVERSION 0 )
|
set( MIRALL_SOVERSION 0 )
|
||||||
|
|
||||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||||
set( MIRALL_VERSION_SUFFIX "beta2") #e.g. beta1, beta2, rc1
|
set( MIRALL_VERSION_SUFFIX "") #e.g. beta1, beta2, rc1
|
||||||
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||||
|
|
||||||
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
||||||
|
|||||||
@@ -1,3 +1,16 @@
|
|||||||
|
|
||||||
|
# Check if varialbe MAC_INSTALLER_BACKGROUND_FILE is defined. That might come
|
||||||
|
# from the OEM.cmake for branded clients or from OWNCLOUD.cmake for the non
|
||||||
|
# branded client.
|
||||||
|
# Make sure that the MAC_INSTALLER_BACKGROUND_FILE contains the full path, ie.
|
||||||
|
# includes CMAKE_SOURCE_DIR or so.
|
||||||
|
|
||||||
|
if (DEFINED MAC_INSTALLER_BACKGROUND_FILE )
|
||||||
|
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "1")
|
||||||
|
else()
|
||||||
|
set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0")
|
||||||
|
endif()
|
||||||
|
|
||||||
configure_file(create_mac_pkg.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
configure_file(create_mac_pkg.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh)
|
||||||
configure_file(macosx.pkgproj ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
configure_file(macosx.pkgproj ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj)
|
||||||
|
configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ if [ ! -z "$identity" ]; then
|
|||||||
echo "Will try to sign the installer"
|
echo "Will try to sign the installer"
|
||||||
pushd $install_path
|
pushd $install_path
|
||||||
productsign --sign "$identity" "$installer_file" "$installer_file.new"
|
productsign --sign "$identity" "$installer_file" "$installer_file.new"
|
||||||
mv "$installer_file".new $installer_file
|
mv "$installer_file".new "$installer_file"
|
||||||
popd
|
popd
|
||||||
else
|
else
|
||||||
echo "No certificate given, will not sign the pkg"
|
echo "No certificate given, will not sign the pkg"
|
||||||
|
|||||||
75
admin/osx/gen_sym_files.py
Executable file
75
admin/osx/gen_sym_files.py
Executable file
@@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import logging, os, re, subprocess, sys
|
||||||
|
import os.path
|
||||||
|
import pdb, pprint
|
||||||
|
|
||||||
|
if len(sys.argv) < 4:
|
||||||
|
print("Usage:")
|
||||||
|
print("\tgen_sym_files.py <path to breakpad's dump_syms> <path to owncloud.app> <symbol output dir>")
|
||||||
|
print("")
|
||||||
|
print("Symbols will be created in './symbols'")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
dump_symsPath = sys.argv[1]
|
||||||
|
bundlePath = sys.argv[2]
|
||||||
|
outPath = sys.argv[3]
|
||||||
|
macOsDir = os.path.join(bundlePath, 'Contents', 'MacOS')
|
||||||
|
pluginsDir = os.path.join(bundlePath, 'Contents', 'PlugIns')
|
||||||
|
|
||||||
|
def resolvePath(input):
|
||||||
|
resolved = re.sub(r'@\w+', macOsDir, input)
|
||||||
|
return os.path.normpath(resolved)
|
||||||
|
|
||||||
|
def extractDeps(macho):
|
||||||
|
deps = [macho]
|
||||||
|
otool = subprocess.Popen(['otool', '-L', macho], stdout=subprocess.PIPE)
|
||||||
|
for l in otool.communicate()[0].splitlines():
|
||||||
|
m = re.search(r'@[^\s]+', l)
|
||||||
|
if m:
|
||||||
|
path = resolvePath(m.group(0))
|
||||||
|
if not os.path.exists(path):
|
||||||
|
logging.warning("Non-existant file found in dependencies, ignoring: [%s]", path)
|
||||||
|
continue
|
||||||
|
deps.append(path)
|
||||||
|
return deps
|
||||||
|
|
||||||
|
def findDeps():
|
||||||
|
deps = []
|
||||||
|
for f in os.listdir(macOsDir):
|
||||||
|
path = os.path.join(macOsDir, f)
|
||||||
|
if not os.path.islink(path):
|
||||||
|
deps += extractDeps(path)
|
||||||
|
for root, dirs, files in os.walk(pluginsDir):
|
||||||
|
for f in files:
|
||||||
|
path = os.path.join(root, f)
|
||||||
|
deps += extractDeps(path)
|
||||||
|
return sorted(set(deps))
|
||||||
|
|
||||||
|
def dumpSyms(deps):
|
||||||
|
for dep in deps:
|
||||||
|
print("Generating symbols for [%s]" % dep)
|
||||||
|
with open('temp.sym', 'w') as temp:
|
||||||
|
subprocess.check_call([dump_symsPath, dep], stdout=temp)
|
||||||
|
with open('temp.sym', 'r') as temp:
|
||||||
|
header = temp.readline()
|
||||||
|
fields = header.split()
|
||||||
|
key, name = fields[3:5]
|
||||||
|
destDir = '%s/%s/%s/' % (outPath, name, key)
|
||||||
|
destPath = destDir + name + '.sym'
|
||||||
|
if os.path.exists(destPath):
|
||||||
|
logging.warning("Symbols already exist: [%s]", destPath)
|
||||||
|
continue
|
||||||
|
if not os.path.exists(destDir):
|
||||||
|
os.makedirs(destDir)
|
||||||
|
os.rename('temp.sym', destPath)
|
||||||
|
|
||||||
|
def strip(deps):
|
||||||
|
for dep in deps:
|
||||||
|
print("Stripping symbols off [%s]" % dep)
|
||||||
|
subprocess.check_call(['strip', '-S', dep])
|
||||||
|
|
||||||
|
print('=== Generating symbols for [%s] in [%s]' % (bundlePath, outPath))
|
||||||
|
deps = findDeps()
|
||||||
|
dumpSyms(deps)
|
||||||
|
strip(deps)
|
||||||
BIN
admin/osx/installer-background.png
Normal file
BIN
admin/osx/installer-background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
51
admin/osx/installer-background.svg
Normal file
51
admin/osx/installer-background.svg
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
enable-background="new 0 0 595.275 311.111"
|
||||||
|
xml:space="preserve"
|
||||||
|
height="200"
|
||||||
|
width="320"
|
||||||
|
version="1.1"
|
||||||
|
y="0px"
|
||||||
|
x="0px"
|
||||||
|
viewBox="0 0 35 0"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="installer-background.svg"><metadata
|
||||||
|
id="metadata12"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs10" /><sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1002"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.734375"
|
||||||
|
inkscape:cx="-49.141255"
|
||||||
|
inkscape:cy="236.17459"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="34"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg2"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" /><path
|
||||||
|
style="text-indent:0;text-transform:none;block-progression:tb;color:#000000;fill:#ffffff;fill-opacity:1;enable-background:accumulate"
|
||||||
|
d="m 75.63384,28.421489 c -29.36582,0 -53.09172,23.724901 -53.09172,53.091701 0,12.1047 4.03087,23.2455 10.82647,32.1667 14.74225,-17.0631 36.50138,-27.8988 60.79508,-27.8988 11.88546,0 23.15644,2.6467 33.31219,7.2871 0.82221,-3.7185 1.24924,-7.5856 1.24924,-11.555 0,-29.3658 -23.72491,-53.091701 -53.09172,-53.091701 z M 6.30358,52.98809 c -15.29297,0 -27.58645,12.3977 -27.58645,27.6906 0,4.9515 1.27738,9.6301 3.53933,13.6373 9.22826,-5.206 19.89756,-8.2239 31.23002,-8.2239 1.09366,0 2.14708,0.039 3.22713,0.1052 -0.12231,-1.5502 -0.20806,-3.103 -0.20806,-4.6844 0,-8.5178 1.85002,-16.6223 5.10106,-23.9429 -4.37708,-2.9351 -9.62115,-4.5803 -15.30284,-4.5803 z m 130.95716,19.0502 c -1.12983,0 -2.21885,0.1381 -3.33122,0.2078 0.48121,3.0338 0.83274,6.097 0.83274,9.2651 0,4.9298 -0.62692,9.6869 -1.7697,14.2616 13.39754,7.4144 24.52385,18.5084 31.8547,31.9586 7.60342,-3.9586 16.08566,-6.4754 25.08804,-7.0787 -2.32015,-27.2093 -24.86184,-48.6137 -52.67416,-48.6137 z m -43.09675,19.7789 c -41.09117,0 -74.32775,33.2333 -74.32775,74.3278 0,41.0911 33.23329,74.3277 74.32775,74.3277 41.09447,0 74.32775,-33.2366 74.32775,-74.3277 0,-41.0945 -33.23657,-74.3278 -74.32775,-74.3278 z m -80.67652,0.3117 c -31.87937,0 -57.67166,25.792 -57.67166,57.6717 0,18.7668 8.94156,35.3802 22.79774,45.9078 5.84147,-11.2667 17.57406,-18.9461 31.1258,-18.9461 1.63789,0 3.21,0.1986 4.78871,0.4169 -0.49554,-3.6054 -0.72871,-7.2937 -0.72871,-11.0346 0,-17.8847 5.82174,-34.4234 15.71907,-47.7819 -5.92466,-7.4133 -10.1643,-16.321 -11.97162,-26.025 -1.33935,-0.092 -2.69673,-0.2078 -4.05979,-0.2078 z m 180.71831,34.3544 c -9.68,0 -18.74781,2.4714 -26.75364,6.6625 4.54607,10.0696 7.07867,21.2422 7.07867,32.9998 0,22.0146 -8.85114,42.0052 -23.21431,56.5275 10.5516,11.7145 25.861,19.0503 42.88961,19.0503 31.87937,0 57.67165,-25.7916 57.67165,-57.6717 0,-31.8793 -25.79195,-57.5664 -57.67165,-57.5664 z m -244.00885,7.5998 c -29.3701,0 -53.19693,23.6164 -53.19693,52.9832 0,29.3669 23.82815,53.1937 53.19364,53.1937 11.17727,0 21.53161,-3.4825 30.08487,-9.369 -3.5344,-5.492 -5.62151,-12.0581 -5.62151,-19.0503 0,-3.6291 0.53552,-7.1158 1.56148,-10.4099 -16.01267,-11.5721 -26.44131,-30.4034 -26.44131,-51.6319 0,-5.394 0.71083,-10.6098 1.97792,-15.6152 -0.52591,-0.013 -1.03171,-0.1052 -1.56152,-0.1052 z m 312.19495,45.5955 c -1.56661,0 -3.08252,0.1789 -4.58026,0.4169 0.0829,1.3242 0.1039,2.6108 0.1039,3.9559 0,16.9326 -6.68118,32.3015 -17.4889,43.7214 5.31706,6.1831 13.12695,10.0976 21.96526,10.0976 16.09849,0 29.14785,-12.9451 29.14785,-29.0439 0,-16.0985 -13.04936,-29.1479 -29.14785,-29.1479 z m -252.64924,3.1229 c -16.09783,0 -29.04395,12.9461 -29.04395,29.044 0,16.0978 12.94612,29.1478 29.04395,29.1478 12.33919,0 22.81287,-7.6994 27.06599,-18.5298 -10.378,-10.57 -17.83675,-24.0544 -21.13213,-39.0363 -1.92854,-0.3985 -3.88588,-0.6247 -5.93386,-0.6247 z"
|
||||||
|
id="path6"
|
||||||
|
inkscape:connector-curvature="0" /></svg>
|
||||||
|
After Width: | Height: | Size: 4.6 KiB |
BIN
admin/osx/installer-background_2x.png
Normal file
BIN
admin/osx/installer-background_2x.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -23,7 +23,7 @@ import sys
|
|||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
def QueryQMake(attrib):
|
def QueryQMake(attrib):
|
||||||
return subprocess.check_output(['qmake', '-query', attrib]).rstrip('\n')
|
return subprocess.check_output([qmake_path, '-query', attrib]).rstrip('\n')
|
||||||
|
|
||||||
FRAMEWORK_SEARCH_PATH=[
|
FRAMEWORK_SEARCH_PATH=[
|
||||||
'/Library/Frameworks',
|
'/Library/Frameworks',
|
||||||
@@ -33,7 +33,6 @@ FRAMEWORK_SEARCH_PATH=[
|
|||||||
LIBRARY_SEARCH_PATH=['/usr/local/lib', '.']
|
LIBRARY_SEARCH_PATH=['/usr/local/lib', '.']
|
||||||
|
|
||||||
QT_PLUGINS = [
|
QT_PLUGINS = [
|
||||||
'accessible/libqtaccessiblewidgets.dylib',
|
|
||||||
'sqldrivers/libqsqlite.dylib',
|
'sqldrivers/libqsqlite.dylib',
|
||||||
'platforms/libqcocoa.dylib',
|
'platforms/libqcocoa.dylib',
|
||||||
'imageformats/libqgif.dylib',
|
'imageformats/libqgif.dylib',
|
||||||
@@ -68,14 +67,18 @@ class CouldNotFindQtPluginError(Error):
|
|||||||
class CouldNotFindScriptPluginError(Error):
|
class CouldNotFindScriptPluginError(Error):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
class CouldNotFindFrameworkError(Error):
|
||||||
print 'Usage: %s <bundle.app>' % sys.argv[0]
|
pass
|
||||||
|
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print 'Usage: %s <bundle.app> <path-to-qmake>' % sys.argv[0]
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
def is_exe(fpath):
|
def is_exe(fpath):
|
||||||
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
|
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
|
||||||
|
|
||||||
bundle_dir = sys.argv[1]
|
bundle_dir = sys.argv[1]
|
||||||
|
qmake_path = sys.argv[2]
|
||||||
|
|
||||||
bundle_name = os.path.basename(bundle_dir).split('.')[0]
|
bundle_name = os.path.basename(bundle_dir).split('.')[0]
|
||||||
|
|
||||||
@@ -246,8 +249,10 @@ def CopyFramework(path):
|
|||||||
parts = path.split(os.sep)
|
parts = path.split(os.sep)
|
||||||
print "CopyFramework:", path
|
print "CopyFramework:", path
|
||||||
for i, part in enumerate(parts):
|
for i, part in enumerate(parts):
|
||||||
if re.match(r'\w+\.framework', part):
|
matchObj = re.match(r'(\w+\.framework)', part)
|
||||||
|
if matchObj:
|
||||||
full_path = os.path.join(frameworks_dir, *parts[i:-1])
|
full_path = os.path.join(frameworks_dir, *parts[i:-1])
|
||||||
|
framework = matchObj.group(1)
|
||||||
break
|
break
|
||||||
args = ['mkdir', '-p', full_path]
|
args = ['mkdir', '-p', full_path]
|
||||||
commands.append(args)
|
commands.append(args)
|
||||||
@@ -255,12 +260,19 @@ def CopyFramework(path):
|
|||||||
commands.append(args)
|
commands.append(args)
|
||||||
args = ['chmod', 'u+w', os.path.join(full_path, parts[-1])]
|
args = ['chmod', 'u+w', os.path.join(full_path, parts[-1])]
|
||||||
commands.append(args)
|
commands.append(args)
|
||||||
|
resources_dir = os.path.join(frameworks_dir, framework, "Resources")
|
||||||
|
|
||||||
|
args = ['mkdir', resources_dir]
|
||||||
|
commands.append(args)
|
||||||
|
args = ['chmod', 'u+w', resources_dir]
|
||||||
|
commands.append(args)
|
||||||
|
|
||||||
info_plist = os.path.join(os.path.split(path)[0], '..', '..', 'Contents', 'Info.plist')
|
info_plist = os.path.join(os.path.split(path)[0], '..', '..', 'Contents', 'Info.plist')
|
||||||
|
if not os.path.exists(info_plist):
|
||||||
|
info_plist = os.path.join(os.path.split(path)[0], 'Resources', 'Info.plist')
|
||||||
if os.path.exists(info_plist):
|
if os.path.exists(info_plist):
|
||||||
args = ['cp', '-r', info_plist, resources_dir]
|
args = ['cp', '-r', info_plist, resources_dir]
|
||||||
commands.append(args)
|
commands.append(args)
|
||||||
|
|
||||||
return os.path.join(full_path, parts[-1])
|
return os.path.join(full_path, parts[-1])
|
||||||
|
|
||||||
def FixId(path, library_name):
|
def FixId(path, library_name):
|
||||||
|
|||||||
@@ -471,13 +471,18 @@
|
|||||||
</dict>
|
</dict>
|
||||||
<key>PACKAGE_SCRIPTS</key>
|
<key>PACKAGE_SCRIPTS</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>POSTINSTALL_PATH</key>
|
<key>POSTINSTALL_PATH</key>
|
||||||
<dict/>
|
<dict/>
|
||||||
<key>PREINSTALL_PATH</key>
|
<key>PREINSTALL_PATH</key>
|
||||||
<dict/>
|
<dict>
|
||||||
<key>RESOURCES</key>
|
<key>PATH</key>
|
||||||
<array/>
|
<string>@CMAKE_CURRENT_BINARY_DIR@/pre_install.sh</string>
|
||||||
</dict>
|
<key>PATH_TYPE</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
<key>RESOURCES</key>
|
||||||
|
<array/>
|
||||||
|
</dict>
|
||||||
<key>PACKAGE_SETTINGS</key>
|
<key>PACKAGE_SETTINGS</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>AUTHENTICATION</key>
|
<key>AUTHENTICATION</key>
|
||||||
@@ -485,13 +490,13 @@
|
|||||||
<key>CONCLUSION_ACTION</key>
|
<key>CONCLUSION_ACTION</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>IDENTIFIER</key>
|
<key>IDENTIFIER</key>
|
||||||
<string>com.ownCloud.client</string>
|
<string>@APPLICATION_REV_DOMAIN_INSTALLER@</string>
|
||||||
<key>NAME</key>
|
<key>NAME</key>
|
||||||
<string>ownCloud Client</string>
|
<string>@APPLICATION_NAME@</string>
|
||||||
<key>OVERWRITE_PERMISSIONS</key>
|
<key>OVERWRITE_PERMISSIONS</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>VERSION</key>
|
<key>VERSION</key>
|
||||||
<string>1.6.2</string>
|
<string>@MIRALL_VERSION_FULL@</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>UUID</key>
|
<key>UUID</key>
|
||||||
<string>7D7219B7-1897-48C3-8533-842BDEC46F71</string>
|
<string>7D7219B7-1897-48C3-8533-842BDEC46F71</string>
|
||||||
@@ -793,7 +798,7 @@
|
|||||||
<key>GID</key>
|
<key>GID</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>Library/ScriptingAdditions/OwnCloudFinder.osax/Contents</string>
|
<string>Library/ScriptingAdditions/SyncStateFinder.osax/Contents</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>3</integer>
|
<integer>3</integer>
|
||||||
<key>PERMISSIONS</key>
|
<key>PERMISSIONS</key>
|
||||||
@@ -807,7 +812,7 @@
|
|||||||
<key>GID</key>
|
<key>GID</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>OwnCloudFinder.osax</string>
|
<string>SyncStateFinder.osax</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>PERMISSIONS</key>
|
<key>PERMISSIONS</key>
|
||||||
@@ -1019,7 +1024,7 @@
|
|||||||
<key>OVERWRITE_PERMISSIONS</key>
|
<key>OVERWRITE_PERMISSIONS</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>VERSION</key>
|
<key>VERSION</key>
|
||||||
<string>1.6.2</string>
|
<string>@MIRALL_VERSION_FULL@</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>TYPE</key>
|
<key>TYPE</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
@@ -1041,7 +1046,7 @@
|
|||||||
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
|
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
|
||||||
dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
|
dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
|
||||||
dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
|
dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
|
||||||
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExMzguNTEiPgo8c3R5bGUg
|
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjEzNDMuMTQiPgo8c3R5bGUg
|
||||||
dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5
|
dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5
|
||||||
Pgo8L2JvZHk+CjwvaHRtbD4K
|
Pgo8L2JvZHk+CjwvaHRtbD4K
|
||||||
</data>
|
</data>
|
||||||
@@ -1054,13 +1059,13 @@
|
|||||||
<integer>6</integer>
|
<integer>6</integer>
|
||||||
<key>BACKGROUND_PATH</key>
|
<key>BACKGROUND_PATH</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>./@APPLICATION_EXECUTABLE@.app/Contents/Resources/owncloud_logo_blue.png</string>
|
<string>@MAC_INSTALLER_BACKGROUND_FILE@</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>3</integer>
|
<integer>0</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>CUSTOM</key>
|
<key>CUSTOM</key>
|
||||||
<integer>1</integer>
|
<integer>@MAC_INSTALLER_DO_CUSTOM_BACKGROUND@</integer>
|
||||||
<key>SCALING</key>
|
<key>SCALING</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -1213,7 +1218,7 @@
|
|||||||
<key>LANGUAGE</key>
|
<key>LANGUAGE</key>
|
||||||
<string>English</string>
|
<string>English</string>
|
||||||
<key>VALUE</key>
|
<key>VALUE</key>
|
||||||
<string>ownCloud Client</string>
|
<string>@APPLICATION_NAME@ Client</string>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -1413,9 +1418,9 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>NAME</key>
|
<key>NAME</key>
|
||||||
<string>ownCloud Installer</string>
|
<string>@APPLICATION_NAME@ Installer</string>
|
||||||
<key>REFERENCE_FOLDER_PATH</key>
|
<key>REFERENCE_FOLDER_PATH</key>
|
||||||
<string>/Users/mackie/install</string>
|
<string>@CMAKE_INSTALL_DIR@</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>TYPE</key>
|
<key>TYPE</key>
|
||||||
|
|||||||
9
admin/osx/pre_install.sh.cmake
Normal file
9
admin/osx/pre_install.sh.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# kill the old version. see issue #2044
|
||||||
|
killall @APPLICATION_EXECUTABLE@
|
||||||
|
|
||||||
|
# Unload the Finder plugin. see issue #2105
|
||||||
|
killall Finder
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -1,32 +1,12 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sh -xe
|
||||||
|
|
||||||
[ "$#" -lt 2 ] && echo "Usage: sign_app.sh <app> <identity>" && exit
|
[ "$#" -lt 2 ] && echo "Usage: sign_app.sh <app> <identity>" && exit
|
||||||
|
|
||||||
src_app="$1"
|
src_app="$1"
|
||||||
identity="$2"
|
identity="$2"
|
||||||
|
|
||||||
QT_FMWK_VERSION="5"
|
|
||||||
|
|
||||||
fix_frameworks() {
|
|
||||||
TMP_APP=$1
|
|
||||||
QT_FMWK_PATH=$2
|
|
||||||
QT_FMWKS=$3/Qt*.framework
|
|
||||||
|
|
||||||
echo "Patching Qt frameworks..."
|
|
||||||
for FMWK in $QT_FMWKS; do
|
|
||||||
FMWK_NAME=`basename -s .framework $FMWK`
|
|
||||||
FMWK=`basename $FMWK`
|
|
||||||
FMWK_PATH="${TMP_APP}/Contents/Frameworks/${FMWK}"
|
|
||||||
mkdir -p "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources/"
|
|
||||||
cp -avf "${QT_FMWK_PATH}/${FMWK}/Contents/Info.plist" "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources"
|
|
||||||
(cd "${FMWK_PATH}" && ln -sf "Versions/${QT_FMWK_VERSION}/Resources" "Resources")
|
|
||||||
perl -pi -e "s/${FMWK_NAME}_debug/${FMWK_NAME}/" "${FMWK_PATH}/Resources/Info.plist"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
fix_frameworks "$src_app" `qmake -query QT_INSTALL_LIBS` "$src_app"/Contents/Frameworks
|
|
||||||
codesign -s "$identity" --force --verbose=4 --deep "$src_app"
|
codesign -s "$identity" --force --verbose=4 --deep "$src_app"
|
||||||
|
|
||||||
# Just for our debug purposes:
|
# Verify the signature
|
||||||
spctl -a -t exec -vv $src_app
|
spctl -a -t exec -vv $src_app
|
||||||
codesign -dv $src_app
|
codesign -dv $src_app
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ SET(QMAKESPEC win32-g++-cross)
|
|||||||
|
|
||||||
# dirs
|
# dirs
|
||||||
SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin)
|
SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin)
|
||||||
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins)
|
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt5/plugins)
|
||||||
SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt4/mkspecs)
|
SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt5/mkspecs)
|
||||||
SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
|
SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
|
||||||
|
|
||||||
# qt tools
|
# qt tools
|
||||||
|
|||||||
19
admin/win/docker/build.sh
Executable file
19
admin/win/docker/build.sh
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "Usage: $(basename $0) directory_relative_to_home [uid]"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
useradd user -u ${2:-1000}
|
||||||
|
su - user << EOF
|
||||||
|
cd /home/user/$1
|
||||||
|
rm -rf build-win32
|
||||||
|
mkdir build-win32
|
||||||
|
cd build-win32
|
||||||
|
../admin/win/download_runtimes.sh
|
||||||
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=../admin/win/Toolchain-mingw32-openSUSE.cmake -DWITH_CRASHREPORTER=ON
|
||||||
|
make -j4
|
||||||
|
make package
|
||||||
|
ctest .
|
||||||
|
EOF
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#VS2013
|
#VS2013
|
||||||
base_url=http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3
|
base_url=http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3
|
||||||
tmp_path=/tmp/.vcredist
|
tmp_path=${1:-/tmp/.vcredist}
|
||||||
|
|
||||||
mkdir -p $tmp_path
|
mkdir -p $tmp_path
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Translations on transifex: http://www.transifex.com/projects/p/owncloud/resource/mirall-wininstaller/
|
Translations on transifex: http://www.transifex.com/projects/p/owncloud/resource/client-nsis/
|
||||||
|
|
||||||
Daily sync job: https://ci.owncloud.org/view/translation-sync/job/translation-sync-mirall-wininstaller/
|
Daily sync job: https://ci.owncloud.org/view/translation-sync/job/translation-sync-client-nsis/
|
||||||
|
|
||||||
## How to add a new translation string?
|
## How to add a new translation string?
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[owncloud.mirall-wininstaller]
|
[owncloud.client-nsis]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
source_file = pofiles/messages.pot
|
source_file = pofiles/messages.pot
|
||||||
source_lang = en
|
source_lang = en
|
||||||
@@ -10,24 +10,25 @@ minimum_perc = 5
|
|||||||
|
|
||||||
# simple one-to-one language mappings
|
# simple one-to-one language mappings
|
||||||
trans.ca = pofiles/ca.po
|
trans.ca = pofiles/ca.po
|
||||||
trans.el = pofiles/el.po
|
trans.el = pofiles/el.po
|
||||||
trans.es = pofiles/es.po
|
trans.es_AR = pofiles/es_AR.po
|
||||||
trans.es_AR = pofiles/es_AR.po
|
trans.es = pofiles/es.po
|
||||||
trans.eu = pofiles/eu.po
|
trans.eu = pofiles/eu.po
|
||||||
trans.fa = pofiles/fa.po
|
trans.fa = pofiles/fa.po
|
||||||
trans.fr = pofiles/fr.po
|
trans.fr = pofiles/fr.po
|
||||||
trans.gl = pofiles/gl.po
|
trans.gl = pofiles/gl.po
|
||||||
trans.it = pofiles/it.po
|
trans.it = pofiles/it.po
|
||||||
trans.nl = pofiles/nl.po
|
trans.nb_NO = pofiles/nb_NO.po
|
||||||
trans.pl = pofiles/pl.po
|
trans.nl = pofiles/nl.po
|
||||||
trans.pt_BR = pofiles/pt_BR.po
|
trans.pl = pofiles/pl.po
|
||||||
trans.ru = pofiles/ru.po
|
trans.pt_BR = pofiles/pt_BR.po
|
||||||
|
trans.ru = pofiles/ru.po
|
||||||
trans.sl = pofiles/sl.po
|
trans.sl = pofiles/sl.po
|
||||||
trans.sv = pofiles/sv.po
|
trans.sv = pofiles/sv.po
|
||||||
trans.tr = pofiles/tr.po
|
trans.tr = pofiles/tr.po
|
||||||
trans.uk = pofiles/uk.po
|
trans.uk = pofiles/uk.po
|
||||||
trans.zh_TW = pofiles/zh_TW.po
|
trans.zh_CN = pofiles/zh_CN.po
|
||||||
trans.zh_CN = pofiles/zh_CN.po
|
trans.zh_TW = pofiles/zh_TW.po
|
||||||
|
|
||||||
# special handling below
|
# special handling below
|
||||||
|
|
||||||
@@ -35,14 +36,13 @@ trans.zh_CN = pofiles/zh_CN.po
|
|||||||
trans.de_DE = pofiles/de.po
|
trans.de_DE = pofiles/de.po
|
||||||
|
|
||||||
# choose one of the given translations on transifex as default
|
# choose one of the given translations on transifex as default
|
||||||
trans.pt_PT = pofiles/pt.po
|
trans.pt_PT = pofiles/pt.po
|
||||||
|
|
||||||
# choose a special language as more generic default
|
# choose a special language as more generic default
|
||||||
trans.cs_CZ = pofiles/cs.po
|
trans.cs_CZ = pofiles/cs.po
|
||||||
trans.et_EE = pofiles/et.po
|
trans.et_EE = pofiles/et.po
|
||||||
trans.fi_FI = pofiles/fi.po
|
trans.fi_FI = pofiles/fi.po
|
||||||
trans.ja_JP = pofiles/ja.po
|
trans.hu_HU = pofiles/hu.po
|
||||||
trans.hu_HU = pofiles/hu.po
|
trans.ja_JP = pofiles/ja.po
|
||||||
trans.sk_SK = pofiles/sk.po
|
trans.sk_SK = pofiles/sk.po
|
||||||
trans.th_TH = pofiles/th.po
|
trans.th_TH = pofiles/th.po
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +1,46 @@
|
|||||||
# Auto-generated - do not modify
|
# Auto-generated - do not modify
|
||||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Erakutsi bertsio-berritze oharrak"
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Erakutsi bertsio-berritze oharrak"
|
||||||
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Gelditu beharreko ${APPLICATION_EXECUTABLE} prozesua(k) aurkitu dira.$\nNahi duzu instalatzaileak zure partetik hauek gelditzea?"
|
||||||
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} prozesuak hiltzen."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "kill prozesua ez da aurkitu!"
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "kill prozesua ez da aurkitu!"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_1 "${APPLICATION_NAME}ren bertsio zaharrago bat instalatuta dago. Aholkatzen da hau desinstalatzea berria instalatu baino lehen. Hautatu nahi duzun aukera eta sakatu Hurrengoa jarraitzeko."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalatu instalatu baino lehen"
|
StrCpy $PageReinstall_NEW_Field_2 "Desinstalatu instalatu baino lehen"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "Ez desinstalatu"
|
StrCpy $PageReinstall_NEW_Field_3 "Ez desinstalatu"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Dagoeneko Instalatuta"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Dagoeneko Instalatuta"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Hautatu nola nahi duzun ${APPLICATION_NAME} instalatzea."
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Hautatu nola nahi duzun ${APPLICATION_NAME} instalatzea."
|
||||||
|
StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME}ren bertsio berriago bat instalatuta dago! Ez da aholkatzen bertsio zaharrago bat instalatzea. Benetan bertsio zaharrago hau instalatu nahi baduzu, hobe da lehenengo bertsio berria desinstalatzea. Hautatu nahi duzun aukera eta sakatu Hurrengoa jarraitzeko."
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} dagoeneko instalatuta dago.\nHautatu zer operazio egin nahi duzu eta klikatu Hurrengoa jarraitzeko."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} dagoeneko instalatuta dago.\nHautatu zer operazio egin nahi duzu eta klikatu Hurrengoa jarraitzeko."
|
||||||
StrCpy $PageReinstall_SAME_Field_2 "Gehitu/Berrinstalatu osagaiak"
|
StrCpy $PageReinstall_SAME_Field_2 "Gehitu/Berrinstalatu osagaiak"
|
||||||
StrCpy $PageReinstall_SAME_Field_3 "Desinstalatu ${APPLICATION_NAME}"
|
StrCpy $PageReinstall_SAME_Field_3 "Desinstalatu ${APPLICATION_NAME}"
|
||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalatu ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalatu ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Hautatu zer mantenu aukera egin nahi duzun."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Hautatu zer mantenu aukera egin nahi duzun."
|
||||||
|
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} ezinbestekoak instalatzen."
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Explorerekin Integrazioa"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Explorerekin Integrazioa Instalatzen"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Hasierako Menuko Lasterbidea"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Hasierako Menuko Lasterbidea"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Hasierako Menuan ${APPLICATION_NAME}rako Abiarazle bizkorra sortzen."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Hasierako Menuan ${APPLICATION_NAME}rako Abiarazle bizkorra sortzen."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Mahaigaineko Lasterbidea"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Mahaigaineko Lasterbidea"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Mahaigaineko Lasterbideak Sortzen"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Mahaigaineko Lasterbideak Sortzen"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Abiarazle Bizkorreko Lasterbidea"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Abiarazle Bizkorreko Lasterbidea"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Abiarazle Bizkorreko Lasterbidea Sortzen"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Abiarazle Bizkorreko Lasterbidea Sortzen"
|
||||||
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ezinbestekoak."
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} lasterbidea."
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} lasterbidea."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME}rako mahaigaineko lasterbidea."
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME}rako mahaigaineko lasterbidea."
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME}erako Abiarazle Bizkorreko Lasterbidea."
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME}erako Abiarazle Bizkorreko Lasterbidea."
|
||||||
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Ezabatu ${APPLICATION_NAME}en datuen karpeta zure ordenagailutik."
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Ezabatu ${APPLICATION_NAME}en datuen karpeta zure ordenagailutik."
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "${APPLICATION_NAME}en datuen karpeta ezabatu nahi duzu?"
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "${APPLICATION_NAME}en datuen karpeta ezabatu nahi duzu?"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Utzi markatu gabe datuen karpeta uzteko edo markatu datuen karpeta ezabatzeko."
|
||||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Bai, ezabtu datu karpeta hau."
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Bai, ezabtu datu karpeta hau."
|
||||||
StrCpy $UNINSTALLER_FILE_Detail "Desinstalatzailea idazten"
|
StrCpy $UNINSTALLER_FILE_Detail "Desinstalatzailea idazten"
|
||||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Instalatzaileko Erregistroko Giltzak idazten"
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Instalatzaileko Erregistroko Giltzak idazten"
|
||||||
StrCpy $UNINSTALLER_FINISHED_Detail "Bukatuta"
|
StrCpy $UNINSTALLER_FINISHED_Detail "Bukatuta"
|
||||||
|
StrCpy $UNINSTALL_MESSAGEBOX "Ez dirudi ${APPLICATION_NAME} '$INSTDIR'.$ direktorioan instalatuta dagoenik.\n$\nJarraitu hala ere (ez da aholkatzen)?"
|
||||||
StrCpy $UNINSTALL_ABORT "Desinstalazioak erabiltzaileak bertan behera utzi du"
|
StrCpy $UNINSTALL_ABORT "Desinstalazioak erabiltzaileak bertan behera utzi du"
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Abiarazle Bizkorreko Lasterbidea (E/E)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Abiarazle Bizkorreko Lasterbidea (E/E)"
|
||||||
|
StrCpy $INIT_NO_DESKTOP "Mahaigaineko Lasterbidea (dagoena berridazten du)"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Instalatzaileak administratzaile baimenak behar ditu, saiatu berriro"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Instalatzaileak administratzaile baimenak behar ditu, saiatu berriro"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Instalatzailea dagoeneko martxan da."
|
StrCpy $INIT_INSTALLER_RUNNING "Instalatzailea dagoeneko martxan da."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Desinstalatzaile honek administratzaile baimenak behar ditu, saiatu berriro"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Desinstalatzaile honek administratzaile baimenak behar ditu, saiatu berriro"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "Desinstalatzailea dagoeneko martxan da."
|
StrCpy $INIT_UNINSTALLER_RUNNING "Desinstalatzailea dagoeneko martxan da."
|
||||||
StrCpy $SectionGroup_Shortcuts "Lasterbideak"
|
StrCpy $SectionGroup_Shortcuts "Lasterbideak"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
|
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
|
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
|
|
||||||
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
|
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
|
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
|
|
||||||
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
|
|
||||||
StrCpy $INIT_NO_DESKTOP "Desktop Shortcut (overwrites existing)"
|
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
|
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Desinstal.lar ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstal.lar ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstal.lar ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolliu l'opció de manteniment per executar-ho."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolliu l'opció de manteniment per executar-ho."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instal·lant ${APPLICATION_NAME} essencial."
|
StrCpy $SEC_APPLICATION_DETAILS "Instal·lant ${APPLICATION_NAME} essencial."
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integració per Windows Explorer"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instal·lant integració per Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Accés directe del programa al menú d'inici"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Accés directe del programa al menú d'inici"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Afegint la drecera per ${APPLICATION_NAME} al menú d'inici."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Afegint la drecera per ${APPLICATION_NAME} al menú d'inici."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Drecera a l'escriptori"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Drecera a l'escriptori"
|
||||||
@@ -42,5 +44,3 @@ StrCpy $INIT_INSTALLER_RUNNING "L'instal·lador ja s'està executant."
|
|||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Aquest desinstal·lador requereix accés d'administrador, intenteu-ho de nou."
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Aquest desinstal·lador requereix accés d'administrador, intenteu-ho de nou."
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "El desinstal·lador ja s'està executant."
|
StrCpy $INIT_UNINSTALLER_RUNNING "El desinstal·lador ja s'està executant."
|
||||||
StrCpy $SectionGroup_Shortcuts "Dreceres"
|
StrCpy $SectionGroup_Shortcuts "Dreceres"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Odinstalovat ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstalovat ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstalovat ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte možnost údržby k provedení."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte možnost údržby k provedení."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instalují se náležitosti ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Instalují se náležitosti ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Stavová ikona pro Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrace do průzkumníka Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instaluji stavovou ikonu pro Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalace integrace do průzkumníka Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupce v Nabídce Start"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupce v Nabídce Start"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Přidávám zástupce pro ${APPLICATION_NAME} do Nabídky Start."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Přidávám zástupce pro ${APPLICATION_NAME} do Nabídky Start."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupce na ploše"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupce na ploše"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "De-installeer ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "De-installeer ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "De-installeer ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Kies de uit te voeren onderhoudsoptie."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Kies de uit te voeren onderhoudsoptie."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installeren ${APPLICATION_NAME} basis."
|
StrCpy $SEC_APPLICATION_DETAILS "Installeren ${APPLICATION_NAME} basis."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Statuspictogrammen voor Windows Verkenner"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integratie binnen Windows Verkenner"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installeren statuspictogrammen voor Windows Verkenner"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installeren Integratie binnen Windows Verkenner"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Startmenu snelkoppeling"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Startmenu snelkoppeling"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Toevoegen snelkoppeling voor ${APPLICATION_NAME} aan het Startmenu."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Toevoegen snelkoppeling voor ${APPLICATION_NAME} aan het Startmenu."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Werkblad snelkoppeling"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Werkblad snelkoppeling"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Uninstall ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
|
||||||
|
|||||||
@@ -42,5 +42,5 @@ StrCpy $INIT_INSTALLER_RUNNING "Paigaldaja on juba k
|
|||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "See desinstallija vajab admini ligipääsu, proovi uuesti"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "See desinstallija vajab admini ligipääsu, proovi uuesti"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "See desinstallija on juba käimas"
|
StrCpy $INIT_UNINSTALLER_RUNNING "See desinstallija on juba käimas"
|
||||||
StrCpy $SectionGroup_Shortcuts "Viidad"
|
StrCpy $SectionGroup_Shortcuts "Viidad"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Uninstall ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Poista ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Poista ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Poista ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Valitse suoritettava huoltotoimenpide."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Valitse suoritettava huoltotoimenpide."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Asennetaan sovelluksen ${APPLICATION_NAME} välttämättömyyksiä."
|
StrCpy $SEC_APPLICATION_DETAILS "Asennetaan sovelluksen ${APPLICATION_NAME} välttämättömyyksiä."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Tilakuvakkeet Windows Explorerille"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integraatio Windows Exploreriin"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Asennetaan tilakuvakkeet Windows Explorerille"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Asennetaan integraatiota Windows Exploreriin"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Käynnistä-valikon pikakuvake"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Käynnistä-valikon pikakuvake"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lisätään ${APPLICATION_NAME}-pikakuvake Käynnistä-valikkoon."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lisätään ${APPLICATION_NAME}-pikakuvake Käynnistä-valikkoon."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Työpöydän pikakuvake"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Työpöydän pikakuvake"
|
||||||
@@ -31,16 +31,16 @@ StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Poista ${APPLICATION_NAME}-datakansio tiet
|
|||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Haluatko varmasti poistaa ${APPLICATION_NAME}-datakansion?"
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Haluatko varmasti poistaa ${APPLICATION_NAME}-datakansion?"
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Jätä valinta ruksimatta säilyttääksesti datakansion myöhempää käyttöä varten tai täytä ruksi jos haluat poistaa datakansion ja siinä olevat tiedostot."
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Jätä valinta ruksimatta säilyttääksesti datakansion myöhempää käyttöä varten tai täytä ruksi jos haluat poistaa datakansion ja siinä olevat tiedostot."
|
||||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Kyllä, poista tämä datakansio."
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Kyllä, poista tämä datakansio."
|
||||||
|
StrCpy $UNINSTALLER_FILE_Detail "Kirjoitetaan poisto-ohjelmaa"
|
||||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Kirjoitetaan asennusohjelman rekisteriavaimia"
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Kirjoitetaan asennusohjelman rekisteriavaimia"
|
||||||
StrCpy $UNINSTALLER_FINISHED_Detail "Valmis"
|
StrCpy $UNINSTALLER_FINISHED_Detail "Valmis"
|
||||||
StrCpy $UNINSTALL_MESSAGEBOX "Vaikuttaa siltä että sovellus ${APPLICATION_NAME} on asennettu kansioon '$INSTDIR'.\n\nHaluatko jatkaa tästä huolimatta (ei suositeltavaa)?"
|
StrCpy $UNINSTALL_MESSAGEBOX "Vaikuttaa siltä että sovellus ${APPLICATION_NAME} on asennettu kansioon '$INSTDIR'.\n\nHaluatko jatkaa tästä huolimatta (ei suositeltavaa)?"
|
||||||
StrCpy $UNINSTALL_ABORT "Poistaminen keskeytettiin käyttäjän toimesta"
|
StrCpy $UNINSTALL_ABORT "Poistaminen keskeytettiin käyttäjän toimesta"
|
||||||
|
StrCpy $INIT_NO_QUICK_LAUNCH "Pikakäynnistyksen pikakuvake (-)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Työpöydän pikakuvake (korvaa nykyinen)"
|
StrCpy $INIT_NO_DESKTOP "Työpöydän pikakuvake (korvaa nykyinen)"
|
||||||
|
StrCpy $UAC_ERROR_ELEVATE "Kohottaminen ei onnistu, virhe:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tämä asennusohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tämä asennusohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Asennusohjelma on jo käynnissä."
|
StrCpy $INIT_INSTALLER_RUNNING "Asennusohjelma on jo käynnissä."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tämä poisto-ohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tämä poisto-ohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "Poisto-ohjelma on jo käynnissä."
|
StrCpy $INIT_UNINSTALLER_RUNNING "Poisto-ohjelma on jo käynnissä."
|
||||||
StrCpy $SectionGroup_Shortcuts "Pikakuvakkeet"
|
StrCpy $SectionGroup_Shortcuts "Pikakuvakkeet"
|
||||||
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
|
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
|
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
|
|
||||||
|
|||||||
@@ -1,26 +1,28 @@
|
|||||||
# Auto-generated - do not modify
|
# Auto-generated - do not modify
|
||||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Montrer les notes de version"
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Afficher les notes de version"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Le(s) processus en cours d’exécution ${APPLICATION_EXECUTABLE} doit être stoppé afin de poursuivre.$\nVoulez-vous que le programme d’installation s’en charge pour vous ?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Les processus ${APPLICATION_EXECUTABLE} en cours d’exécution doivent être stoppés avant de poursuivre.$\nVoulez-vous que le programme d’installation s’en charge pour vous ?"
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Fermeture du processus ${APPLICATION_EXECUTABLE}."
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Fermeture des processus ${APPLICATION_EXECUTABLE}."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Les processus à stopper n'ont pas été trouvés."
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Le processus à stopper n'a pas été trouvé !"
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "Une vieille version de ${APPLICATION_NAME} est installée sur votre système. Il est recommandé que vous désinstalliez cette version avant l'installation. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
StrCpy $PageReinstall_NEW_Field_1 "Une ancienne version de ${APPLICATION_NAME} est installée sur votre système. Il est recommandé de désinstaller cette version avant de continuer. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Désinstaller avant d'installer à nouveau"
|
StrCpy $PageReinstall_NEW_Field_2 "Désinstaller avant d'installer à nouveau"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "Ne pas désinstaller"
|
StrCpy $PageReinstall_NEW_Field_3 "Ne pas désinstaller"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Déjà installée"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Déjà installé"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choisissez comment vous voulez installer ${APPLICATION_NAME}."
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choisissez comment installer ${APPLICATION_NAME}."
|
||||||
StrCpy $PageReinstall_OLD_Field_1 "Une version plus récente de ${APPLICATION_NAME} est déjà installée ! Il n'est pas recommandé d'installer une version plus ancienne. Si vous voulez vraiment installer cette version plus ancienne, il est préférable de d'abord désinstaller la version courante. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
StrCpy $PageReinstall_OLD_Field_1 "Une version plus récente de ${APPLICATION_NAME} est déjà installée ! Il n'est pas recommandé d'installer une version plus ancienne. Si vous voulez vraiment installer cette version plus ancienne, il est préférable de d'abord désinstaller la version courante. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} est déjà installée.\nSélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} est déjà installé.\nSélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer."
|
||||||
StrCpy $PageReinstall_SAME_Field_2 "Ajouter/Réinstaller des composants"
|
StrCpy $PageReinstall_SAME_Field_2 "Ajouter/Réinstaller des composants"
|
||||||
StrCpy $PageReinstall_SAME_Field_3 "Désinstaller ${APPLICATION_NAME}"
|
StrCpy $PageReinstall_SAME_Field_3 "Désinstaller ${APPLICATION_NAME}"
|
||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Désinstaller ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Désinstaller ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choisir l'option de maintenance à appliquer."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choisir l'opération de maintenance à effectuer."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installer les essentiels de ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Installation des essentiels de ${APPLICATION_NAME}."
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Intégration à l'Explorateur Windows"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installation de l'intégration à l'Explorateur Windows..."
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Raccourci programme du menu Démarrer"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Raccourci programme du menu Démarrer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Ajouter un raccourci pour ${APPLICATION_NAME} au menu Démarrer."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Ajout d'un raccourci pour ${APPLICATION_NAME} au menu Démarrer."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Raccourci Bureau"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Raccourci Bureau"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Créer un raccourci Bureau"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Création d'un raccourci sur le Bureau"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Raccourci de lancement rapide"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Raccourci de lancement rapide"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Créer un raccourci de lancement rapide"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Création d'un raccourci de lancement rapide"
|
||||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Essentiels de ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Essentiels de ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Raccourci de ${APPLICATION_NAME}"
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Raccourci de ${APPLICATION_NAME}"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Raccourci Bureau de ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Raccourci Bureau de ${APPLICATION_NAME}."
|
||||||
@@ -32,15 +34,13 @@ StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Oui, supprimer ce dossier de données."
|
|||||||
StrCpy $UNINSTALLER_FILE_Detail "Écriture du désinstallateur"
|
StrCpy $UNINSTALLER_FILE_Detail "Écriture du désinstallateur"
|
||||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Écriture des clefs de registre du désinstallateur"
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Écriture des clefs de registre du désinstallateur"
|
||||||
StrCpy $UNINSTALLER_FINISHED_Detail "Terminé"
|
StrCpy $UNINSTALLER_FINISHED_Detail "Terminé"
|
||||||
StrCpy $UNINSTALL_MESSAGEBOX "Il semble que ${APPLICATION_NAME} ne soit pas installée dans le dossier '$INSTDIR'.$\n$\nVoulez-vous poursuivre (non recommandé) ?"
|
StrCpy $UNINSTALL_MESSAGEBOX "Il semble que ${APPLICATION_NAME} ne soit pas installé dans le dossier '$INSTDIR'.$\n$\nVoulez-vous poursuivre (non recommandé) ?"
|
||||||
StrCpy $UNINSTALL_ABORT "Désinstallation interrompue par l'utilisateur"
|
StrCpy $UNINSTALL_ABORT "Désinstallation interrompue par l'utilisateur"
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Raccourci de lancement rapide (N/A)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Raccourci de lancement rapide (non disponible)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Raccourci bureau (remplace l’existant)"
|
StrCpy $INIT_NO_DESKTOP "Raccourci bureau (remplace l’existant)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Echec d'élévation, erreur :"
|
StrCpy $UAC_ERROR_ELEVATE "Échec d'élévation, erreur :"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Cet installateur requiert les droits administrateur, essayez à nouveau"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Cet installateur requiert les droits administrateur, essayez à nouveau"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Une installation est déjà en cours."
|
StrCpy $INIT_INSTALLER_RUNNING "Une installation est déjà en cours."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Ce désinstallateur requiert les droits administrateur, essayez à nouveau"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Ce désinstallateur requiert les droits administrateur, essayez à nouveau"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "Une désinstallation est déjà en cours."
|
StrCpy $INIT_UNINSTALLER_RUNNING "Une désinstallation est déjà en cours."
|
||||||
StrCpy $SectionGroup_Shortcuts "Raccourcis"
|
StrCpy $SectionGroup_Shortcuts "Raccourcis"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Amosar as notas de publicaci
|
|||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Atopáronse procesos ${APPLICATION_EXECUTABLE} que teñen que ser detidos.$\nQuere que sexa o instalador quen o(s) deteña?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Atopáronse procesos ${APPLICATION_EXECUTABLE} que teñen que ser detidos.$\nQuere que sexa o instalador quen o(s) deteña?"
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Matando os procesos ${APPLICATION_EXECUTABLE}."
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Matando os procesos ${APPLICATION_EXECUTABLE}."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Non se atopou o proceso para matalo!"
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Non se atopou o proceso para matalo!"
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "No seu sistema hai instalada unha versión anterior do ${APPLICATION_NAME}. Recomendámoslle que desinstale a versión actual antes de instalar. Seleccione a operación que quere realizar e prema en Seguinte para continuar."
|
StrCpy $PageReinstall_NEW_Field_1 "No seu sistema hai instalada unha versión anterior de ${APPLICATION_NAME}. Recomendámoslle que desinstale a versión actual antes de instalar. Seleccione a operación que quere realizar e prema en Seguinte para continuar."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "Non desinstalar"
|
StrCpy $PageReinstall_NEW_Field_3 "Non desinstalar"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Xa instalado"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Xa instalado"
|
||||||
@@ -15,10 +15,10 @@ StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolla a opción de mantemento a realizar."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolla a opción de mantemento a realizar."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciais."
|
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciais."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Iconas de estado para Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integración con Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando as iconas de estado para Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando a integración con Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo ao programa no menú de inicio"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo ao programa no menú de inicio"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Engadindo o acceso directo ao ${APPLICATION_NAME} no menú de inicio"
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Engadindo o acceso directo a ${APPLICATION_NAME} no menú de inicio"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo no escritorio"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo no escritorio"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando os accesos directos no escritorio"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando os accesos directos no escritorio"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso de inicio rápido"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso de inicio rápido"
|
||||||
@@ -39,8 +39,8 @@ StrCpy $UNINSTALL_ABORT "A desinstalaci
|
|||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Acceso de inicio rápido (n/d)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Acceso de inicio rápido (n/d)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Atallo no escritorio (sobrescribe o existente)"
|
StrCpy $INIT_NO_DESKTOP "Atallo no escritorio (sobrescribe o existente)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Non foi posíbel elevalo, erro:"
|
StrCpy $UAC_ERROR_ELEVATE "Non foi posíbel elevalo, erro:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador require acceso de administrador, tenteo de novo"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador require acceso de administrador, ténteo de novo"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "O instalador xa está en execución."
|
StrCpy $INIT_INSTALLER_RUNNING "O instalador xa está en execución."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador require acceso de administrador, tenteo de novo"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador require acceso de administrador, ténteo de novo"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador xa está en execución."
|
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador xa está en execución."
|
||||||
StrCpy $SectionGroup_Shortcuts "Atallos"
|
StrCpy $SectionGroup_Shortcuts "Atallos"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} entfernen"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} entfernen"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} entfernen"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wählen Sie zur Ausführung die Wartungsoption."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wählen Sie zur Ausführung die Wartungsoption."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installiere ${APPLICATION_NAME} Basis."
|
StrCpy $SEC_APPLICATION_DETAILS "Installiere ${APPLICATION_NAME} Basis."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status-Icons für den Windows-Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration in den Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installiere Status-Icons für den Windows-Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installiere Integration in den Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Installiere Verknüpfung im Programmmenü"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Installiere Verknüpfung im Programmmenü"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Füge Verknüpfung für ${APPLICATION_NAME} dem Startmenü hinzu."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Füge Verknüpfung für ${APPLICATION_NAME} dem Startmenü hinzu."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop-Verknüpfung"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop-Verknüpfung"
|
||||||
@@ -38,7 +38,7 @@ StrCpy $UNINSTALL_MESSAGEBOX "Es scheint, als ob ${APPLICATION_NAME} nicht im Ve
|
|||||||
StrCpy $UNINSTALL_ABORT "Deinstallation vom Benutzer abgebrochen"
|
StrCpy $UNINSTALL_ABORT "Deinstallation vom Benutzer abgebrochen"
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Schnellstart-Verknüpfung (Nicht verfügbar)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Schnellstart-Verknüpfung (Nicht verfügbar)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Desktop-Verknüpfung (überschreibt vorhandene)"
|
StrCpy $INIT_NO_DESKTOP "Desktop-Verknüpfung (überschreibt vorhandene)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Kann Rechte nicht erhöhen, Fehler:"
|
StrCpy $UAC_ERROR_ELEVATE "Rechte können nicht erhöht werden, Fehler:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dieses Installationsprogramm erfordert Administrator-Rechte, bitte erneut versuchen"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dieses Installationsprogramm erfordert Administrator-Rechte, bitte erneut versuchen"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Das Installationsprogramm wird bereits ausgeführt."
|
StrCpy $INIT_INSTALLER_RUNNING "Das Installationsprogramm wird bereits ausgeführt."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Das Deinstallationsprogramm erfordert Administrator-Rechte. Bitte erneut versuchen."
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Das Deinstallationsprogramm erfordert Administrator-Rechte. Bitte erneut versuchen."
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Απεγκατάσταση ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Απεγκατάσταση ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Επιλέξτε την επιλογή συντήρησης που θα πραγματοποιηθεί."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Επιλέξτε την επιλογή συντήρησης που θα πραγματοποιηθεί."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Εγκατάσταση βάσης ${APPLICATION_NAME} σε εξέλιξη."
|
StrCpy $SEC_APPLICATION_DETAILS "Εγκατάσταση βάσης ${APPLICATION_NAME} σε εξέλιξη."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Εικονίδια κατάστασης για την Εξερεύνηση των Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Ενσωμάτωση στην Εξερεύνηση των Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Εγκατάσταση εικονιδίων κατάστασης στην Εξερεύνηση των Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Εγκατάσταση ενσωμάτωσης στην Εξερεύνηση των Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Συντόμευση στο Αρχικό Μενού"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Συντόμευση στο Αρχικό Μενού"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Προσθήκη συντόμευσης για την ${APPLICATION_NAME} στο Αρχικό Μενού."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Προσθήκη συντόμευσης για την ${APPLICATION_NAME} στο Αρχικό Μενού."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Συντόμευση επιφάνειας εργασίας"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Συντόμευση επιφάνειας εργασίας"
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is alr
|
|||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Disinstalla ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Disinstalla ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Disinstalla ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Scegli l'opzione di manutenzione da eseguire."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Scegli l'opzione di manutenzione da eseguire."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installazione degli elementi fondamentali di ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Installazione degli elementi fondamentali di ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Icone di stato per Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrazione con Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installazione delle icone di stato per Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installazione dell'integrazione con Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Scorciatoia di programma menu Start"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Scorciatoia di programma menu Start"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Aggiunta della scorciatoia per ${APPLICATION_NAME} al menu Start."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Aggiunta della scorciatoia per ${APPLICATION_NAME} al menu Start."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Scorciatoia del desktop"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Scorciatoia del desktop"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME}
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} をアンインストール"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} をアンインストール"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "実行するには、メンテナンスオプションを選択してください。"
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "実行するには、メンテナンスオプションを選択してください。"
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} の重要なパッケージをインストール中"
|
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} の重要なパッケージをインストール中"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windowsエクスプローラの状態アイコン"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows エクスプローラーへの統合"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windowsエクスプローラの状態アイコンをインストール中"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows エクスプローラーへの統合をインストールしています。"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "スタートメニューショートカット"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "スタートメニューショートカット"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "スタートメニューに${APPLICATION_NAME} のショートカットの追加"
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "スタートメニューに${APPLICATION_NAME} のショートカットの追加"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "デスクトップショートカット"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "デスクトップショートカット"
|
||||||
|
|||||||
46
admin/win/nsi/l10n/Norwegian.nsh
Normal file
46
admin/win/nsi/l10n/Norwegian.nsh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Auto-generated - do not modify
|
||||||
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Vis versjonsmerknader"
|
||||||
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Fant ${APPLICATION_EXECUTABLE}-prosess(er) som må stoppes.$\nVil du at installasjonsprogrammet skal stoppe dem for deg?"
|
||||||
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Terminerer ${APPLICATION_EXECUTABLE}-prosesser."
|
||||||
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Fant ikke prosess som skulle termineres!"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_1 "En eldre versjon av ${APPLICATION_NAME} er installert på systemet ditt. Det anbefales at du avnistallerer den versjonen før installering av ny versjon. Velg hva du vil gjøre og klikk Neste for å fortsette."
|
||||||
|
StrCpy $PageReinstall_NEW_Field_2 "Avinstaller før installering"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_3 "Ikke avinstaller"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Allerede installert"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Velg hvordan du vil installere ${APPLICATION_NAME}."
|
||||||
|
StrCpy $PageReinstall_OLD_Field_1 "En nyere versjon av ${APPLICATION_NAME} er allerede installert! Det anbefales ikke at du installerer en eldre versjon. Hvis du virkelig ønsker å installere denne eldre versjonen, er det bedre å avinstallere gjeldende versjon først. Velg hva du vil gjøre og klikk Neste for å fortsette."
|
||||||
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} er allerede installert.\nVelg hva du vil gjøre og klikk Neste for å fortsette."
|
||||||
|
StrCpy $PageReinstall_SAME_Field_2 "Legg til/installer komponenter på nytt"
|
||||||
|
StrCpy $PageReinstall_SAME_Field_3 "Avinstaller ${APPLICATION_NAME}"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstaller ${APPLICATION_NAME}"
|
||||||
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Velg hva slags vedlikehold som skal utføres."
|
||||||
|
StrCpy $SEC_APPLICATION_DETAILS "Installerer ${APPLICATION_NAME} grunnleggende."
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrering med Windows Utforsker"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installerer integrering med Windows Utforsker"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Snarvei i Start-menyen"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Legger til snarvei for ${APPLICATION_NAME} i Start-menyen."
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Snarvei på skrivebordet"
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Oppretter snarveier på skrivebordet"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Snarvei i Hurtigstart"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Oppretter snarvei i Hurtigstart"
|
||||||
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} grunnleggende."
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}-snarvei."
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Skrivebordssnarvei for ${APPLICATION_NAME}."
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Hurtigstart-snarvei for ${APPLICATION_NAME}."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Fjern ${APPLICATION_NAME} sin datamappe fra datamaskinen."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Ønsker du å slette ${APPLICATION_NAME} sin datamappe?"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Ikke kryss av dersom du vil beholde datamappen for senere bruk. Kryss av for å slette mappen."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ja, slett denne datamappen."
|
||||||
|
StrCpy $UNINSTALLER_FILE_Detail "Skriver Avinstallasjonsprogram."
|
||||||
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Skriver registernøkler for installasjonsprogrammet"
|
||||||
|
StrCpy $UNINSTALLER_FINISHED_Detail "Ferdig"
|
||||||
|
StrCpy $UNINSTALL_MESSAGEBOX "Det ser ikke ut som ${APPLICATION_NAME} er installert i mappe '$INSTDIR'.$\n$\nFortsett likevel (ikke anbefalt)?"
|
||||||
|
StrCpy $UNINSTALL_ABORT "Avinstallering avbrutt av bruker"
|
||||||
|
StrCpy $INIT_NO_QUICK_LAUNCH "Hurtigstart-snarvei (I/T)"
|
||||||
|
StrCpy $INIT_NO_DESKTOP "Snarvei på skrivebordet (skriver over eksisterende)"
|
||||||
|
StrCpy $UAC_ERROR_ELEVATE "Klarte ikke å heve tilgangsnivå. Feil: "
|
||||||
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dette installasjonsprogrammet krever administrasjonstilgang. Prøv igjen"
|
||||||
|
StrCpy $INIT_INSTALLER_RUNNING "Installasjonsprogrammet kjører allerede."
|
||||||
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Avinstallasjonsprogrammet krever administrasjonstilgang. Prøv igjen"
|
||||||
|
StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallasjonsprogrammet kjører allerede."
|
||||||
|
StrCpy $SectionGroup_Shortcuts "Snarveier"
|
||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Odinstaluj ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstaluj ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstaluj ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wybierz sposób utrzymywania."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wybierz sposób utrzymywania."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instaluje niezbędne pliki ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Instaluje niezbędne pliki ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Ikona statusu dla Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "integracja z Eksploratorem Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instaluj ikonę statusu dla Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalowanie Integracji z Eksploratorem Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Skrót w Menu Start"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Skrót w Menu Start"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Dodaję skrót ${APPLICATION_NAME} w Menu Start."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Dodaję skrót ${APPLICATION_NAME} w Menu Start."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrót na Pulpicie"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrót na Pulpicie"
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
# Auto-generated - do not modify
|
# Auto-generated - do not modify
|
||||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados processos ${APPLICATION_EXECUTABLE} que precisam de ser parados.$\nDeseja que o instalador os pare ?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Processos(s) ${APPLICATION_EXECUTABLE} em execução. Estes processos precisam de ser interrompidos.$\\nDeseja que o instalador os termine automaticamente?"
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar processos ${APPLICATION_EXECUTABLE}."
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar os processos ${APPLICATION_EXECUTABLE}."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processo para terminar não foi encontrado!"
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado o processo a terminar!"
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "Está instalada uma versão anterior de ${APPLICATION_NAME} no seu sistema. Recomenda-se que desinstale primeiro a versão atual antes de instalar. Selecione a operação que pretende fazer, e clique Seguinte para continuar."
|
StrCpy $PageReinstall_NEW_Field_1 "Uma versão antiga de ${APPLICATION_NAME} está instalada no sistema. É recomendado que você desinstale a versão atual antes de instalar. Selecione a operação que deseja executar e clique em $\"Avançar$\" para continuar."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "Não desinstalar"
|
StrCpy $PageReinstall_NEW_Field_3 "Não desinstale"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Já instalado"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Já instalado"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como pretende instalar ${APPLICATION_NAME}."
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como pretende instalar ${APPLICATION_NAME}."
|
||||||
StrCpy $PageReinstall_OLD_Field_1 "Já esta instalada uma nova versão dfe ${APPLICATION_NAME}! Não se recomenda instalar uma versão anterior. Se quer mesmo instalar esta versão mais antiga, é melhor desinstalar primeiro a versão atual. Selecione a operação que pretende fazer e clique Seguinte para continuar."
|
StrCpy $PageReinstall_OLD_Field_1 "Uma versão mais recente do ${APPLICATION_NAME} já está instalada! Não é recomendada a instalação de uma versão mais antiga. Se realmente deseja instalar esta versão, aconselha-se a desinstalação da versão atual primeiro. Selecione a operação que deseja executar e clique em Avançar para continuar."
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} já está instalado.\nSelecione a operação que deseja fazer, e clique Seguinte para continuar."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} já está instalado.\nSelecione a operação que deseja fazer, e clique Seguinte para continuar."
|
||||||
StrCpy $PageReinstall_SAME_Field_2 "Adicionar/Reinstalar Componentes"
|
StrCpy $PageReinstall_SAME_Field_2 "Adicionar/Reinstalar Componentes"
|
||||||
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
|
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
|
||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de manutenção a fazer."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de manutenção a realizar."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "A instalar o essencial de ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "A instalar o essencial de ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Icons de estado para Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integração para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "A instalar icons de estado para Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "A instalar integração para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Atalho do progama no Menu Inicial"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Atalho do progama no Menu Inicial"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "A adicionar o atalho de ${APPLICATION_NAME} ao Menu Inicial."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "A adicionar o atalho de ${APPLICATION_NAME} ao Menu Inicial."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho da área de trabalho"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho da área de trabalho"
|
||||||
@@ -40,7 +40,7 @@ StrCpy $INIT_NO_QUICK_LAUNCH "Atalho de Início Rápido (N/A)"
|
|||||||
StrCpy $INIT_NO_DESKTOP "Atalho do Ambiente de Trabalho (sobrepõe o existente)"
|
StrCpy $INIT_NO_DESKTOP "Atalho do Ambiente de Trabalho (sobrepõe o existente)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:"
|
StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador precisa de permissões de administrador, tente novamente"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador precisa de permissões de administrador, tente novamente"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "O instalador já está a correr."
|
StrCpy $INIT_INSTALLER_RUNNING "O instalador já está em execução."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador precisa de acesso de administrador; tente novamente"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador requer permissões de administrador, tente novamente"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está a correr."
|
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está em execução."
|
||||||
StrCpy $SectionGroup_Shortcuts "Atalhos"
|
StrCpy $SectionGroup_Shortcuts "Atalhos"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de realizar manutenção."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de realizar manutenção."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} fundamentos."
|
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} fundamentos."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Ícones de status para Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integração para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando os ícones de status para o Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalação de Integração para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Menu Iniciar Programa Atalho"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Menu Iniciar Programa Atalho"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adicionando atalho para ${APPLICATION_NAME} ao Menu Iniciar."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adicionando atalho para ${APPLICATION_NAME} ao Menu Iniciar."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho Desktop"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho Desktop"
|
||||||
|
|||||||
@@ -1,46 +1,46 @@
|
|||||||
# Auto-generated - do not modify
|
# Auto-generated - do not modify
|
||||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Показать примечания к выпуску"
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Показать примечания к выпуску"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Обнаружены процес(сы) ${APPLICATION_EXECUTABLE}, которые должны быть остановлены.$\nХотите программа установки сделает это самостоятельно?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Обнаружен процесс ${APPLICATION_EXECUTABLE}, который требуется остановить.$\nВы хотите чтобы программа установки сделала это самостоятельно?"
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Завершение процессов ${APPLICATION_EXECUTABLE}."
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Завершение процессов ${APPLICATION_EXECUTABLE}."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Не найдены процессы, которые нужно завершить!"
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Процессы для завершения не найдены!"
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "Обнаружена более старая версия ${APPLICATION_NAME}. Рекомендуется удалить её перед установкой. Выберите желаемое действие и нажмите $\"Далее$\"."
|
StrCpy $PageReinstall_NEW_Field_1 "Обнаружена более старая версия ${APPLICATION_NAME}. Рекомендуется удалить её перед установкой. Выберите желаемое действие и нажмите Далее для продолжения."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Удалить перед установкой"
|
StrCpy $PageReinstall_NEW_Field_2 "Удалить перед установкой"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "Не устанавливать"
|
StrCpy $PageReinstall_NEW_Field_3 "Не устанавливать"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Уже установлено"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Уже установлено"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Выберите, как вы хотите установить ${APPLICATION_NAME}."
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Выберите, как вы хотите установить ${APPLICATION_NAME}."
|
||||||
StrCpy $PageReinstall_OLD_Field_1 "Новая версия ${APPLICATION_NAME} уже установлена! Не рекомендуется устанавливать старую версию. Если вы действительно хотите, чтобы устанавливать старую версию, лучше удалить текущую версию. Выберите операцию, которую необходимо выполнить, и нажмите Далее, чтобы продолжить."
|
StrCpy $PageReinstall_OLD_Field_1 "Новая версия ${APPLICATION_NAME} уже установлена! Не рекомендуется устанавливать старую версию. Если вы действительно хотите установить эту старую версию, то сначала лучше удалить текущую версию. Выберите желаемое действие и нажмите Далее для продолжения."
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} уже установлена.\nВыберите операцию, которую необходимо выполнить, и нажмите Далее, чтобы продолжить."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} уже установлена.\nВыберите желаемое действие и нажмите Далее для продолжения."
|
||||||
StrCpy $PageReinstall_SAME_Field_2 "Добавить/Переустановить компоненты"
|
StrCpy $PageReinstall_SAME_Field_2 "Добавить/Переустановить компоненты"
|
||||||
StrCpy $PageReinstall_SAME_Field_3 "Удалить ${APPLICATION_NAME}"
|
StrCpy $PageReinstall_SAME_Field_3 "Удалить ${APPLICATION_NAME}"
|
||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Удалить ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Удалить ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Выберите опцию обслуживания для исполнения."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Выберите опцию обслуживания для исполнения."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Установка зависимостей приложения ${APPLICATION_NAME}"
|
StrCpy $SEC_APPLICATION_DETAILS "Установка базовых компонентов ${APPLICATION_NAME}"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Значки статуса для проводника Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Интеграция для проводника Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Установка значков статуса для проводника Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Установка интеграции с проводником Windows"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Ярлык в меню Пуск"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Ярлык в меню Пуск"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Добавление ярлыка ${APPLICATION_NAME} в меню Пуск"
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Добавление ярлыка ${APPLICATION_NAME} в меню Пуск"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Ярлык на рабочем столе"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Ярлык на рабочем столе"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Создание ярлыков на рабочем столе"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Создание ярлыков на рабочем столе"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Ярлык в меню быстрого запуска"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Ярлык в меню быстрого запуска"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Создание ярлыка в меню быстрого запуска"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Создание ярлыка в меню быстрого запуска"
|
||||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Зависимости приложения ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Базовые компоненты ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Ярлык приложения ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Ярлык приложения ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Ярлык на рабочем столе для ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Ярлык на рабочем столе для ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Ярлык в меню быстрого запуска для ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Ярлык в меню быстрого запуска для ${APPLICATION_NAME}."
|
||||||
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Удалить папку данных ${APPLICATION_NAME} с вашего компьютера."
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Удалить каталог данных ${APPLICATION_NAME} с вашего компьютера."
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Вы хотите удалить папку с данными ${APPLICATION_NAME} ?"
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Вы действительно хотите удалить каталог с данными ${APPLICATION_NAME} ?"
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Оставьте неактивным, для сохранения папки с данными приложения, для последующего их использования."
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Оставьте неактивным для сохранения каталога с данными для последующего использования или отметьте для удаления."
|
||||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Да, удалить эту папку с данными."
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Да, удалить этот каталог с данными."
|
||||||
StrCpy $UNINSTALLER_FILE_Detail "Сохранение деинсталятора"
|
StrCpy $UNINSTALLER_FILE_Detail "Сохранение деинсталлятора"
|
||||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Запись ключей реестра"
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Запись ключей реестра установщика"
|
||||||
StrCpy $UNINSTALLER_FINISHED_Detail "Завершено"
|
StrCpy $UNINSTALLER_FINISHED_Detail "Завершено"
|
||||||
StrCpy $UNINSTALL_MESSAGEBOX "Скорее всего, приложение ${APPLICATION_NAME} уже установлено в директорию '$INSTDIR'.\nВсе равно продолжить (не рекомендуется)?"
|
StrCpy $UNINSTALL_MESSAGEBOX "Похоже, что приложение ${APPLICATION_NAME} не установлено в каталог '$INSTDIR'.\nВсе равно продолжить (не рекомендуется)?"
|
||||||
StrCpy $UNINSTALL_ABORT "Удаление отменено пользователем"
|
StrCpy $UNINSTALL_ABORT "Удаление отменено пользователем"
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Ярлык быстрого запуска (недоступен)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Ярлык быстрого запуска (не доступен)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Ярлык на рабочем столе (перезаписать существующий)"
|
StrCpy $INIT_NO_DESKTOP "Ярлык на рабочем столе (перезапись существующего)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "Невозможно поднять, ошибка:"
|
StrCpy $UAC_ERROR_ELEVATE "Невозможно повысить привилегии, ошибка:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Для установки необходимы права администратора, попробуйте ещё раз."
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Этому установщику требуются права администратора, попробуйте ещё раз"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Установщик уже запущен."
|
StrCpy $INIT_INSTALLER_RUNNING "Установщик уже запущен."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Этот деинсталятор требует права администратора, попытайтесь ещё"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Этому деинсталлятору требуются права администратора, попробуйте ещё раз"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "Программа удаления уже выполняется."
|
StrCpy $INIT_UNINSTALLER_RUNNING "Программа удаления уже выполняется."
|
||||||
StrCpy $SectionGroup_Shortcuts "Ярлыки"
|
StrCpy $SectionGroup_Shortcuts "Ярлыки"
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "卸载${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "卸载${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "卸载${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "选择需要执行的维护选项。"
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "选择需要执行的维护选项。"
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "安装${APPLICATION_NAME}基本组件。"
|
StrCpy $SEC_APPLICATION_DETAILS "安装${APPLICATION_NAME}基本组件。"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "整合到 Windows 资源管理器"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "正在整合到 Windows 资源管理器"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "开始菜单程序快捷方式"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "开始菜单程序快捷方式"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "添加 ${APPLICATION_NAME} 快捷方式到开始菜单。"
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "添加 ${APPLICATION_NAME} 快捷方式到开始菜单。"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "桌面快捷方式"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "桌面快捷方式"
|
||||||
@@ -42,5 +44,3 @@ StrCpy $INIT_INSTALLER_RUNNING "安装程序已经运行。"
|
|||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "卸载程序需要管理员权限,请重试"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "卸载程序需要管理员权限,请重试"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "卸载程序已经运行。"
|
StrCpy $INIT_UNINSTALLER_RUNNING "卸载程序已经运行。"
|
||||||
StrCpy $SectionGroup_Shortcuts "快捷方式"
|
StrCpy $SectionGroup_Shortcuts "快捷方式"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Odin
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinštalova<EFBFBD> ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinštalova<EFBFBD> ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte možnos<6F> vykona<6E> údržbu."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte možnos<6F> vykona<6E> údržbu."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Inštalujú sa náležitosti ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Inštalujú sa náležitosti ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Stavová ikona pre Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrácia do Windows Explorera"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Inštalujem stavovú ikonu pre Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Inštalaácia integrácie do Windows Explorera"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupca programu v menu Štart"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupca programu v menu Štart"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Prida<EFBFBD> zástupcu pre ${APPLICATION_NAME} do menu Štart."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Prida<EFBFBD> zástupcu pre ${APPLICATION_NAME} do menu Štart."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupca na ploche"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupca na ploche"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Odstrani ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Odstrani ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Odstrani ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Izberite možnost vzdrževanja za izvedbo."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Izberite možnost vzdrževanja za izvedbo."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Poteka nameščanje ključnih paketov programa ${APPLICATION_NAME}."
|
StrCpy $SEC_APPLICATION_DETAILS "Poteka nameščanje ključnih paketov programa ${APPLICATION_NAME}."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Ikona stanja za program Raziskovalec"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Podpora programa Windows raziskovalca"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Nameščanje ikone stanja za Raziskovalca"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Nameščanje podpore za program Windows Raziskovalec"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Bližnjica programa v programskem meniju"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Bližnjica programa v programskem meniju"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Poteka dodajanje bližnjice programa ${APPLICATION_NAME} v programski meni."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Poteka dodajanje bližnjice programa ${APPLICATION_NAME} v programski meni."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Bližnica namizja"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Bližnica namizja"
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar las notas de la versión"
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar las notas de la versión"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "El/los proceso/s ${APPLICATION_EXECUTABLE} debe/n ser detenidos.$\n¿Quiere que el instalador lo haga por usted?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "El/los proceso/s ${APPLICATION_EXECUTABLE} debe/n ser detenidos.$\n¿Quiere que el instalador lo haga por usted?"
|
||||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Deteniendo el/los proceso/s ${APPLICATION_EXECUTABLE}."
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Deteniendo el/los proceso/s ${APPLICATION_EXECUTABLE}."
|
||||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "¡Proceso a detener no encontrado!"
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "¡Proceso para detener no encontrado!"
|
||||||
StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda de instalar la versión actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar."
|
StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda de instalar la versión actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar."
|
||||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
||||||
StrCpy $PageReinstall_NEW_Field_3 "No desinstalar"
|
StrCpy $PageReinstall_NEW_Field_3 "No desinstalar"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ya está instalado"
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ya está instalado"
|
||||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Elija como quiere instalar ${APPLICATION_NAME}."
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Elija cómo quiere instalar ${APPLICATION_NAME}."
|
||||||
StrCpy $PageReinstall_OLD_Field_1 "Una nueva versión de ${APPLICATION_NAME} ya está instalada. No es recomendable instalar una versión anterior. Si realmente quiere instalar esta versión anterior, es mejor que desinstale la versión actual primero. Seleccione la operación que desea realizar y pulse Next para continuar."
|
StrCpy $PageReinstall_OLD_Field_1 "Una nueva versión de ${APPLICATION_NAME} ya está instalada. No es recomendable instalar una versión anterior. Si realmente quiere instalar esta versión anterior, es mejor que desinstale la versión actual primero. Seleccione la operación que desea realizar y pulse Next para continuar."
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ya está instalada.\nSeleccione la operación que desea realizar y pulse Next para continuar."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ya está instalada.\nSeleccione la operación que desea realizar y pulse Next para continuar."
|
||||||
StrCpy $PageReinstall_SAME_Field_2 "Añadir/Reinstalar componentes"
|
StrCpy $PageReinstall_SAME_Field_2 "Añadir/Reinstalar componentes"
|
||||||
@@ -15,32 +15,32 @@ StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opcion de mantenimiento a realizar."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opcion de mantenimiento a realizar."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciales."
|
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciales."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Íconos de estado para el Explorador de Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integración para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando íconos de estado para el Explorador de Windows"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando la integración para Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso Directo al Programa Menú de Inicio"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo al programa Menú de Inicio"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Añadiendo accesos directos para ${APPLICATION_NAME} en el Menú de Inicio."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Añadiendo accesos directos para ${APPLICATION_NAME} en el Menú de Inicio."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo de Escritorio"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo de Escritorio"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando Accesos Directos de Escritorio"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando accesos directos de escritorio"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso Directo al Lanzador Rápido"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atajo de accceso rápido"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando un Acceso Directo al Lanzador Rápido"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando un Acceso Directo al Lanzador Rápido"
|
||||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esencial."
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esencial."
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso Directo de ${APPLICATION_NAME}"
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso Directo de ${APPLICATION_NAME}"
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo de Escritorio para ${APPLICATION_NAME}"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo de Escritorio para ${APPLICATION_NAME}"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Lanzador Rápido de Accesos Director para ${APPLICATION_NAME}."
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Lanzador Rápido de Accesos Director para ${APPLICATION_NAME}."
|
||||||
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remueva la carpeta de datos de ${APPLICATION_NAME} del computador."
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Elimine la carpeta de datos de ${APPLICATION_NAME} del computador."
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "¿Desea eliminar la carpeta de datos de ${APPLICATION_NAME}?"
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "¿Desea eliminar la carpeta de datos de ${APPLICATION_NAME}?"
|
||||||
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Deja sin marcar para mantener la carpeta de datos para uso posterior, o del marque para eliminar la carpeta de datos."
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Déjelo sin marcar para mantener la carpeta de datos para uso posterior o márquelo para eliminar la carpeta de datos."
|
||||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Si, Elimine esta carpeta de datos."
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Sí, elimine esta carpeta de datos."
|
||||||
StrCpy $UNINSTALLER_FILE_Detail "Escribiendo Desinstalador"
|
StrCpy $UNINSTALLER_FILE_Detail "Escribiendo desinstalador"
|
||||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Escribiendo Llaves en el Registro del Instalador"
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Escribiendo claves en el registro del instalador"
|
||||||
StrCpy $UNINSTALLER_FINISHED_Detail "Terminado"
|
StrCpy $UNINSTALLER_FINISHED_Detail "Terminado"
|
||||||
StrCpy $UNINSTALL_MESSAGEBOX "Parece que ${APPLICATION_NAME} no está instalado en el directorio '$INSTDIR'.$$ ¿Continuar de todos modos? (No Recomendado)"
|
StrCpy $UNINSTALL_MESSAGEBOX "Parece que ${APPLICATION_NAME} no está instalado en el directorio '$INSTDIR'.$$ ¿Continuar de todos modos? (No Recomendado)"
|
||||||
StrCpy $UNINSTALL_ABORT "Desinstalación cancelada por el usuario"
|
StrCpy $UNINSTALL_ABORT "Desinstalación cancelada por el usuario"
|
||||||
StrCpy $INIT_NO_QUICK_LAUNCH "Acceso Directo al Lanzador Rápido (N/A)"
|
StrCpy $INIT_NO_QUICK_LAUNCH "Atajo de inicio rápido (N/A)"
|
||||||
StrCpy $INIT_NO_DESKTOP "Atajo de escritorio (sobreescribe el existente)"
|
StrCpy $INIT_NO_DESKTOP "Atajo de escritorio (sobreescribe el existente)"
|
||||||
StrCpy $UAC_ERROR_ELEVATE "No se ha podido elevar, Error:"
|
StrCpy $UAC_ERROR_ELEVATE "No se ha podido elevar, error:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "El instalador requiere acceso administrativo, intente de nuevo"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "El instalador requiere acceso administrativo, inténtelo de nuevo"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "El instalador ya se encuentra en ejecución"
|
StrCpy $INIT_INSTALLER_RUNNING "El instalador ya se encuentra en ejecución"
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "El desinstalador requiere acceso administrativo, intente de nuevo"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "El desinstalador requiere acceso administrativo, inténtelo de nuevo"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "El desinstalador ya se encuentra en ejecución."
|
StrCpy $INIT_UNINSTALLER_RUNNING "El desinstalador ya se encuentra en ejecución."
|
||||||
StrCpy $SectionGroup_Shortcuts "Accesos Directos"
|
StrCpy $SectionGroup_Shortcuts "Accesos directos"
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ StrCpy $INIT_UNINSTALLER_RUNNING "El des-instalador ya esta corriendo"
|
|||||||
StrCpy $SectionGroup_Shortcuts "Accesos Directos"
|
StrCpy $SectionGroup_Shortcuts "Accesos Directos"
|
||||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
|
||||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing status icons for Windows Explorer"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
|
||||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
|
||||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ StrCpy $PageReinstall_SAME_Field_3 "Avinstallera ${APPLICATION_NAME}"
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstallera ${APPLICATION_NAME}"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstallera ${APPLICATION_NAME}"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Välj underhålls alternativ att utföra."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Välj underhålls alternativ att utföra."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "Installerar ${APPLICATION_NAME} väsentligheter."
|
StrCpy $SEC_APPLICATION_DETAILS "Installerar ${APPLICATION_NAME} väsentligheter."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Statusikoner för Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installerar statusikoner för Windows Explorer"
|
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start-meny program genväg"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start-meny program genväg"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lägger till genväg för ${APPLICATION_NAME} till Start-menyn."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lägger till genväg för ${APPLICATION_NAME} till Start-menyn."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrivbordsgenväg"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrivbordsgenväg"
|
||||||
@@ -41,6 +39,8 @@ StrCpy $INIT_NO_DESKTOP "Skrivbordsgenväg (skriver över nuvarande)"
|
|||||||
StrCpy $UAC_ERROR_ELEVATE "Kunde inte få förhöjda rättigheter, fel:"
|
StrCpy $UAC_ERROR_ELEVATE "Kunde inte få förhöjda rättigheter, fel:"
|
||||||
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Detta installationsprogram kräver adminstratörs rättigheter, försök igen"
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Detta installationsprogram kräver adminstratörs rättigheter, försök igen"
|
||||||
StrCpy $INIT_INSTALLER_RUNNING "Installationsprogrammet körs redan."
|
StrCpy $INIT_INSTALLER_RUNNING "Installationsprogrammet körs redan."
|
||||||
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Detta avinstallationsprogram kräver administratörs rättigheter, försök igen"
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Detta avinstallationsprogram kräver administratörsrättigheter, försök igen"
|
||||||
StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallationsprogrammet körs redan."
|
StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallationsprogrammet körs redan."
|
||||||
StrCpy $SectionGroup_Shortcuts "Genvägar"
|
StrCpy $SectionGroup_Shortcuts "Genvägar"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer"
|
||||||
|
|||||||
46
admin/win/nsi/l10n/Thai.nsh
Normal file
46
admin/win/nsi/l10n/Thai.nsh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Auto-generated - do not modify
|
||||||
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "แสดงบันทึกประจำรุ่น"
|
||||||
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "พบว่ากระบวนการ ${APPLICATION_EXECUTABLE} จะต้องหยุดทำงาน\nคุณต้องการติดตั้งเพื่อหยุดการทำงานเหล่านี้ของคุณ?"
|
||||||
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "ฆ่ากระบวนการทำงาน ${APPLICATION_EXECUTABLE}"
|
||||||
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "ไม่พบการฆ่ากระบวนการ!"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_1 "รุ่นเก่าของ ${APPLICATION_NAME} มีการติดตั้งในระบบของคุณ ขอแนะนำให้คุณถอนการติดตั้งรุ่นปัจจุบันออกก่อน เลือกการดำเนินการที่คุณต้องการที่จะดำเนินการและคลิกถัดไปเพื่อดำเนินการต่อ"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_2 "ถอนการติดตั้งก่อนการติดตั้ง"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_3 "อย่าถอนการติดตั้ง"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "ติดตั้งแล้ว"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "เลือกวิธีที่คุณต้องการติดตั้ง ${APPLICATION_NAME}"
|
||||||
|
StrCpy $PageReinstall_OLD_Field_1 "รุ่นใหม่ของ ${APPLICATION_NAME} ถูกติดตั้งแล้ว! เราไม่แนะนำให้คุณติดตั้งรุ่นเก่า ถ้าคุณอยากจะติดตั้งรุ่นเก่าก็สามารถสอนการติดตั้งได้"
|
||||||
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ได้ถูกติดตั้งแล้ว เลือกการดำเนินการที่คุณต้องการที่จะดำเนินการและคลิกถัดไปเพื่อดำเนินการต่อ"
|
||||||
|
StrCpy $PageReinstall_SAME_Field_2 "ส่วนประกอบ เพิ่ม/ติดตั้งใหม่ "
|
||||||
|
StrCpy $PageReinstall_SAME_Field_3 "ถอนการติดตั้ง ${APPLICATION_NAME}"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_TITLE "ถอนการติดตั้ง ${APPLICATION_NAME}"
|
||||||
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "เลือกตัวเลือกการบำรุงรักษาเพื่อดำเนินการ"
|
||||||
|
StrCpy $SEC_APPLICATION_DETAILS "กำลังติดตั้งข้อมูลที่เป็นเป็นของ ${APPLICATION_NAME}"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "บูรณาการสำหรับ Windows Explorer"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "บูรณาการกำลังติดตั้งสำหรับ Windows Explorer"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "โปรแกรมทางลัดเมนูเริ่มต้น"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "เพิ่มทางลัดสำหรับ ${APPLICATION_NAME} ที่เมนูเริ่มต้น"
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "ทางลัดพื้นโต๊ะ"
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "สร้างทางลัดบนเดสก์ทอป"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "ทางลัดเร่งด่วน"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "สร้างทางลัดเร่งด่วน"
|
||||||
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ที่จำเป็น"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "ทางลัด ${APPLICATION_NAME}"
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "ทางลัดบนเดสก์ทอปสำหรับ ${APPLICATION_NAME}"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "ทางลัดเร่งด่วนสำหรับ ${APPLICATION_NAME}"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "ลบ ${APPLICATION_NAME} ของโฟลเดอร์ข้อมูลจากคอมพิวเตอร์ของคุณ"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "คุณต้องการลบ ${APPLICATION_NAME} ของโฟลเดอร์ข้อมูล?"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "ปล่อยให้ตรวจสอบสำหรับใช้โฟลเดอร์ข้อมูลในภายหลังหรือตรวจสอบเพื่อลบโฟลเดอร์ข้อมูล"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "ใช่ลบโฟลเดอร์ข้อมูลนี้"
|
||||||
|
StrCpy $UNINSTALLER_FILE_Detail "กำลังถอนการติดตั้ง"
|
||||||
|
StrCpy $UNINSTALLER_REGISTRY_Detail "กำลังติดตั้งรหัสรีจิสทรี"
|
||||||
|
StrCpy $UNINSTALLER_FINISHED_Detail "เสร็จสิ้น"
|
||||||
|
StrCpy $UNINSTALL_MESSAGEBOX "มันจะไม่ปรากฏ ${APPLICATION_NAME} ที่มีการติดตั้งในไดเรกทอรี '$INSTDIR' ดำเนินการต่อไป (ไม่แนะนำ)?"
|
||||||
|
StrCpy $UNINSTALL_ABORT "ถอนการติดตั้งถูกยกเลิกโดยผู้ใช้"
|
||||||
|
StrCpy $INIT_NO_QUICK_LAUNCH "ทางลัดเร่งด่วน (N/A)"
|
||||||
|
StrCpy $INIT_NO_DESKTOP "ทางลัดเดสก์ทอป (จะเขียนทับหากมีอยู่แล้ว)"
|
||||||
|
StrCpy $UAC_ERROR_ELEVATE "ไม่สามารถที่จะยกระดับข้อผิดพลาด:"
|
||||||
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "การติดตั้งนี้จะต้องมีการเข้าถึงผู้ดูแลระบบ กรุณาลองอีกครั้ง"
|
||||||
|
StrCpy $INIT_INSTALLER_RUNNING "กำลังทำการติดตั้ง"
|
||||||
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "การถอนการติดตั้งนี้จะต้องมีการเข้าถึงส่วนผู้ดูแลระบบ กรุณาลองอีกครั้ง"
|
||||||
|
StrCpy $INIT_UNINSTALLER_RUNNING "กำลังทำการถอนการติดตั้ง"
|
||||||
|
StrCpy $SectionGroup_Shortcuts "ทางลัด"
|
||||||
@@ -15,8 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} uygulamas
|
|||||||
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} uygulamasını kaldır"
|
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} uygulamasını kaldır"
|
||||||
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Yapmak istediğiniz bakım işlemini seçin."
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Yapmak istediğiniz bakım işlemini seçin."
|
||||||
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} gereklilikleri yükleniyor."
|
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} gereklilikleri yükleniyor."
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Gezgini için durum simgeleri"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Gezgini için tümleştirme"
|
||||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Gezgini için durum simgeleri yükleniyor"
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Gezgini için Tümleştirme Yükleme"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Başlat Menüsü Program Kısayolu"
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Başlat Menüsü Program Kısayolu"
|
||||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "${APPLICATION_NAME} için Başlat Menüsü'ne kısayol ekleniyor."
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "${APPLICATION_NAME} için Başlat Menüsü'ne kısayol ekleniyor."
|
||||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Masaüstü Kısayolu"
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Masaüstü Kısayolu"
|
||||||
|
|||||||
46
admin/win/nsi/l10n/Ukrainian.nsh
Normal file
46
admin/win/nsi/l10n/Ukrainian.nsh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Auto-generated - do not modify
|
||||||
|
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Показати примітки до випуску"
|
||||||
|
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Знайдено процес(и) ${APPLICATION_EXECUTABLE}, які необхідно зупинити.$\nХочете щоб програма установки зробила це самостійно?"
|
||||||
|
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Завершення процесів ${APPLICATION_EXECUTABLE}."
|
||||||
|
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Не знайдено процеси, які необхідно зупинити!"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_1 "Знайдено застарілу версію програми ${APPLICATION_NAME}. Рекомендуємо її спочатку видалити. Оберіть подальшу дію та натисніть $\"Далі$\"."
|
||||||
|
StrCpy $PageReinstall_NEW_Field_2 "Видалити перед установкою"
|
||||||
|
StrCpy $PageReinstall_NEW_Field_3 "Не видаляти"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Установлено"
|
||||||
|
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Оберіть, як ви хочете установити ${APPLICATION_NAME}."
|
||||||
|
StrCpy $PageReinstall_OLD_Field_1 "Знайдено новішу версію ${APPLICATION_NAME}! Ми не рекомендуємо встановлювати стару версію. Якщо ви все ж бажаєте встановити цю версію, спочатку видаліть поточну версію. Оберіть подальшу дію та натисніть $\"Далі$\"."
|
||||||
|
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} вже встановлено.↩\nОберіть подальшу дію та натисніть $\"Далі$\"."
|
||||||
|
StrCpy $PageReinstall_SAME_Field_2 "Додати/Перевстановити компоненти"
|
||||||
|
StrCpy $PageReinstall_SAME_Field_3 "Видалити ${APPLICATION_NAME}"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_TITLE "Видалити ${APPLICATION_NAME}"
|
||||||
|
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Оберіть опцію обслуговування для виконання."
|
||||||
|
StrCpy $SEC_APPLICATION_DETAILS "Установка залежностей ${APPLICATION_NAME}."
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Інтеграція з провідником Windows"
|
||||||
|
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Встановлення інтеграції з провідником Windows"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Ярлик в меню Пуск"
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Створення ярлика ${APPLICATION_NAME} в меню Пуск."
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Ярлик на Робочому столі"
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Створення ярлика на Робочому столі"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Ярлик на панелі швидкого запуску"
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Створення ярлика на панелі швидкого запуску"
|
||||||
|
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} залежності."
|
||||||
|
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} ярлик."
|
||||||
|
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Ярлик ${APPLICATION_NAME} на Робочому столі."
|
||||||
|
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Ярлик ${APPLICATION_NAME} на панелі швидкого запуску."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Видалити теку даних ${APPLICATION_NAME} з вашого комп'ютера."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Ви дійсно бажаєте видалити теку даних ${APPLICATION_NAME}?"
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Залиште неактивним, для збереження теки з даними програми, для подальшого використання."
|
||||||
|
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Так, видалити теку даних."
|
||||||
|
StrCpy $UNINSTALLER_FILE_Detail "Збереження Програми видалення"
|
||||||
|
StrCpy $UNINSTALLER_REGISTRY_Detail "Запис ключів реєстру"
|
||||||
|
StrCpy $UNINSTALLER_FINISHED_Detail "Завершено"
|
||||||
|
StrCpy $UNINSTALL_MESSAGEBOX "Скоріш за все ${APPLICATION_NAME} вже встановлено в теку '$INSTDIR'.$↩$\nВсе одно продовжити (не рекомендується)?"
|
||||||
|
StrCpy $UNINSTALL_ABORT "Видалення перервано користувачем."
|
||||||
|
StrCpy $INIT_NO_QUICK_LAUNCH "Ярлик в області швидкого запуску (недоступний)"
|
||||||
|
StrCpy $INIT_NO_DESKTOP "Ярлик на Робочому столі (перезаписати існуючий)"
|
||||||
|
StrCpy $UAC_ERROR_ELEVATE "Неможливо підняти, помилка:"
|
||||||
|
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Для установки потрібні права адміністратора, спробуйте ще раз"
|
||||||
|
StrCpy $INIT_INSTALLER_RUNNING "Установка вже запущена."
|
||||||
|
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Для видалення потрібні права адміністратора, спробуйте ще раз"
|
||||||
|
StrCpy $INIT_UNINSTALLER_RUNNING "Програма видалення вже запущено."
|
||||||
|
StrCpy $SectionGroup_Shortcuts "Ярлики"
|
||||||
@@ -67,7 +67,7 @@ localeToName = {
|
|||||||
"mg" : "Malagasy",
|
"mg" : "Malagasy",
|
||||||
"ms" : "Malay",
|
"ms" : "Malay",
|
||||||
"mn" : "Mongolian",
|
"mn" : "Mongolian",
|
||||||
"nb" : "Norwegian",
|
"nb_NO" : "Norwegian",
|
||||||
"nn" : "NorwegianNynorsk",
|
"nn" : "NorwegianNynorsk",
|
||||||
"ps" : "Pashto",
|
"ps" : "Pashto",
|
||||||
"pl" : "Polish",
|
"pl" : "Polish",
|
||||||
|
|||||||
@@ -44,5 +44,6 @@ iconv -t CP1252 -o Finnish.nsh Finnish.nsh
|
|||||||
iconv -t CP932 -o Japanese.nsh Japanese.nsh
|
iconv -t CP932 -o Japanese.nsh Japanese.nsh
|
||||||
iconv -t CP1250 -o Slovak.nsh Slovak.nsh
|
iconv -t CP1250 -o Slovak.nsh Slovak.nsh
|
||||||
iconv -t CP1254 -o Turkish.nsh Turkish.nsh
|
iconv -t CP1254 -o Turkish.nsh Turkish.nsh
|
||||||
|
iconv -t CP1252 -o Norwegian.nsh Norwegian.nsh
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,14 +6,17 @@
|
|||||||
!insertmacro MUI_LANGUAGE "SpanishInternational"
|
!insertmacro MUI_LANGUAGE "SpanishInternational"
|
||||||
!insertmacro MUI_LANGUAGE "Dutch"
|
!insertmacro MUI_LANGUAGE "Dutch"
|
||||||
!insertmacro MUI_LANGUAGE "Hungarian"
|
!insertmacro MUI_LANGUAGE "Hungarian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Ukrainian"
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
!insertmacro MUI_LANGUAGE "French"
|
||||||
!insertmacro MUI_LANGUAGE "Catalan"
|
!insertmacro MUI_LANGUAGE "Norwegian"
|
||||||
!insertmacro MUI_LANGUAGE "Russian"
|
!insertmacro MUI_LANGUAGE "Russian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Thai"
|
||||||
!insertmacro MUI_LANGUAGE "Finnish"
|
!insertmacro MUI_LANGUAGE "Finnish"
|
||||||
!insertmacro MUI_LANGUAGE "Basque"
|
!insertmacro MUI_LANGUAGE "Basque"
|
||||||
!insertmacro MUI_LANGUAGE "Greek"
|
!insertmacro MUI_LANGUAGE "Greek"
|
||||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
||||||
|
!insertmacro MUI_LANGUAGE "Catalan"
|
||||||
!insertmacro MUI_LANGUAGE "Italian"
|
!insertmacro MUI_LANGUAGE "Italian"
|
||||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
!insertmacro MUI_LANGUAGE "German"
|
||||||
|
|||||||
@@ -86,12 +86,12 @@ msgid "Installing ${APPLICATION_NAME} essentials."
|
|||||||
msgstr "Installing ${APPLICATION_NAME} essentials."
|
msgstr "Installing ${APPLICATION_NAME} essentials."
|
||||||
|
|
||||||
#. OPTION_SECTION_SC_SHELL_EXT_SECTION
|
#. OPTION_SECTION_SC_SHELL_EXT_SECTION
|
||||||
msgid "Status icons for Windows Explorer"
|
msgid "Integration for Windows Explorer"
|
||||||
msgstr "Status icons for Windows Explorer"
|
msgstr "Integration for Windows Explorer"
|
||||||
|
|
||||||
#. OPTION_SECTION_SC_SHELL_EXT_DetailPrint
|
#. OPTION_SECTION_SC_SHELL_EXT_DetailPrint
|
||||||
msgid "Installing status icons for Windows Explorer"
|
msgid "Installing Integration for Windows Explorer"
|
||||||
msgstr "Installing status icons for Windows Explorer"
|
msgstr "Installing Integration for Windows Explorer"
|
||||||
|
|
||||||
#. OPTION_SECTION_SC_START_MENU_SECTION
|
#. OPTION_SECTION_SC_START_MENU_SECTION
|
||||||
msgid "Start Menu Program Shortcut"
|
msgid "Start Menu Program Shortcut"
|
||||||
|
|||||||
Binary file not shown.
@@ -1,35 +0,0 @@
|
|||||||
{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}
|
|
||||||
{\f172\froman\fcharset238\fprq2 Times New Roman CE;}{\f173\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f175\froman\fcharset161\fprq2 Times New Roman Greek;}{\f176\froman\fcharset162\fprq2 Times New Roman Tur;}
|
|
||||||
{\f177\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f178\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f179\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f180\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
|
||||||
{\f562\fswiss\fcharset238\fprq2 Verdana CE;}{\f563\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f565\fswiss\fcharset161\fprq2 Verdana Greek;}{\f566\fswiss\fcharset162\fprq2 Verdana Tur;}{\f569\fswiss\fcharset186\fprq2 Verdana Baltic;}
|
|
||||||
{\f570\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
|
|
||||||
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
|
|
||||||
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
|
|
||||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
|
||||||
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\*\cs15 \additive \ul\cf2 \sbasedon10 \styrsid7485074 Hyperlink;}}
|
|
||||||
{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid6712196\rsid7485074\rsid11352300\rsid15940516}{\*\generator Microsoft Word 11.0.5604;}{\info{\title Processes v1}{\author Hardwired}{\operator Hardwired}{\creatim\yr2004\mo12\dy12\hr23\min42}
|
|
||||||
{\revtim\yr2004\mo12\dy12\hr23\min51}{\version2}{\edmins9}{\nofpages1}{\nofwords80}{\nofchars458}{\nofcharsws537}{\vern24689}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180
|
|
||||||
\dgvspace180\dghorigin1800\dgvorigin1440\dghshow1\dgvshow1
|
|
||||||
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
|
|
||||||
\asianbrkrule\rsidroot7485074\newtblstyruls\nogrowautofit \fet0\sectd \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}
|
|
||||||
{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}
|
|
||||||
{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain
|
|
||||||
\qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7485074 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f39\insrsid7485074\charrsid7485074 Processes v1.0}{\f39\insrsid7485074\charrsid7485074 .0.1
|
|
||||||
\par }{\f39\fs20\insrsid7485074
|
|
||||||
\par }\pard \qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15940516 {\f39\fs20\insrsid15940516 This software binaries and source-code are free for any kind of use, including commercial use. }{
|
|
||||||
\f39\fs20\insrsid7485074\charrsid7485074 There is no restriction and no guaranty for using}{\f39\fs20\insrsid7485074\charrsid7485074 t}{\f39\fs20\insrsid7485074\charrsid7485074 his software}{\f39\fs20\insrsid7485074\charrsid7485074 and/or it
|
|
||||||
s source-code. }{\f39\fs20\insrsid15940516
|
|
||||||
\par I}{\f39\fs20\insrsid7485074\charrsid7485074 f you use the plug}{\f39\fs20\insrsid7485074\charrsid7485074 -}{\f39\fs20\insrsid7485074\charrsid7485074 in }{\f39\fs20\insrsid7485074\charrsid7485074 and/}{\f39\fs20\insrsid7485074\charrsid7485074 or it}{
|
|
||||||
\f39\fs20\insrsid7485074\charrsid7485074 s}{\f39\fs20\insrsid7485074\charrsid7485074 source-code, I would }{\f39\fs20\insrsid7485074\charrsid7485074 appreciate }{\f39\fs20\insrsid7485074\charrsid7485074 if my name is mentioned.}{
|
|
||||||
\f39\fs20\insrsid7485074\charrsid7485074
|
|
||||||
\par }\pard \qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7485074 {\f39\fs20\insrsid7485074\charrsid7485074
|
|
||||||
\par }{\b\f39\fs20\insrsid7485074\charrsid7485074 Andrei Ciubotaru [Hardwired]
|
|
||||||
\par }{\f39\fs20\insrsid7485074\charrsid7485074 Lead Developer ICode&Ideas SRL (}{\field\flddirty{\*\fldinst {\f39\fs20\insrsid7485074\charrsid7485074 HYPERLINK "http://www.icode.ro/" }{\f39\fs20\insrsid7485074\charrsid7485074 {\*\datafield
|
|
||||||
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001500000068007400740070003a002f002f007700770077002e00690063006f00640065002e0072006f002f000000e0c9ea79f9bace118c8200aa004ba90b2a00000068007400740070003a002f002f007700770077002e00690063006f00640065002e007200
|
|
||||||
6f002f000000}}}{\fldrslt {\cs15\f39\fs20\ul\cf2\insrsid7485074\charrsid7485074 http://www.icode.ro/}}}{\f39\fs20\insrsid7485074\charrsid7485074 )
|
|
||||||
\par }{\field{\*\fldinst {\f39\fs20\insrsid7485074 HYPERLINK "hardwiredteks@gmail.com" }{\f39\fs20\insrsid15940516\charrsid7485074 {\*\datafield
|
|
||||||
00d0c9ea79f9bace118c8200aa004ba90b02000000010000000303000000000000c00000000000004600001800000068617264776972656474656b7340676d61696c2e636f6d00ffffadde000000000000000000000000000000000000000000000000}}}{\fldrslt {
|
|
||||||
\cs15\f39\fs20\ul\cf2\insrsid7485074\charrsid7485074 hardwiredteks@gmail.com}}}{\f39\fs20\insrsid7485074\charrsid7485074 , }{\field{\*\fldinst {\f39\fs20\insrsid7485074 HYPERLINK "hardwired@icode.ro" }{\f39\fs20\insrsid15940516\charrsid7485074
|
|
||||||
{\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b02000000010000000303000000000000c0000000000000460000130000006861726477697265644069636f64652e726f00ffffadde000000000000000000000000000000000000000000000000}}}{\fldrslt {
|
|
||||||
\cs15\f39\fs20\ul\cf2\insrsid7485074\charrsid7485074 hardwired@icode.ro}}}{\f39\fs20\insrsid7485074\charrsid7485074
|
|
||||||
\par }}
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
Processes (Processes.dll)
|
|
||||||
Version: 1.0.1.0
|
|
||||||
Release: 24.february.2005
|
|
||||||
Description: Nullsoft Installer (NSIS) plug-in for managing?!
|
|
||||||
Windows processes.
|
|
||||||
|
|
||||||
Copyright: © 2004-2005 Hardwired. No rights reserved.
|
|
||||||
There is no restriction and no guaranty for using
|
|
||||||
this software.
|
|
||||||
|
|
||||||
Author: Andrei Ciubotaru [Hardwired]
|
|
||||||
Lead Developer ICode&Ideas SRL (http://www.icode.ro/)
|
|
||||||
hardwiredteks@gmail.com, hardwired@icode.ro
|
|
||||||
|
|
||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
INTRODUCTION
|
|
||||||
|
|
||||||
The Need For Plug-in - I need it for the one of my installers.
|
|
||||||
|
|
||||||
Briefly: Use it when you need to find\kill a process when
|
|
||||||
installing\uninstalling some application. Also, use it when you
|
|
||||||
need to test the presence of a device driver.
|
|
||||||
|
|
||||||
|
|
||||||
SUPPORT
|
|
||||||
|
|
||||||
Supported platforms are: WinNT,Win2K,WinXP and Win2003 Server.
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
|
|
||||||
Processes::FindProcess <process_name> ;without ".exe"
|
|
||||||
|
|
||||||
Searches the currently running processes for the given
|
|
||||||
process name.
|
|
||||||
|
|
||||||
return: 1 - the process was found
|
|
||||||
0 - the process was not found
|
|
||||||
|
|
||||||
Processes::KillProcess <process_name> ; without ".exe"
|
|
||||||
|
|
||||||
Searches the currently running processes for the given
|
|
||||||
process name. If the process is found then the it gets
|
|
||||||
killed.
|
|
||||||
|
|
||||||
return: 1 - the process was found and killed
|
|
||||||
0 - the process was not found or the process
|
|
||||||
cannot be killed (insuficient rights)
|
|
||||||
|
|
||||||
Processes::FindDevice <device_base_name>
|
|
||||||
|
|
||||||
Searches the installed devices drivers for the given
|
|
||||||
device base name.
|
|
||||||
(important: I said BASE NAME not FILENAME)
|
|
||||||
|
|
||||||
return: 1 - the device driver was found
|
|
||||||
0 - the device driver was not found
|
|
||||||
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
|
|
||||||
First of all, does not matter where you use it. Ofcourse, the
|
|
||||||
routines must be called inside of a Section/Function scope.
|
|
||||||
|
|
||||||
Processes::FindProcess "process_name"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" make_my_day noooooo
|
|
||||||
|
|
||||||
make_my_day:
|
|
||||||
...
|
|
||||||
|
|
||||||
noooooo:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
Processes::KillProcess "process_name"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" dead_meat why_wont_you_die
|
|
||||||
|
|
||||||
dead_meat:
|
|
||||||
...
|
|
||||||
|
|
||||||
why_wont_you_die:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
Processes::FindDevice "device_base_name"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" blabla more_blabla
|
|
||||||
|
|
||||||
blabla:
|
|
||||||
...
|
|
||||||
|
|
||||||
more_blabla:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
THANKS
|
|
||||||
|
|
||||||
Sunil Kamath for inspiring me. I wanted to use its FindProcDLL
|
|
||||||
but my requirements made it imposible.
|
|
||||||
|
|
||||||
Nullsoft for creating this very powerfull installer. One big,
|
|
||||||
free and full-featured (hmmm... and guiless for the moment) mean
|
|
||||||
install machine!:)
|
|
||||||
|
|
||||||
ME for being such a great coder...
|
|
||||||
... HAHAHAHAHAHAHA!
|
|
||||||
|
|
||||||
ONE MORE THING
|
|
||||||
|
|
||||||
If you use the plugin or it's source-code, I would apreciate
|
|
||||||
if my name is mentioned.
|
|
||||||
|
|
||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
// stdafx.cpp : source file that includes just the standard includes
|
|
||||||
// KillProcDLL.pch will be the pre-compiled header
|
|
||||||
// stdafx.obj will contain the pre-compiled type information
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
|
|
||||||
// TODO: reference any additional headers you need in STDAFX.H
|
|
||||||
// and not in this file
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
// stdafx.h : include file for standard system include files,
|
|
||||||
// or project specific include files that are used frequently, but
|
|
||||||
// are changed infrequently
|
|
||||||
//
|
|
||||||
|
|
||||||
#if !defined(AFX_STDAFX_H__780690DC_E128_403D_BC07_780D1B2CC101__INCLUDED_)
|
|
||||||
#define AFX_STDAFX_H__780690DC_E128_403D_BC07_780D1B2CC101__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#include <string> // String management...
|
|
||||||
|
|
||||||
//From exam28.cpp
|
|
||||||
#include <tlhelp32.h>
|
|
||||||
//#include <iostream.h>
|
|
||||||
|
|
||||||
#ifdef BORLANDC
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//To make it a NSIS Plug-In
|
|
||||||
#include "exdll.h"
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_STDAFX_H__780690DC_E128_403D_BC07_780D1B2CC101__INCLUDED_)
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
#include <windows.h>
|
|
||||||
#include "exdll.h"
|
|
||||||
|
|
||||||
HINSTANCE g_hInstance;
|
|
||||||
|
|
||||||
HWND g_hwndParent;
|
|
||||||
|
|
||||||
void __declspec(dllexport) myFunction(HWND hwndParent, int string_size,
|
|
||||||
char *variables, stack_t **stacktop)
|
|
||||||
{
|
|
||||||
g_hwndParent=hwndParent;
|
|
||||||
|
|
||||||
EXDLL_INIT();
|
|
||||||
|
|
||||||
|
|
||||||
// note if you want parameters from the stack, pop them off in order.
|
|
||||||
// i.e. if you are called via exdll::myFunction file.dat poop.dat
|
|
||||||
// calling popstring() the first time would give you file.dat,
|
|
||||||
// and the second time would give you poop.dat.
|
|
||||||
// you should empty the stack of your parameters, and ONLY your
|
|
||||||
// parameters.
|
|
||||||
|
|
||||||
// do your stuff here
|
|
||||||
{
|
|
||||||
char buf[1024];
|
|
||||||
wsprintf(buf,"$0=%s\n",getuservariable(INST_0));
|
|
||||||
MessageBox(g_hwndParent,buf,0,MB_OK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
|
||||||
{
|
|
||||||
g_hInstance=hInst;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
#ifndef _EXDLL_H_
|
|
||||||
#define _EXDLL_H_
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// only include this file from one place in your DLL.
|
|
||||||
// (it is all static, if you use it in two places it will fail)
|
|
||||||
//
|
|
||||||
#define EXDLL_INIT() { \
|
|
||||||
g_stringsize = string_size; \
|
|
||||||
g_stacktop = stacktop; \
|
|
||||||
g_variables = variables; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// For page showing plug-ins
|
|
||||||
//
|
|
||||||
#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8)
|
|
||||||
#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd)
|
|
||||||
#define NOTIFY_BYE_BYE 'x'
|
|
||||||
|
|
||||||
typedef struct _stack_t
|
|
||||||
{
|
|
||||||
struct _stack_t *next;
|
|
||||||
char text[1]; // this should be the length of string_size
|
|
||||||
} stack_t;
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned int g_stringsize;
|
|
||||||
static stack_t **g_stacktop;
|
|
||||||
static char *g_variables;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
INST_0, // $0
|
|
||||||
INST_1, // $1
|
|
||||||
INST_2, // $2
|
|
||||||
INST_3, // $3
|
|
||||||
INST_4, // $4
|
|
||||||
INST_5, // $5
|
|
||||||
INST_6, // $6
|
|
||||||
INST_7, // $7
|
|
||||||
INST_8, // $8
|
|
||||||
INST_9, // $9
|
|
||||||
INST_R0, // $R0
|
|
||||||
INST_R1, // $R1
|
|
||||||
INST_R2, // $R2
|
|
||||||
INST_R3, // $R3
|
|
||||||
INST_R4, // $R4
|
|
||||||
INST_R5, // $R5
|
|
||||||
INST_R6, // $R6
|
|
||||||
INST_R7, // $R7
|
|
||||||
INST_R8, // $R8
|
|
||||||
INST_R9, // $R9
|
|
||||||
INST_CMDLINE, // $CMDLINE
|
|
||||||
INST_INSTDIR, // $INSTDIR
|
|
||||||
INST_OUTDIR, // $OUTDIR
|
|
||||||
INST_EXEDIR, // $EXEDIR
|
|
||||||
INST_LANG, // $LANGUAGE
|
|
||||||
__INST_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// utility functions (not required but often useful)
|
|
||||||
//
|
|
||||||
static int popstring( char *str )
|
|
||||||
{
|
|
||||||
stack_t *th;
|
|
||||||
|
|
||||||
|
|
||||||
if( !g_stacktop ||
|
|
||||||
!*g_stacktop )
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
th = (*g_stacktop);
|
|
||||||
lstrcpy( str, th->text );
|
|
||||||
*g_stacktop = th->next;
|
|
||||||
GlobalFree( (HGLOBAL)th );
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pushstring( char *str )
|
|
||||||
{
|
|
||||||
stack_t *th;
|
|
||||||
|
|
||||||
|
|
||||||
if( !g_stacktop )
|
|
||||||
return;
|
|
||||||
|
|
||||||
th = (stack_t*)GlobalAlloc( GPTR, sizeof(stack_t) + g_stringsize );
|
|
||||||
lstrcpyn( th->text, str, g_stringsize );
|
|
||||||
th->next = *g_stacktop;
|
|
||||||
*g_stacktop = th;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static char *getuservariable( int varnum )
|
|
||||||
{
|
|
||||||
if( varnum < 0 ||
|
|
||||||
varnum >= __INST_LAST )
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return (g_variables + varnum*g_stringsize);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void setuservariable( int varnum, char *var )
|
|
||||||
{
|
|
||||||
if( var != NULL &&
|
|
||||||
varnum >= 0 &&
|
|
||||||
varnum < __INST_LAST )
|
|
||||||
lstrcpy( g_variables + varnum*g_stringsize, var );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif//_EXDLL_H_
|
|
||||||
@@ -1,411 +0,0 @@
|
|||||||
#include "stdafx.h"
|
|
||||||
#include "processes.h"
|
|
||||||
#include "string.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// global variables
|
|
||||||
lpfEnumProcesses EnumProcesses;
|
|
||||||
lpfEnumProcessModules EnumProcessModules;
|
|
||||||
lpfGetModuleBaseName GetModuleBaseName;
|
|
||||||
lpfEnumDeviceDrivers EnumDeviceDrivers;
|
|
||||||
lpfGetDeviceDriverBaseName GetDeviceDriverBaseName;
|
|
||||||
|
|
||||||
HINSTANCE g_hInstance;
|
|
||||||
HWND g_hwndParent;
|
|
||||||
HINSTANCE g_hInstLib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// main DLL entry
|
|
||||||
BOOL WINAPI _DllMainCRTStartup( HANDLE hInst,
|
|
||||||
ULONG ul_reason_for_call,
|
|
||||||
LPVOID lpReserved )
|
|
||||||
{
|
|
||||||
g_hInstance = (struct HINSTANCE__ *)hInst;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// loads the psapi routines
|
|
||||||
bool LoadPSAPIRoutines( void )
|
|
||||||
{
|
|
||||||
if( NULL == (g_hInstLib = LoadLibraryA( "PSAPI.DLL" )) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
EnumProcesses = (lpfEnumProcesses) GetProcAddress( g_hInstLib, "EnumProcesses" );
|
|
||||||
EnumProcessModules = (lpfEnumProcessModules) GetProcAddress( g_hInstLib, "EnumProcessModules" );
|
|
||||||
GetModuleBaseName = (lpfGetModuleBaseName) GetProcAddress( g_hInstLib, "GetModuleBaseNameA" );
|
|
||||||
EnumDeviceDrivers = (lpfEnumDeviceDrivers) GetProcAddress( g_hInstLib, "EnumDeviceDrivers" );
|
|
||||||
GetDeviceDriverBaseName = (lpfGetDeviceDriverBaseName) GetProcAddress( g_hInstLib, "GetDeviceDriverBaseNameA" );
|
|
||||||
|
|
||||||
if( ( NULL == EnumProcesses ) ||
|
|
||||||
( NULL == EnumProcessModules ) ||
|
|
||||||
( NULL == EnumDeviceDrivers ) ||
|
|
||||||
( NULL == GetModuleBaseName ) ||
|
|
||||||
( NULL == GetDeviceDriverBaseName ) )
|
|
||||||
{
|
|
||||||
FreeLibrary( g_hInstLib );
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// free the psapi routines
|
|
||||||
bool FreePSAPIRoutines( void )
|
|
||||||
{
|
|
||||||
EnumProcesses = NULL;
|
|
||||||
EnumProcessModules = NULL;
|
|
||||||
GetModuleBaseName = NULL;
|
|
||||||
EnumDeviceDrivers = NULL;
|
|
||||||
|
|
||||||
if( FALSE == FreeLibrary( g_hInstLib ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// find a process by name
|
|
||||||
// return value: true - process was found
|
|
||||||
// false - process not found
|
|
||||||
bool FindProc( char *szProcess )
|
|
||||||
{
|
|
||||||
char szProcessName[ 1024 ];
|
|
||||||
char szCurrentProcessName[ 1024 ];
|
|
||||||
DWORD dPID[ 1024 ];
|
|
||||||
DWORD dPIDSize( 1024 );
|
|
||||||
DWORD dSize( 1024 );
|
|
||||||
HANDLE hProcess;
|
|
||||||
HMODULE phModule[ 1024 ];
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// make the name lower case
|
|
||||||
//
|
|
||||||
memset( szProcessName, 0, 1024*sizeof(char) );
|
|
||||||
sprintf( szProcessName, "%s", szProcess );
|
|
||||||
strlwr( szProcessName );
|
|
||||||
|
|
||||||
//
|
|
||||||
// load PSAPI routines
|
|
||||||
//
|
|
||||||
if( false == LoadPSAPIRoutines() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//
|
|
||||||
// enumerate processes names
|
|
||||||
//
|
|
||||||
if( FALSE == EnumProcesses( dPID, dSize, &dPIDSize ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// walk trough and compare see if the process is running
|
|
||||||
//
|
|
||||||
for( int k( dPIDSize / sizeof( DWORD ) ); k >= 0; k-- )
|
|
||||||
{
|
|
||||||
memset( szCurrentProcessName, 0, 1024*sizeof(char) );
|
|
||||||
|
|
||||||
if( NULL != ( hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dPID[ k ] ) ) )
|
|
||||||
{
|
|
||||||
if( TRUE == EnumProcessModules( hProcess, phModule, sizeof(HMODULE)*1024, &dPIDSize ) )
|
|
||||||
if( GetModuleBaseName( hProcess, phModule[ 0 ], szCurrentProcessName, 1024 ) > 0 )
|
|
||||||
{
|
|
||||||
strlwr( szCurrentProcessName );
|
|
||||||
|
|
||||||
if( NULL != strstr( szCurrentProcessName, szProcessName ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
CloseHandle( hProcess );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle( hProcess );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// free PSAPI routines
|
|
||||||
//
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// kills a process by name
|
|
||||||
// return value: true - process was found
|
|
||||||
// false - process not found
|
|
||||||
bool KillProc( char *szProcess )
|
|
||||||
{
|
|
||||||
char szProcessName[ 1024 ];
|
|
||||||
char szCurrentProcessName[ 1024 ];
|
|
||||||
DWORD dPID[ 1024 ];
|
|
||||||
DWORD dPIDSize( 1024 );
|
|
||||||
DWORD dSize( 1024 );
|
|
||||||
HANDLE hProcess;
|
|
||||||
HMODULE phModule[ 1024 ];
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// make the name lower case
|
|
||||||
//
|
|
||||||
memset( szProcessName, 0, 1024*sizeof(char) );
|
|
||||||
sprintf( szProcessName, "%s", szProcess );
|
|
||||||
strlwr( szProcessName );
|
|
||||||
|
|
||||||
//
|
|
||||||
// load PSAPI routines
|
|
||||||
//
|
|
||||||
if( false == LoadPSAPIRoutines() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//
|
|
||||||
// enumerate processes names
|
|
||||||
//
|
|
||||||
if( FALSE == EnumProcesses( dPID, dSize, &dPIDSize ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// walk trough and compare see if the process is running
|
|
||||||
//
|
|
||||||
for( int k( dPIDSize / sizeof( DWORD ) ); k >= 0; k-- )
|
|
||||||
{
|
|
||||||
memset( szCurrentProcessName, 0, 1024*sizeof(char) );
|
|
||||||
|
|
||||||
if( NULL != ( hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dPID[ k ] ) ) )
|
|
||||||
{
|
|
||||||
if( TRUE == EnumProcessModules( hProcess, phModule, sizeof(HMODULE)*1024, &dPIDSize ) )
|
|
||||||
if( GetModuleBaseName( hProcess, phModule[ 0 ], szCurrentProcessName, 1024 ) > 0 )
|
|
||||||
{
|
|
||||||
strlwr( szCurrentProcessName );
|
|
||||||
|
|
||||||
if( NULL != strstr( szCurrentProcessName, szProcessName ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
//
|
|
||||||
// kill process
|
|
||||||
//
|
|
||||||
if( false == TerminateProcess( hProcess, 0 ) )
|
|
||||||
{
|
|
||||||
CloseHandle( hProcess );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// refresh systray
|
|
||||||
//
|
|
||||||
UpdateWindow( FindWindow( NULL, "Shell_TrayWnd" ) );
|
|
||||||
|
|
||||||
//
|
|
||||||
// refresh desktop window
|
|
||||||
//
|
|
||||||
UpdateWindow( GetDesktopWindow() );
|
|
||||||
|
|
||||||
CloseHandle( hProcess );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle( hProcess );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// free PSAPI routines
|
|
||||||
//
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
bool FindDev( char *szDriverName )
|
|
||||||
{
|
|
||||||
char szDeviceName[ 1024 ];
|
|
||||||
char szCurrentDeviceName[ 1024 ];
|
|
||||||
LPVOID lpDevices[ 1024 ];
|
|
||||||
DWORD dDevicesSize( 1024 );
|
|
||||||
DWORD dSize( 1024 );
|
|
||||||
TCHAR tszCurrentDeviceName[ 1024 ];
|
|
||||||
DWORD dNameSize( 1024 );
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// make the name lower case
|
|
||||||
//
|
|
||||||
memset( szDeviceName, 0, 1024*sizeof(char) );
|
|
||||||
sprintf( szDeviceName, "%s", strlwr( szDriverName ) );
|
|
||||||
|
|
||||||
//
|
|
||||||
// load PSAPI routines
|
|
||||||
//
|
|
||||||
if( false == LoadPSAPIRoutines() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//
|
|
||||||
// enumerate devices
|
|
||||||
//
|
|
||||||
if( FALSE == EnumDeviceDrivers( lpDevices, dSize, &dDevicesSize ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// walk trough and compare see if the device driver exists
|
|
||||||
//
|
|
||||||
for( int k( dDevicesSize / sizeof( LPVOID ) ); k >= 0; k-- )
|
|
||||||
{
|
|
||||||
memset( szCurrentDeviceName, 0, 1024*sizeof(char) );
|
|
||||||
memset( tszCurrentDeviceName, 0, 1024*sizeof(TCHAR) );
|
|
||||||
|
|
||||||
if( 0 != GetDeviceDriverBaseName( lpDevices[ k ], tszCurrentDeviceName, dNameSize ) )
|
|
||||||
{
|
|
||||||
sprintf( szCurrentDeviceName, "%S", tszCurrentDeviceName );
|
|
||||||
|
|
||||||
if( 0 == strcmp( strlwr( szCurrentDeviceName ), szDeviceName ) )
|
|
||||||
{
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// free PSAPI routines
|
|
||||||
//
|
|
||||||
FreePSAPIRoutines();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
extern "C" __declspec(dllexport) void FindProcess( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop )
|
|
||||||
{
|
|
||||||
char szParameter[ 1024 ];
|
|
||||||
|
|
||||||
|
|
||||||
g_hwndParent = hwndParent;
|
|
||||||
|
|
||||||
EXDLL_INIT();
|
|
||||||
{
|
|
||||||
popstring( szParameter );
|
|
||||||
|
|
||||||
if( true == FindProc( szParameter ) )
|
|
||||||
wsprintf( szParameter, "1" );
|
|
||||||
else
|
|
||||||
wsprintf( szParameter, "0" );
|
|
||||||
|
|
||||||
setuservariable( INST_R0, szParameter );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
extern "C" __declspec(dllexport) void KillProcess( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop )
|
|
||||||
{
|
|
||||||
char szParameter[ 1024 ];
|
|
||||||
|
|
||||||
|
|
||||||
g_hwndParent = hwndParent;
|
|
||||||
|
|
||||||
EXDLL_INIT();
|
|
||||||
{
|
|
||||||
popstring( szParameter );
|
|
||||||
|
|
||||||
if( true == KillProc( szParameter ) )
|
|
||||||
wsprintf( szParameter, "1" );
|
|
||||||
else
|
|
||||||
wsprintf( szParameter, "0" );
|
|
||||||
|
|
||||||
setuservariable( INST_R0, szParameter );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
extern "C" __declspec(dllexport) void FindDevice( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop )
|
|
||||||
{
|
|
||||||
char szParameter[ 1024 ];
|
|
||||||
|
|
||||||
|
|
||||||
g_hwndParent = hwndParent;
|
|
||||||
|
|
||||||
EXDLL_INIT();
|
|
||||||
{
|
|
||||||
popstring( szParameter );
|
|
||||||
|
|
||||||
if( true == FindDev( szParameter ) )
|
|
||||||
wsprintf( szParameter, "1" );
|
|
||||||
else
|
|
||||||
wsprintf( szParameter, "0" );
|
|
||||||
|
|
||||||
setuservariable( INST_R0, szParameter );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// PSAPI function pointers
|
|
||||||
typedef BOOL (WINAPI *lpfEnumProcesses) ( DWORD *, DWORD, DWORD * );
|
|
||||||
typedef BOOL (WINAPI *lpfEnumProcessModules) ( HANDLE, HMODULE *, DWORD, LPDWORD );
|
|
||||||
typedef DWORD (WINAPI *lpfGetModuleBaseName) ( HANDLE, HMODULE, LPTSTR, DWORD );
|
|
||||||
typedef BOOL (WINAPI *lpfEnumDeviceDrivers) ( LPVOID *, DWORD, LPDWORD );
|
|
||||||
typedef BOOL (WINAPI *lpfGetDeviceDriverBaseName)( LPVOID, LPTSTR, DWORD );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// Internal use routines
|
|
||||||
bool LoadPSAPIRoutines( void );
|
|
||||||
bool FreePSAPIRoutines( void );
|
|
||||||
|
|
||||||
bool FindProc( char *szProcess );
|
|
||||||
bool KillProc( char *szProcess );
|
|
||||||
|
|
||||||
bool FindDev( char *szDriverName );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
|
||||||
// Exported routines
|
|
||||||
extern "C" __declspec(dllexport) void FindProcess( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop );
|
|
||||||
|
|
||||||
extern "C" __declspec(dllexport) void KillProcess( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop );
|
|
||||||
|
|
||||||
extern "C" __declspec(dllexport) void FindDevice( HWND hwndParent,
|
|
||||||
int string_size,
|
|
||||||
char *variables,
|
|
||||||
stack_t **stacktop );
|
|
||||||
Binary file not shown.
@@ -1,103 +0,0 @@
|
|||||||
// Microsoft Visual C++ generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#include "afxres.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"#include ""afxres.h""\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Version
|
|
||||||
//
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 1,0,0,1
|
|
||||||
PRODUCTVERSION 1,0,0,1
|
|
||||||
FILEFLAGSMASK 0x17L
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS 0x1L
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS 0x4L
|
|
||||||
FILETYPE 0x2L
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904b0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Comments", "NSIS Plug-in for Windows process management. Only WinNT, Win2K, WinXP and Win2003 Server supported."
|
|
||||||
VALUE "CompanyName", "Andrei Ciubotaru [Hardwired]"
|
|
||||||
VALUE "FileDescription", "Windows Processes Management"
|
|
||||||
VALUE "FileVersion", "1, 0, 0, 1"
|
|
||||||
VALUE "InternalName", "Processes"
|
|
||||||
VALUE "LegalCopyright", "Copyright (c) 2004 Hardwired. No rights reserved."
|
|
||||||
VALUE "OriginalFilename", "Processes.dll"
|
|
||||||
VALUE "ProductName", "Processes"
|
|
||||||
VALUE "ProductVersion", "1, 0, 0, 1"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "processes", "processes.vcproj", "{3438467F-A719-46DC-93E5-137A8B691727}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
Debug = Debug
|
|
||||||
Release = Release
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{3438467F-A719-46DC-93E5-137A8B691727}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{3438467F-A719-46DC-93E5-137A8B691727}.Debug.Build.0 = Debug|Win32
|
|
||||||
{3438467F-A719-46DC-93E5-137A8B691727}.Release.ActiveCfg = Release|Win32
|
|
||||||
{3438467F-A719-46DC-93E5-137A8B691727}.Release.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
Processes (Processes.dll)
|
|
||||||
Version: 1.0.0.1
|
|
||||||
Release: 12.december.2004
|
|
||||||
Description:Nullsoft Installer (NSIS) plug-in for managing?!
|
|
||||||
Windows processes.
|
|
||||||
|
|
||||||
Copyright: © 2004 Hardwired. No rights reserved.
|
|
||||||
There is no restriction and no guaranty for using
|
|
||||||
this software.
|
|
||||||
|
|
||||||
Author: Andrei Ciubotaru [Hardwired]
|
|
||||||
Lead Developer ICode&Ideas SRL (http://www.icode.ro)
|
|
||||||
hardwiredteks@gmail.com, hardwired@icode.ro
|
|
||||||
|
|
||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
INTRODUCTION
|
|
||||||
|
|
||||||
The Need For Plug-in - I need it for the one of my installers.
|
|
||||||
|
|
||||||
Briefly: Use it when you need to find\kill a process when
|
|
||||||
installing\uninstalling some application. Also, use it when you
|
|
||||||
need to test the presence of a device driver.
|
|
||||||
|
|
||||||
|
|
||||||
SUPPORT
|
|
||||||
|
|
||||||
Supported platforms are: WinNT,Win2K,WinXP and Win2003 Server.
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
|
|
||||||
Processes::FindProcess <process_name.exe>
|
|
||||||
|
|
||||||
Searches the currently running processes for the given
|
|
||||||
process name.
|
|
||||||
|
|
||||||
return: 1 - the process was found
|
|
||||||
0 - the process was not found
|
|
||||||
|
|
||||||
Processes::KillProcess <process_name.exe>
|
|
||||||
|
|
||||||
Searches the currently running processes for the given
|
|
||||||
process name. If the process is found then the it gets
|
|
||||||
killed.
|
|
||||||
|
|
||||||
return: 1 - the process was found and killed
|
|
||||||
0 - the process was not found or the process
|
|
||||||
cannot be killed (insuficient rights)
|
|
||||||
|
|
||||||
Processes::FindDevice <device_base_name>
|
|
||||||
|
|
||||||
Searches the installed devices drivers for the given
|
|
||||||
device base name.
|
|
||||||
(important: I said BASE NAME not FILENAME)
|
|
||||||
|
|
||||||
return: 1 - the device driver was found
|
|
||||||
0 - the device driver was not found
|
|
||||||
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
|
|
||||||
First of all, does not matter where you use it. Ofcourse, the
|
|
||||||
routines must be called inside of a Section/Function scope.
|
|
||||||
|
|
||||||
Processes::FindProcess "process_name.exe"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" make_my_day noooooo
|
|
||||||
|
|
||||||
make_my_day:
|
|
||||||
...
|
|
||||||
|
|
||||||
noooooo:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
Processes::KillProcess "process_name.exe"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" dead_meat why_wont_you_die
|
|
||||||
|
|
||||||
dead_meat:
|
|
||||||
...
|
|
||||||
|
|
||||||
why_wont_you_die:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
Processes::FindDevice "device_base_name"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
StrCmp $R0 "1" blabla more_blabla
|
|
||||||
|
|
||||||
blabla:
|
|
||||||
...
|
|
||||||
|
|
||||||
more_blabla:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
THANKS
|
|
||||||
|
|
||||||
Sunil Kamath for inspiring me. I wanted to use its FindProcDLL
|
|
||||||
but my requirements made it imposible.
|
|
||||||
|
|
||||||
Nullsoft for creating this very powerfull installer. One big,
|
|
||||||
free and full-featured (hmmm... and guiless for the moment) mean
|
|
||||||
install machine!:)
|
|
||||||
|
|
||||||
ME for being such a great coder...
|
|
||||||
... HAHAHAHAHAHAHA!
|
|
||||||
|
|
||||||
ONE MORE THING
|
|
||||||
|
|
||||||
If you use the plugin or it's source-code, I would apreciate
|
|
||||||
if my name is mentioned.
|
|
||||||
|
|
||||||
----------------------------------------------------------------
|
|
||||||
----------------------------------------------------------------
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="processes"
|
|
||||||
SccProjectName="processes"
|
|
||||||
SccLocalPath=".">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FINDPROCDLL_EXPORTS"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="1"
|
|
||||||
UsePrecompiledHeader="3"
|
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
|
||||||
PrecompiledHeaderFile=".\Debug/processes.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="4"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile=".\Debug/processes.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Debug/processes.pdb"
|
|
||||||
ImportLibrary=".\Debug/processes.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Debug/processes.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1034"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory="..\bin"
|
|
||||||
IntermediateDirectory="..\bin\processes"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2"
|
|
||||||
WholeProgramOptimization="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="3"
|
|
||||||
GlobalOptimizations="TRUE"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
FavorSizeOrSpeed="1"
|
|
||||||
OptimizeForWindowsApplication="TRUE"
|
|
||||||
PreprocessorDefinitions="NDEBUG;_WINDOWS;_USRDLL;FINDPROCDLL_EXPORTS"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="0"
|
|
||||||
StructMemberAlignment="1"
|
|
||||||
EnableFunctionLevelLinking="TRUE"
|
|
||||||
UsePrecompiledHeader="3"
|
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
|
||||||
PrecompiledHeaderFile="..\bin\processes/processes.pch"
|
|
||||||
AssemblerListingLocation="..\bin\processes/"
|
|
||||||
ObjectFile="..\bin\processes/"
|
|
||||||
ProgramDataBaseFileName="..\bin\processes/"
|
|
||||||
WarningLevel="4"
|
|
||||||
SuppressStartupBanner="TRUE"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="libc.lib"
|
|
||||||
OutputFile="..\bin/Processes.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
IgnoreAllDefaultLibraries="FALSE"
|
|
||||||
ProgramDatabaseFile="..\bin/processes.pdb"
|
|
||||||
OptimizeForWindows98="1"
|
|
||||||
ImportLibrary="..\bin/processes.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Release/processes.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
|
||||||
<File
|
|
||||||
RelativePath="processes.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;FINDPROCDLL_EXPORTS;$(NoInherit)"
|
|
||||||
BasicRuntimeChecks="3"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="1"
|
|
||||||
PreprocessorDefinitions="NDEBUG;_WINDOWS;_MBCS;_USRDLL;FINDPROCDLL_EXPORTS;$(NoInherit)"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\processes.rc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="StdAfx.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;FINDPROCDLL_EXPORTS;$(NoInherit)"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
UsePrecompiledHeader="1"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="1"
|
|
||||||
PreprocessorDefinitions="NDEBUG;_WINDOWS;_MBCS;_USRDLL;FINDPROCDLL_EXPORTS;$(NoInherit)"
|
|
||||||
UsePrecompiledHeader="1"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
|
||||||
<File
|
|
||||||
RelativePath="exdll.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\processes.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\resource.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="StdAfx.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
|
||||||
</Filter>
|
|
||||||
<File
|
|
||||||
RelativePath="processes.txt">
|
|
||||||
</File>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
History:
|
|
||||||
--------
|
|
||||||
|
|
||||||
v0.0.11d - 20090705 (AndersK)
|
|
||||||
*Fixed UAC_RealWorldFullyLoadedDualModeExample.nsi so installing as admin will allow both modes
|
|
||||||
|
|
||||||
v0.0.11c - 20090124 (AndersK)
|
|
||||||
*Checks for seclogon service on NT5 and returns ERROR_SERVICE_NOT_ACTIVE in $0 if not running
|
|
||||||
|
|
||||||
v0.0.11b - 20090102 (AndersK)
|
|
||||||
*Fixed unicode compile bugs
|
|
||||||
|
|
||||||
v0.0.11 - 20081021 (AndersK)
|
|
||||||
+Added UAC_GetUserShellFolderPath.nsi (Uses the new UAC::GetShellFolderPath)
|
|
||||||
|
|
||||||
v0.0.10a - 20081004 (AndersK)
|
|
||||||
+Added SEE_MASK_NOZONECHECKS flag (experimental)
|
|
||||||
|
|
||||||
v0.0.10 - 20080812 (AndersK)
|
|
||||||
+Added ugly hook hack to the shells run-as dialog on xp, defaults to other user
|
|
||||||
|
|
||||||
v0.0.9 - 20080721 (AndersK)
|
|
||||||
*Fixed UAC_RealWorldFullyLoadedDualModeExample.nsi related bug (Thanks Case)
|
|
||||||
|
|
||||||
v0.0.8 - 20080310 (AndersK)
|
|
||||||
+HTML Readme
|
|
||||||
+Added UAC::GetOuterHwnd (used by UAC_RealWorldFullyLoadedDualModeExample.nsi)
|
|
||||||
*Fixed UAC_RealWorldFullyLoadedDualModeExample.nsi
|
|
||||||
*Major code cleanup in UAC.cpp
|
|
||||||
-Removed UAC::RunElevatedAndProcessMessages (UAC::RunElevated now supports non NULL $HWNDParent)
|
|
||||||
-Removed several useless sample scripts
|
|
||||||
|
|
||||||
v0.0.7e - 20080229 (AndersK)
|
|
||||||
*Added ugly hack for hackwnd to find correct title and give us a proper taskbar so the elevation dialog does not get lost (2000,XP (This also fixed Alt-Tab icon on Vista))
|
|
||||||
*Should compile with MSVC2005 now (Thanks Case)
|
|
||||||
*More unicode fixes, this time even tested with NSIS Unicode (Only RunElevated and Exec tested)
|
|
||||||
|
|
||||||
v0.0.7d - 20080226 (AndersK)
|
|
||||||
*Fixed a couple of unicode version bugs (Unicode version still untested)
|
|
||||||
*Fixed weird XP string length bug (Thanks kfank)
|
|
||||||
|
|
||||||
v0.0.7c - 20080218 (AndersK)
|
|
||||||
*Fixed SyncVars string length bug
|
|
||||||
|
|
||||||
v0.0.7b - 20080205 (AndersK)
|
|
||||||
*Fixed DelayLoadDlls() problem on NT4
|
|
||||||
|
|
||||||
v0.0.7 - 20080120 (AndersK)
|
|
||||||
+Added UAC::StackPush (For use with ExecCodeSegment)
|
|
||||||
|
|
||||||
v0.0.6d - 20071108 (AndersK)
|
|
||||||
+Now syncs basic registers/variables before calling UAC::*Exec* and UAC::ExecCodeSegment (r0-r9,R0-R9,$CMDLINE,$INSTDIR,$OUTDIR,$EXEDIR,$LANGUAGE)
|
|
||||||
+Added UAC::RunElevatedAndProcessMessages, this can be called after .onInit (Very experimental, DO NOT USE)
|
|
||||||
+New include file with helper macros: UAC.nsh
|
|
||||||
*Replazed Clammerz hack with a better version
|
|
||||||
|
|
||||||
v0.0.6c - 20071014 (AndersK)
|
|
||||||
+Check for and split up "domain\user" style input in RunAs.cpp for CreateProcessWithLogonW
|
|
||||||
*Added a ugly hack to trick messagebox'es in .OnInit to appear correctly on Vista (Thanks Clammerz)
|
|
||||||
|
|
||||||
v0.0.6b - 20070523 (AndersK)
|
|
||||||
*Fixed showwindow flag (Thanks for the help kichik)
|
|
||||||
|
|
||||||
v0.0.6 - 20070512 (AndersK)
|
|
||||||
+Added basic language support for MyRunAs dialog.
|
|
||||||
|
|
||||||
v0.0.5e - 20070509 (AndersK)
|
|
||||||
*Fixed detection of UAC mode?
|
|
||||||
+IPC window is visible (but offscreen) during elevation to help with SetForegroundWindow/Focus problems
|
|
||||||
|
|
||||||
v0.0.5d - 20070324 (AndersK)
|
|
||||||
*Fixed stupid IsAdmin bug
|
|
||||||
|
|
||||||
v0.0.5c - 20070304 (AndersK)
|
|
||||||
*_IsAdmin now uses CheckTokenMembership if it exists ( MSKB:Q118626 / http://blogs.msdn.com/larryosterman/archive/2007/03/14/why-does-kb-118626-use-accesscheck-to-check-if-you-re-a-member-of-the-administrators-group.aspx )
|
|
||||||
|
|
||||||
v0.0.5b - 20070301 (AndersK)
|
|
||||||
*Fixed ExecCodeSegment (Thread now calls CoInitialize)
|
|
||||||
|
|
||||||
v0.0.5 - 20070228 (AndersK)
|
|
||||||
+Added ExecCodeSegment (You can now call ANY code in the context of the original user)
|
|
||||||
|
|
||||||
v0.0.4b - 20070226 (AndersK)
|
|
||||||
*Fixed (My)RunAs font (http://blogs.msdn.com/oldnewthing/archive/2005/02/04/366987.aspx)
|
|
||||||
|
|
||||||
v0.0.4 - 20070225 (AndersK)
|
|
||||||
+Added (My)RunAs dialog, used on Vista when running as LUA with UAC off
|
|
||||||
+Always uses /NCRC for elevated instance
|
|
||||||
*Now compiles as UNICODE (Untested, no UnicodeNSIS to test on)
|
|
||||||
|
|
||||||
v0.0.3 - 20070224 (AndersK)
|
|
||||||
+Added Exec/ExecWait
|
|
||||||
+Added Verb & ShowWindow support for ShellExec[Wait]
|
|
||||||
|
|
||||||
v0.0.2 - 20070219 (AndersK)
|
|
||||||
+Added ShellExecWait
|
|
||||||
*IPC srv wnd now has its own thread and msg loop
|
|
||||||
*Removed CRT dependency
|
|
||||||
*Hopefully loads on Win95 now
|
|
||||||
|
|
||||||
v0.0.1 - 20070215 (AndersK)
|
|
||||||
*Initial release
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
This software is provided 'as-is', without any express or implied warranty.
|
|
||||||
|
|
||||||
ZLIB/LIBPNG LICENSE
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
|
|
||||||
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
|
||||||
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
/*
|
|
||||||
Alternative to ExDll.h
|
|
||||||
|
|
||||||
v0.0.1 - 20060811 (AndersK)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#include <TChar.h>
|
|
||||||
|
|
||||||
|
|
||||||
typedef TCHAR NSISCH;
|
|
||||||
#define NSISCALL __stdcall
|
|
||||||
|
|
||||||
namespace NSIS {
|
|
||||||
|
|
||||||
__forceinline void* NSISCALL MemAlloc(SIZE_T cb) {return GlobalAlloc(LPTR,cb);}
|
|
||||||
__forceinline void NSISCALL MemFree(void* p) {GlobalFree(p);}
|
|
||||||
|
|
||||||
enum {
|
|
||||||
INST_0, // $0
|
|
||||||
INST_1, // $1
|
|
||||||
INST_2, // $2
|
|
||||||
INST_3, // $3
|
|
||||||
INST_4, // $4
|
|
||||||
INST_5, // $5
|
|
||||||
INST_6, // $6
|
|
||||||
INST_7, // $7
|
|
||||||
INST_8, // $8
|
|
||||||
INST_9, // $9
|
|
||||||
INST_R0, // $R0
|
|
||||||
INST_R1, // $R1
|
|
||||||
INST_R2, // $R2
|
|
||||||
INST_R3, // $R3
|
|
||||||
INST_R4, // $R4
|
|
||||||
INST_R5, // $R5
|
|
||||||
INST_R6, // $R6
|
|
||||||
INST_R7, // $R7
|
|
||||||
INST_R8, // $R8
|
|
||||||
INST_R9, // $R9
|
|
||||||
INST_CMDLINE, // $CMDLINE
|
|
||||||
INST_INSTDIR, // $INSTDIR
|
|
||||||
INST_OUTDIR, // $OUTDIR
|
|
||||||
INST_EXEDIR, // $EXEDIR
|
|
||||||
INST_LANG, // $LANGUAGE
|
|
||||||
__INST_LAST,
|
|
||||||
|
|
||||||
VIDX_TEMP=(INST_LANG+1), //#define state_temp_dir g_usrvars[25]
|
|
||||||
VIDX_PLUGINSDIR,//# define state_plugins_dir g_usrvars[26]
|
|
||||||
VIDX_EXEPATH,//#define state_exe_path g_usrvars[27]
|
|
||||||
VIDX_EXEFILENAME,//#define state_exe_file g_usrvars[28]
|
|
||||||
VIDX_STATECLICKNEXT,//#define state_click_next g_usrvars[30]
|
|
||||||
__VIDX_UNDOCLAST
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _stack_t {
|
|
||||||
struct _stack_t *next;
|
|
||||||
NSISCH text[ANYSIZE_ARRAY];
|
|
||||||
} stack_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int autoclose;
|
|
||||||
int all_user_var;
|
|
||||||
int exec_error;
|
|
||||||
int abort;
|
|
||||||
int exec_reboot;
|
|
||||||
int reboot_called;
|
|
||||||
int XXX_cur_insttype; // deprecated
|
|
||||||
int XXX_insttype_changed; // deprecated
|
|
||||||
int silent;
|
|
||||||
int instdir_error;
|
|
||||||
int rtl;
|
|
||||||
int errlvl;
|
|
||||||
//NSIS v2.3x ?
|
|
||||||
int alter_reg_view;
|
|
||||||
int status_update;
|
|
||||||
} exec_flags_type;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
exec_flags_type *exec_flags;
|
|
||||||
int (NSISCALL *ExecuteCodeSegment)(int, HWND);
|
|
||||||
void (NSISCALL *validate_filename)(char *);
|
|
||||||
} extra_parameters;
|
|
||||||
|
|
||||||
extern UINT StrSize;
|
|
||||||
extern stack_t **StackTop;
|
|
||||||
extern NSISCH*Vars;
|
|
||||||
|
|
||||||
inline bool NSISCALL SetErrLvl(extra_parameters*pExtraParams,int ErrLevel) {return pExtraParams? ((pExtraParams->exec_flags->errlvl=ErrLevel)||true):false;}
|
|
||||||
inline bool NSISCALL SetErrorFlag(extra_parameters*pExtraParams) {return pExtraParams? ((pExtraParams->exec_flags->exec_error=1)||true):false;}
|
|
||||||
inline bool NSISCALL ClearErrorFlag(extra_parameters*pExtraParams) {return pExtraParams?((pExtraParams->exec_flags->exec_error=0)||true):false;}
|
|
||||||
|
|
||||||
__forceinline int NSISCALL ExecuteCodeSegment(extra_parameters*pExtraParams,int pos,HWND hwndProgress=NULL) {
|
|
||||||
return pExtraParams?pExtraParams->ExecuteCodeSegment(pos,hwndProgress):(/*EXEC_ERROR*/0x7FFFFFFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
static NSISCH* __fastcall GetVar(const int varnum)
|
|
||||||
{
|
|
||||||
//ASSERT(NSIS::Vars && NSIS::StrSize);
|
|
||||||
if (varnum < 0 || varnum >= __VIDX_UNDOCLAST) return NULL;
|
|
||||||
return NSIS::Vars+(varnum*NSIS::StrSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void NSISCALL SetVarUINT(const int varnum,UINT Value) {
|
|
||||||
wsprintf(GetVar(varnum),_T("%u"),Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
static stack_t* NSISCALL StackPop() {
|
|
||||||
if (NSIS::StackTop && *NSIS::StackTop) {
|
|
||||||
stack_t*s=(*NSIS::StackTop);
|
|
||||||
*NSIS::StackTop=(*NSIS::StackTop)->next;
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
__forceinline void NSISCALL StackFreeItem(stack_t*pStackItem) {NSIS::MemFree(pStackItem);}
|
|
||||||
|
|
||||||
static DWORD NSISCALL StackPush(NSISCH*InStr,UINT StackStrSize=NSIS::StrSize) {
|
|
||||||
if (!NSIS::StackTop)return ERROR_INVALID_PARAMETER;
|
|
||||||
stack_t*sNew=(stack_t*)NSIS::MemAlloc(sizeof(stack_t)+(StackStrSize*sizeof(NSISCH)));
|
|
||||||
if (!sNew)return ERROR_OUTOFMEMORY;
|
|
||||||
lstrcpyn(sNew->text,InStr,StackStrSize);
|
|
||||||
sNew->next=*NSIS::StackTop;
|
|
||||||
*NSIS::StackTop=sNew;
|
|
||||||
return NO_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
}; /* namespace */
|
|
||||||
|
|
||||||
#define NSISUTIL_INIT() namespace NSIS {static UINT StrSize;static stack_t **StackTop;static NSISCH*Vars;}//Call in only ONE source file
|
|
||||||
#define NSISUTIL_INITEXPORT(_v,_strsize,_stackt) NSIS::Vars=_v;NSIS::StrSize=_strsize;NSIS::StackTop=_stackt
|
|
||||||
|
|
||||||
//#define NSISEXPORT4(_func,_h,_strsize,_v,_stackt) extern "C" void __declspec(dllexport) __cdecl \
|
|
||||||
// _func (HWND _h,int _strsize,NSISCH*_v,NSIS::stack_t **_stackt) { NSISUTIL_INITEXPORT(_v,_strsize,_stackt); TRACE("EXPORT::" #_func "\n");
|
|
||||||
//#define NSISEXPORT5(_func,_h,_strsize,_v,_stackt,_eparams) extern "C" void __declspec(dllexport) __cdecl \
|
|
||||||
// _func (HWND _h,int _strsize,NSISCH*_v,NSIS::stack_t **_stackt,NSIS::extra_parameters* _eparams) { NSISUTIL_INITEXPORT(_v,_strsize,_stackt); TRACE("EXPORT::" #_func "\n");
|
|
||||||
//#define NSISEXPORT NSISEXPORT5
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
# define EXPORTNSISFUNC extern "C" void __declspec(dllexport) __cdecl
|
|
||||||
# else
|
|
||||||
# error EXPORTNSISFUNC needs compiler goo, you are on your own!
|
|
||||||
# endif
|
|
||||||
#define NSISFUNCSTART4(_h,_strsize,_v,_stackt) {NSISUTIL_INITEXPORT(_v,_strsize,_stackt);
|
|
||||||
#define NSISFUNCSTART5(_h,_strsize,_v,_stackt,_eparams) NSISFUNCSTART4(_h,_strsize,_v,_stackt)
|
|
||||||
#define NSISFUNCSTART NSISFUNCSTART5
|
|
||||||
#define NSISFUNCEND() }
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,277 +0,0 @@
|
|||||||
//Copyright (C) 2007 Anders Kjersem. Licensed under the zlib/libpng license, see License.txt for details.
|
|
||||||
/*
|
|
||||||
If UAC is disabled, the runas verb is broken (Vista RTM) so when running as LUA there is no way to elevate so
|
|
||||||
we provide our own dialog.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "UAC.h"
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG
|
|
||||||
#include <Lmcons.h>//UNLEN && GNLEN && PWLEN
|
|
||||||
#include <WindowsX.h>
|
|
||||||
#include "resource.h"
|
|
||||||
#include "NSISUtil.h"
|
|
||||||
using namespace NSIS;
|
|
||||||
#define ERRAPP_TRYAGAIN (0x20000000|1)
|
|
||||||
#define MYMAX_DOMAIN (2+max(GNLEN,MAX_COMPUTERNAME_LENGTH)+1)
|
|
||||||
|
|
||||||
|
|
||||||
static LPCTSTR g_RunAsDlgTitle=_T("Run as");
|
|
||||||
static LPCTSTR g_RunAsHelpText=_T("You may not have the necessary permissions to use all the features of the program you are about to run. You may run this program as a different user or continue to run the program as the current user.");
|
|
||||||
static LPCTSTR g_RunAsCurrUsrFmt=_T("&Current user (%s)");//Max 50 chars!
|
|
||||||
static LPCTSTR g_RunAsSpecHelp=_T("Run the program as the &following user:");
|
|
||||||
|
|
||||||
FORCEINLINE bool MySetDlgItemText(HWND hDlg,int id,LPCTSTR s) {return MySndDlgItemMsg(hDlg,id,WM_SETTEXT,0,(LPARAM)s)!=0;}
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
SHELLEXECUTEINFO*pSEI;
|
|
||||||
bool AsSelf;
|
|
||||||
} RUNASDLGDATA;
|
|
||||||
|
|
||||||
void MyRunAsFmtCurrUserRadio(HWND hDlg,LPCTSTR Fmt) {
|
|
||||||
TCHAR bufFullName[MYMAX_DOMAIN+UNLEN+1];
|
|
||||||
TCHAR buf[50+MYMAX_DOMAIN+UNLEN+1];
|
|
||||||
*bufFullName=0;
|
|
||||||
ULONG cch;
|
|
||||||
if ((!_GetUserNameEx || !_GetUserNameEx(NameSamCompatible,bufFullName,&(cch=COUNTOF(bufFullName)))) &&
|
|
||||||
!_GetUserName(bufFullName,&(cch=COUNTOF(bufFullName))) ) {
|
|
||||||
*bufFullName=0;
|
|
||||||
}
|
|
||||||
wsprintf(buf,Fmt,*bufFullName?bufFullName:_T("?"));
|
|
||||||
MySetDlgItemText(hDlg,IDC_RUNASCURR,buf);
|
|
||||||
|
|
||||||
// default the "User name:" to Administrator from shell32
|
|
||||||
if (LoadString(GetModuleHandle(_T("SHELL32.dll")),21763, bufFullName, COUNTOF(bufFullName)) > 0) {
|
|
||||||
MySetDlgItemText(hDlg,IDC_USERNAME,bufFullName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG_TRANSLATE
|
|
||||||
void MyRunAsTranslateDlgString(LPCTSTR StrID,LPTSTR Ini,HWND hDlg,INT_PTR DlgItemId,int special=0) {
|
|
||||||
TCHAR buf[MAX_PATH*2];
|
|
||||||
DWORD len=GetPrivateProfileString(_T("MyRunAsStrings"),StrID,0,buf,ARRAYSIZE(buf),Ini);
|
|
||||||
if (len) {
|
|
||||||
if (IDC_RUNASCURR==special)
|
|
||||||
MyRunAsFmtCurrUserRadio(hDlg,buf);
|
|
||||||
else
|
|
||||||
(DlgItemId==-1) ? SetWindowText(hDlg,buf) : MySetDlgItemText(hDlg,DlgItemId,buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MyRunAsTranslateDlg(HWND hDlg) {
|
|
||||||
DWORD len;
|
|
||||||
TCHAR buf[MAX_PATH*2];
|
|
||||||
HMODULE hDll=GetWindowInstance(hDlg);ASSERT(hDll);
|
|
||||||
if ( (len=GetModuleFileName(hDll,buf,ARRAYSIZE(buf))) <1)return;
|
|
||||||
buf[len-3]=0;
|
|
||||||
lstrcat(buf,_T("lng"));
|
|
||||||
MyRunAsTranslateDlgString(_T("DlgTitle"),buf,hDlg,-1);
|
|
||||||
MyRunAsTranslateDlgString(_T("HelpText"),buf,hDlg,IDC_HELPTEXT);
|
|
||||||
MyRunAsTranslateDlgString(_T("OptCurrUser"),buf,hDlg,IDC_RUNASCURR,IDC_RUNASCURR);
|
|
||||||
MyRunAsTranslateDlgString(_T("OptOtherUser"),buf,hDlg,IDC_RUNASSPEC);
|
|
||||||
MyRunAsTranslateDlgString(_T("Username"),buf,hDlg,IDC_LBLUSER);
|
|
||||||
MyRunAsTranslateDlgString(_T("Pwd"),buf,hDlg,IDC_LBLPWD);
|
|
||||||
MyRunAsTranslateDlgString(_T("OK"),buf,hDlg,IDOK);
|
|
||||||
MyRunAsTranslateDlgString(_T("Cancel"),buf,hDlg,IDCANCEL);
|
|
||||||
HWND h=GetDlgItem(hDlg,IDC_RUNASCURR);
|
|
||||||
if (GetPrivateProfileInt(_T("MyRunAsCfg"),_T("DisableCurrUserOpt"),false,buf))EnableWindow(h,false);
|
|
||||||
if (GetPrivateProfileInt(_T("MyRunAsCfg"),_T("HideCurrUserOpt"),false,buf))ShowWindow(h,false);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool ErrorIsLogonError(DWORD err) {
|
|
||||||
switch (err) {
|
|
||||||
case ERROR_LOGON_FAILURE:
|
|
||||||
case ERROR_ACCOUNT_RESTRICTION:
|
|
||||||
case ERROR_INVALID_LOGON_HOURS:
|
|
||||||
case ERROR_INVALID_WORKSTATION:
|
|
||||||
case ERROR_PASSWORD_EXPIRED:
|
|
||||||
case ERROR_ACCOUNT_DISABLED:
|
|
||||||
case ERROR_NONE_MAPPED:
|
|
||||||
case ERROR_NO_SUCH_USER:
|
|
||||||
case ERROR_INVALID_ACCOUNT_NAME:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void VerifyOKBtn(HWND hDlg,RUNASDLGDATA*pRADD) {
|
|
||||||
const bool HasText=pRADD?(pRADD->AsSelf?true:MySndDlgItemMsg(hDlg,IDC_USERNAME,WM_GETTEXTLENGTH)>0):false;
|
|
||||||
EnableWindow(GetDlgItem(hDlg,IDOK),HasText);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetDlgState(HWND hDlg,bool AsSelf,RUNASDLGDATA*pRADD) {
|
|
||||||
if (pRADD)pRADD->AsSelf=AsSelf;
|
|
||||||
MySndDlgItemMsg(hDlg,IDC_RUNASCURR,BM_SETCHECK,AsSelf?BST_CHECKED:BST_UNCHECKED);
|
|
||||||
MySndDlgItemMsg(hDlg,IDC_RUNASSPEC,BM_SETCHECK,!AsSelf?BST_CHECKED:BST_UNCHECKED);
|
|
||||||
int ids[]={IDC_USERNAME,IDC_PASSWORD,IDC_LBLUSER,IDC_LBLPWD};
|
|
||||||
for (int i=0; i<COUNTOF(ids);++i)EnableWindow(GetDlgItem(hDlg,ids[i]),!AsSelf);
|
|
||||||
VerifyOKBtn(hDlg,pRADD);
|
|
||||||
}
|
|
||||||
|
|
||||||
INT_PTR CALLBACK MyRunAsDlgProc(HWND hwnd,UINT uMsg,WPARAM wp,LPARAM lp) {
|
|
||||||
RUNASDLGDATA*pRADD=(RUNASDLGDATA*)GetWindowLongPtr(hwnd,GWLP_USERDATA);
|
|
||||||
switch(uMsg) {
|
|
||||||
//case WM_DESTROY:
|
|
||||||
// break;
|
|
||||||
case WM_CLOSE:
|
|
||||||
return DestroyWindow(hwnd);
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
pRADD=(RUNASDLGDATA*)lp;ASSERT(pRADD);
|
|
||||||
SetWindowLongPtr(hwnd,GWLP_USERDATA,lp);
|
|
||||||
Edit_LimitText(GetDlgItem(hwnd,IDC_USERNAME),UNLEN+1+MYMAX_DOMAIN); //room for "foo@BAR" or "BAR\foo"
|
|
||||||
Edit_LimitText(GetDlgItem(hwnd,IDC_PASSWORD),PWLEN);
|
|
||||||
const HINSTANCE hSh32=GetModuleHandle(_T("SHELL32.dll"));
|
|
||||||
const HICON hIco=(HICON)LoadImage(hSh32,MAKEINTRESOURCE(194),IMAGE_ICON,32,32,LR_SHARED);
|
|
||||||
MySndDlgItemMsg(hwnd,IDC_SHICON,STM_SETICON,(WPARAM)hIco);
|
|
||||||
SendMessage(hwnd,WM_SETTEXT,0,(LPARAM)g_RunAsDlgTitle);
|
|
||||||
MySetDlgItemText(hwnd,IDC_HELPTEXT,g_RunAsHelpText);
|
|
||||||
MyRunAsFmtCurrUserRadio(hwnd,g_RunAsCurrUsrFmt);
|
|
||||||
MySetDlgItemText(hwnd,IDC_RUNASSPEC,g_RunAsSpecHelp);
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG_TRANSLATE
|
|
||||||
MyRunAsTranslateDlg(hwnd);
|
|
||||||
#endif
|
|
||||||
SetDlgState(hwnd,false,pRADD);
|
|
||||||
|
|
||||||
#if defined(BUILD_DBG) && 0 //auto login used during testing ;)
|
|
||||||
SetDlgItemText(hwnd,IDC_USERNAME,_T("root"));
|
|
||||||
SetDlgItemText(hwnd,IDC_PASSWORD,_T("???"));
|
|
||||||
Sleep(1);PostMessage(hwnd,WM_COMMAND,IDOK,0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
case WM_COMMAND:
|
|
||||||
{
|
|
||||||
switch(HIWORD(wp)) {
|
|
||||||
case EN_CHANGE:
|
|
||||||
VerifyOKBtn(hwnd,pRADD);
|
|
||||||
break;
|
|
||||||
case EN_SETFOCUS:
|
|
||||||
case BN_CLICKED:
|
|
||||||
if (LOWORD(wp)<=IDCANCEL)break;
|
|
||||||
SetDlgState(hwnd,LOWORD(wp)==IDC_RUNASCURR,pRADD);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
INT_PTR exitcode=!pRADD?-1:IDCANCEL;
|
|
||||||
switch(LOWORD(wp)) {
|
|
||||||
case IDOK:
|
|
||||||
if (pRADD) {
|
|
||||||
SHELLEXECUTEINFO&sei=*pRADD->pSEI;
|
|
||||||
PROCESS_INFORMATION pi={0};
|
|
||||||
DWORD ec=NO_ERROR;
|
|
||||||
WCHAR*wszExec;//Also used as TCHAR buffer in AsSelf mode
|
|
||||||
bool PerformTCharFmt=pRADD->AsSelf;
|
|
||||||
//const DWORD CommonStartupInfoFlags=STARTF_FORCEONFEEDBACK;
|
|
||||||
#ifdef UNICODE
|
|
||||||
PerformTCharFmt=true;
|
|
||||||
#endif
|
|
||||||
wszExec=(WCHAR*)NSIS::MemAlloc( (pRADD->AsSelf?sizeof(TCHAR):sizeof(WCHAR)) *(lstrlen(sei.lpFile)+1+lstrlen(sei.lpParameters)+1));
|
|
||||||
if (!wszExec)ec=ERROR_OUTOFMEMORY;
|
|
||||||
if (PerformTCharFmt)wsprintf((TCHAR*)wszExec,_T("%s%s%s"),sei.lpFile,((sei.lpParameters&&*sei.lpParameters)?_T(" "):_T("")),sei.lpParameters);
|
|
||||||
if (!ec) {
|
|
||||||
if (pRADD->AsSelf) {
|
|
||||||
STARTUPINFO si={sizeof(si)};
|
|
||||||
TRACEF("MyRunAs:CreateProcess:%s|\n",wszExec);
|
|
||||||
ec=(CreateProcess(0,(TCHAR*)wszExec,0,0,false,0,0,0,&si,&pi)?NO_ERROR:GetLastError());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
//All Wide strings!
|
|
||||||
WCHAR wszPwd[PWLEN+1];
|
|
||||||
WCHAR wszUName[UNLEN+1+MYMAX_DOMAIN+1];
|
|
||||||
STARTUPINFOW siw={sizeof(siw)};
|
|
||||||
WCHAR*p;
|
|
||||||
#ifndef UNICODE
|
|
||||||
//Build unicode string, we already know the buffer is big enough so no error handling
|
|
||||||
p=wszExec;
|
|
||||||
MultiByteToWideChar(CP_THREAD_ACP,0,sei.lpFile,-1,p,0xFFFFFF);
|
|
||||||
if (sei.lpParameters && *sei.lpParameters) {
|
|
||||||
p+=lstrlen(sei.lpFile);*p++=L' ';*p=0;
|
|
||||||
MultiByteToWideChar(CP_THREAD_ACP,0,sei.lpParameters,-1,p,0xFFFFFF);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
SendMessageW(GetDlgItem(hwnd,IDC_USERNAME),WM_GETTEXT,COUNTOF(wszUName),(LPARAM)wszUName);
|
|
||||||
SendMessageW(GetDlgItem(hwnd,IDC_PASSWORD),WM_GETTEXT,COUNTOF(wszPwd),(LPARAM)wszPwd);
|
|
||||||
|
|
||||||
//Try to find [\\]domain\user and split into username and domain strings
|
|
||||||
WCHAR*pUName=wszUName,*pDomain=0;
|
|
||||||
p=wszUName;
|
|
||||||
//if (*p==p[1]=='\\')pUName=(p+=2);else \ //Should we still split things up if the string starts with \\ ? Is it possible to use \\machine\user at all?
|
|
||||||
++p;//Don't parse "\something", require at least one char before backslash "?[*\]something"
|
|
||||||
while(*p && *p!='\\')++p;
|
|
||||||
if (*p=='\\') {
|
|
||||||
pDomain=pUName;
|
|
||||||
pUName=p+1;*p=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
TRACEF("MyRunAs:CreateProcessWithLogonW:%ws|%ws|%ws|%ws|\n",pUName,pDomain?pDomain:L"NO?DOMAIN",wszPwd,wszExec);
|
|
||||||
ec=(_CreateProcessWithLogonW(pUName,pDomain?pDomain:0,wszPwd,LOGON_WITH_PROFILE,0,wszExec,0,0,0,&siw,&pi)?NO_ERROR:GetLastError());
|
|
||||||
TRACEF("MyRunAs:CreateProcessWithLogonW: ret=%u\n",ec);
|
|
||||||
SecureZeroMemory(wszPwd,sizeof(wszPwd));//if (wszPwd) {volatile WCHAR*_p=wszPwd;for(;_p&&*_p;++_p)*_p=1;if (_p)*wszPwd=0;}//Burn password (And attempt to prevent compiler from removing it)
|
|
||||||
if (ec && ErrorIsLogonError(ec)) {
|
|
||||||
LPTSTR szMsg;
|
|
||||||
DWORD ret=FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,0,ec,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&szMsg,0,0);
|
|
||||||
if (ret) {
|
|
||||||
ec=ERRAPP_TRYAGAIN;
|
|
||||||
MessageBox(hwnd,szMsg,0,MB_ICONWARNING);
|
|
||||||
LocalFree(szMsg);
|
|
||||||
}
|
|
||||||
else ec=GetLastError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NSIS::MemFree(wszExec);
|
|
||||||
if (pi.hThread)CloseHandle(pi.hThread);
|
|
||||||
if (ERRAPP_TRYAGAIN==ec)break;
|
|
||||||
if (ec) {
|
|
||||||
SetLastError(ec);
|
|
||||||
exitcode=-1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pRADD->pSEI->hProcess=pi.hProcess;
|
|
||||||
exitcode=IDOK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case IDCANCEL:
|
|
||||||
EndDialog(hwnd,exitcode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD MyRunAs(HINSTANCE hInstDll,SHELLEXECUTEINFO&sei) {
|
|
||||||
INT_PTR ec;
|
|
||||||
ASSERT(sei.cbSize>=sizeof(SHELLEXECUTEINFO) && hInstDll);
|
|
||||||
if (ec=DelayLoadDlls())return ec;
|
|
||||||
ASSERT(_CreateProcessWithLogonW && _GetUserName);
|
|
||||||
RUNASDLGDATA radd={0};
|
|
||||||
radd.pSEI=&sei;
|
|
||||||
ec=DialogBoxParam(hInstDll,MAKEINTRESOURCE(IDD_MYRUNAS),sei.hwnd,MyRunAsDlgProc,(LPARAM)&radd);
|
|
||||||
TRACEF("MyRunAs returned %d (%s|%s)\n",ec,sei.lpFile,sei.lpParameters);
|
|
||||||
switch(ec) {
|
|
||||||
case 0:
|
|
||||||
return ERROR_INVALID_HANDLE;//DialogBoxParam returns 0 on bad hwnd
|
|
||||||
case IDOK:
|
|
||||||
return NO_ERROR;
|
|
||||||
case IDCANCEL:
|
|
||||||
return ERROR_CANCELLED;
|
|
||||||
}
|
|
||||||
//TODO:BUGBUG: on vista, the last error seems to get lost, should probably put it in RUNASDLGDATA and always return IDOK
|
|
||||||
return GetLastError();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef BUILD_DBG
|
|
||||||
// RunDll exports are __stdcall, we dont care about that for this debug export, rundll32.exe is able to handle this mistake
|
|
||||||
extern "C" void __declspec(dllexport) __cdecl DBGRDMyRunAs(HWND hwnd,HINSTANCE hinst,LPTSTR lpCmdLine,int nCmdShow) {
|
|
||||||
SHELLEXECUTEINFO sei={sizeof(sei)};
|
|
||||||
sei.lpFile=_T("Notepad.exe");//sei.lpParameters=_T("param1");
|
|
||||||
TRACEF("ec=%d\n",MyRunAs(GetModuleHandle(_T("UAC.dll")),sei));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* FEAT_CUSTOMRUNASDLG */
|
|
||||||
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html><head>
|
|
||||||
<title>UAC plug-in readme</title>
|
|
||||||
<script type="text/javascript">
|
|
||||||
function NavGL(q){window.open("http://www.google.com/search?hl=en&btnI=I&num=2&q="+escape(q));return 0;}
|
|
||||||
</script>
|
|
||||||
<style type="text/css">
|
|
||||||
html,body {background-color:#FFF; color:#000;}
|
|
||||||
a:link, a:visited, a:active {color:#00F;}
|
|
||||||
h2 {border-bottom:0.1em solid #000;}
|
|
||||||
#docHdrHdln{text-align:center;}
|
|
||||||
.importanttxt {color:#e00;}
|
|
||||||
.code {font-family:monospace;}
|
|
||||||
.nsisvar {color:#C00;}
|
|
||||||
.str {color:#390}
|
|
||||||
.inifile {background-color:#EEE;border:1px solid #000;padding:0.2em;}
|
|
||||||
.inicomment {background-color:#f5f5c5;color:#555;}
|
|
||||||
table.piexport {text-align:left;margin-bottom:1em;}
|
|
||||||
table.piexport td {vertical-align:top;}
|
|
||||||
table.piexport table.ret {padding:0;margin:0;border:0;}
|
|
||||||
</style>
|
|
||||||
</head><body>
|
|
||||||
<h1 id="docHdrHdln">UAC plug-in</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<code><pre>
|
|
||||||
Interactive User (MediumIL) Admin user(HighIL)
|
|
||||||
+++[Setup.exe]++++++++++++++ +++[Setup.exe]++++++++++++++
|
|
||||||
+ + + +
|
|
||||||
+ ***[.OnInit]************ + + ***[.OnInit]************ +
|
|
||||||
+ * UAC::RunElevated >---+-+------>+ * * +
|
|
||||||
+ * NSIS.Quit() * + + * * +
|
|
||||||
+ ************************ + + ***********||*********** +
|
|
||||||
+ + + || +
|
|
||||||
+ + + \/ +
|
|
||||||
+ ***[Sections]*********** + + ***[Sections]*********** +
|
|
||||||
+ * * + /--+-+-< UAC::Exec * +
|
|
||||||
+ ************************ + | + ************************ +
|
|
||||||
+ + | + +
|
|
||||||
+ Win32.CreateProcess() <-+----/ + +
|
|
||||||
+ + + +
|
|
||||||
++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++
|
|
||||||
</pre></code>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Contents</h2>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#exports">Plugin Functions</a>
|
|
||||||
<li><a href="#lang">Language support</a>
|
|
||||||
<li><a href="#knownissues">Known Issues</a>
|
|
||||||
<li><a href="#glossary">Glossary</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="exports"><h2>Plugin Functions</h2></a><div class="CntSec"><p>
|
|
||||||
Every function will try to emulate the basic NSIS instruction (of similar name) when UAC::RunElevated has not "succeeded" or running on a system that does not support elevation (Win9x/NT4)</p>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::RunElevated</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td>Win32 error code (0 on success, 1223 if user aborted elevation dialog, anything else should be treated as a fatal error)</td></tr>
|
|
||||||
<tr><td><span class="nsisvar">$1</span></td><td><span class="code">If <span class="nsisvar">$0</span>==0</span>:
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td>0</td><td>UAC is not supported by the OS</td></tr>
|
|
||||||
<tr><td>1</td><td>Started a elevated child process, the current process should act like a wrapper (Call Quit without any further processing)</td></tr>
|
|
||||||
<tr><td>2</td><td>The process is already running @ HighIL (Member of admin group)</td></tr>
|
|
||||||
<tr><td>3</td><td>You should call RunElevated again (This can happen if a user without admin priv. is used in the runas dialog)</td></tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td><span class="nsisvar">$2</span></td><td><span class="code">If <span class="nsisvar">$0</span>==0 && <span class="nsisvar">$1</span>==1</span>: ExitCode of the elevated fork process (The NSIS errlvl is also set)</td></tr>
|
|
||||||
<tr><td><span class="nsisvar">$3</span></td><td><span class="code">If <span class="nsisvar">$0</span>==0</span>: 1 if the user is a member of the admin group or 0 otherwise</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
<tr><td>Description:</td><td>Allows non-admin/UAC.LUA users to re-spawn the installer as another user and UAC.Admin users to elevate.</td></tr>
|
|
||||||
</table>
|
|
||||||
<!--table class="piexport"><tr><th colspan=2>UAC::RunElevatedAndProcessMessages <i style="font-size:smaller;">(Experimental)</i></th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td><i>See UAC::RunElevated</i></td></tr>
|
|
||||||
<tr><td>Description:</td><td>Version of UAC::RunElevated that can be called from a page</td></tr>
|
|
||||||
</table-->
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::Unload</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td></td></tr>
|
|
||||||
<tr><td>Description:</td><td>Cleanup, you must call this function in .OnInstFailed, .onUserAbort and .OnInstSuccess</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr>
|
|
||||||
<th colspan=2>UAC::Exec</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><INT:ShowWindow> <STR:App> <STR:Parameters> <STR:WorkingDir></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td>Win32 error code, 0 on success (ErrorFlag is also set on error)</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
</table>
|
|
||||||
<table class="piexport"><tr>
|
|
||||||
<th colspan=2>UAC::ExecWait</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><INT:ShowWindow> <STR:App> <STR:Parameters> <STR:WorkingDir></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td>Win32 error code, 0 on success (ErrorFlag is also set on error)</td></tr>
|
|
||||||
<tr><td><span class="nsisvar">$1</span></td><td>Exitcode of new process</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
</table>
|
|
||||||
<table class="piexport"><tr>
|
|
||||||
<th colspan=2>UAC::ShellExec</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><STR:Verb> <INT:ShowWindow> <STR:App> <STR:Parameters> <STR:WorkingDir></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td>Win32 error code, 0 on success (ErrorFlag is also set on error)</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
</table>
|
|
||||||
<table class="piexport"><tr>
|
|
||||||
<th colspan=2>UAC::ShellExecWait</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><STR:Verb> <INT:ShowWindow> <STR:App> <STR:Parameters> <STR:WorkingDir></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td>Win32 error code, 0 on success (ErrorFlag is also set on error)</td></tr>
|
|
||||||
<tr><td><span class="nsisvar">$1</span></td><td>Exitcode of new process</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::IsAdmin</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td><span class="nsisvar">$0</span> (BOOL) result</td></tr>
|
|
||||||
<tr><td>Description:</td><td>Check current thread/process token for a non-deny admin group SID entry</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::ExecCodeSegment</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><INT:NSISFunctionAddress></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>[None] (ErrorFlag is set on error)</td></tr>
|
|
||||||
<tr><td>Description:</td><td>Calls NSIS function in LUA/outer instance (If you use instructions that alter the UI or the stack/variables in the code segment (StrCpy,Push/Pop/Exch,DetailPrint etc.) they will affect the hidden wrapper installer and not "your" installer instance)</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::StackPush</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td><STR:String></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>[None] (ErrorFlag is set on error)</td></tr>
|
|
||||||
<tr><td>Description:</td><td>Push to outer instance stack (For use with UAC::ExecCodeSegment)</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::GetOuterHwnd</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td><span class="nsisvar">$0</span> HWNDPARENT of outer instance</td></tr>
|
|
||||||
<tr><td>Description:</td><td>For use with ${UAC.RunElevatedAndProcessMessages}</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::SupportsUAC</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td><span class="nsisvar">$0</span> !=0 if supported</td></tr>
|
|
||||||
<tr><td>Description:</td><td>Check if the OS supports UAC (And the user has UAC turned on) <span class="importanttxt">This function only tests if UAC is active, will return 0 on NT5 even though runas is implemented on those platforms, will also return 0 on NT6+ if UAC is off. You should only call this function during testing, NOT to determine if you can call UAC::RunElevated</span></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table class="piexport"><tr><th colspan=2>UAC::GetElevationType</th></tr>
|
|
||||||
<tr><td>Parameters:</td><td></td></tr>
|
|
||||||
<tr><td>Returns:</td><td>
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td><span class="nsisvar">$0</span></td><td><a href="#" OnClick="return NavGL('TOKEN_ELEVATION_TYPE Enumeration')">TOKEN_ELEVATION_TYPE</a>:
|
|
||||||
<table class="ret">
|
|
||||||
<tr><td>0</td><td>Unsupported/Failed (ErrorFlag is also set)</td></tr>
|
|
||||||
<tr><td>1</td><td>TokenElevationTypeDefault: User is not using a split token (UAC disabled)</td></tr>
|
|
||||||
<tr><td>2</td><td>TokenElevationTypeFull: UAC enabled, the (current) process is elevated</td></tr>
|
|
||||||
<tr><td>3</td><td>TokenElevationTypeLimited: UAC enabled, the process is not elevated</td></tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
</table></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="lang"><h2>Language support</h2></a><div class="CntSec">
|
|
||||||
<p>If the plugin is built with FEAT_CUSTOMRUNASDLG_TRANSLATE (Enabled by default),
|
|
||||||
you can extract a file named <span class="str">UAC.LNG</span> to <span class="nsisvar">$pluginsdir</span>.
|
|
||||||
It is a ini file with the following sections:
|
|
||||||
</p><pre class="inifile">
|
|
||||||
[MyRunAsCfg]
|
|
||||||
<span class="inicomment">;Set to 1 to disable the radio button</span>
|
|
||||||
DisableCurrUserOpt=
|
|
||||||
<span class="inicomment">;Set to 1 to hide the radio button</span>
|
|
||||||
HideCurrUserOpt=
|
|
||||||
|
|
||||||
[MyRunAsStrings]
|
|
||||||
DlgTitle=Hello There!
|
|
||||||
HelpText=Just do your thing!
|
|
||||||
<span class="inicomment">;Label for current user radio button, %s is replaced with result of GetUserNameEx(NameSamCompatible,...)</span>
|
|
||||||
OptCurrUser=Self service (%s)
|
|
||||||
OptOtherUser=Run as someone:
|
|
||||||
UserName=Who:
|
|
||||||
Pwd=PIN:
|
|
||||||
OK=Okey!
|
|
||||||
Cancel=No Way</pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a name="knownissues"><h2>Known Issues</h2></a><div class="CntSec">
|
|
||||||
<ul>
|
|
||||||
<li>UACPI.KI#1: DetailPrint in outer process is ignored
|
|
||||||
<li>UACPI.KI#2: Elevation can fail if the installer is located on a remote share that requires authentication
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<a name="glossary"><h2>Glossary</h2></a><div class="CntSec">
|
|
||||||
<ul>
|
|
||||||
<li>AAM: Admin Approval Mode
|
|
||||||
<li>IL: Integrity level (Part of the new MIC/WIC security levels added to NT6)
|
|
||||||
<li>LUA: Limited/Least-privilege User Account
|
|
||||||
<li>MIC: <a href="http://en.wikipedia.org/wiki/Mandatory_Integrity_Control">Mandatory Integrity Controls</a> (Now known as WIC)
|
|
||||||
<li>UAC: User Account Control (Part of the UAP umbrella)
|
|
||||||
<li>UAP: User Account Protection
|
|
||||||
<li>WIC: <a href="http://www.securityfocus.com/infocus/1887">Windows Integrity Controls</a>
|
|
||||||
<li>Win32 error code: Standard windows error codes, ERROR_???
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body></html>
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
=======================
|
|
||||||
UAC helper include file
|
|
||||||
.......................
|
|
||||||
|
|
||||||
Macros starting with UAC.I should only be called from the installer and vice versa for UAC.U macros.
|
|
||||||
|
|
||||||
*/
|
|
||||||
!ifndef UAC_HDR__INC
|
|
||||||
!define UAC_HDR__INC
|
|
||||||
!include LogicLib.nsh
|
|
||||||
|
|
||||||
!define UAC.RunElevatedAndProcessMessages 'UAC::RunElevated '
|
|
||||||
!define UAC.Unload 'UAC::Unload '
|
|
||||||
!define UAC.StackPush 'UAC::StackPush '
|
|
||||||
|
|
||||||
/*!macro _UAC.BuildOnInitElevationFunc _funcprefix
|
|
||||||
Function ${_funcprefix}onInit
|
|
||||||
!ifmacrodef
|
|
||||||
FunctionEnd
|
|
||||||
!macroend*/
|
|
||||||
|
|
||||||
!macro _UAC.GenerateSimpleFunction _funcprefix _funcName _funcCode
|
|
||||||
Function ${_funcprefix}${_funcName}
|
|
||||||
${_funcCode}
|
|
||||||
#messagebox mb_ok "${_funcprefix}${_funcName}"
|
|
||||||
FunctionEnd
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!macro _UAC.TryDef _d _v
|
|
||||||
!ifndef ${_d}
|
|
||||||
!define ${_d} "${_v}"
|
|
||||||
!endif
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!macro _UAC.InitStrings _modeprefix
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.UnDataFile "UAC.dat"
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvWinErr "Unable to elevate , error $0"
|
|
||||||
!ifNdef __UNINSTALL__
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvAbortReqAdmin "This installer requires admin access, aborting!"
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvMustTryAgain "This installer requires admin access, try again"
|
|
||||||
!else
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvAbortReqAdmin "This uninstaller requires admin access, aborting!"
|
|
||||||
!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvMustTryAgain "This uninstaller requires admin access, try again"
|
|
||||||
!endif
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!ifmacroNdef _UAC.GenerateUninstallerTango
|
|
||||||
!macro _UAC.GenerateUninstallerTango UninstallerFileName
|
|
||||||
!ifdef __GLOBAL__
|
|
||||||
!error "UAC: Needs to be called inside a function"
|
|
||||||
!endif
|
|
||||||
!ifNdef __UNINSTALL__
|
|
||||||
!error "UAC: _UAC.GenerateUninstallerTango should only be called by uninstaller, see http://forums.winamp.com/showthread.php?threadid=280330"
|
|
||||||
!endif
|
|
||||||
!ifNdef UAC_UNINSTALLERTANGOFORALLPLATFORMS
|
|
||||||
!include WinVer.nsh
|
|
||||||
!endif
|
|
||||||
!insertmacro _UAC.InitStrings 'U.'
|
|
||||||
ReadIniStr $0 "$ExeDir\${UACSTR.UnDataFile}" UAC "Un.Ready"
|
|
||||||
${IF} $0 != 1
|
|
||||||
!ifNdef UAC_UNINSTALLERTANGOFORALLPLATFORMS
|
|
||||||
${AndIf} ${AtLeastWinVista}
|
|
||||||
!endif
|
|
||||||
InitPluginsDir
|
|
||||||
WriteIniStr "$PluginsDir\${UACSTR.UnDataFile}" UAC "Un.Ready" 1
|
|
||||||
CopyFiles /SILENT "$EXEPATH" "$PluginsDir\${UninstallerFileName}"
|
|
||||||
StrCpy $0 ""
|
|
||||||
${IfThen} ${Silent} ${|} StrCpy $0 "/S " ${|}
|
|
||||||
ExecWait '"$PluginsDir\${UninstallerFileName}" $0/NCRC _?=$INSTDIR' $0
|
|
||||||
SetErrorLevel $0
|
|
||||||
Quit
|
|
||||||
${EndIf}
|
|
||||||
!macroend
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!ifmacroNdef _UAC.GenerateOnInitElevationCode
|
|
||||||
!macro _UAC.GenerateOnInitElevationCode _modeprefix
|
|
||||||
!ifndef __FUNCTION__
|
|
||||||
!error "UAC: Needs to be called inside a function"
|
|
||||||
!endif
|
|
||||||
!insertmacro _UAC.InitStrings ${_modeprefix}
|
|
||||||
!define _UAC.GOIECUniq L${__LINE__}
|
|
||||||
UAC_Elevate_${_UAC.GOIECUniq}:
|
|
||||||
UAC::RunElevated
|
|
||||||
StrCmp 1223 $0 UAC_ElevationAborted_${_UAC.GOIECUniq} ; UAC dialog aborted by user?
|
|
||||||
StrCmp 0 $0 0 UAC_Err_${_UAC.GOIECUniq} ; Error?
|
|
||||||
StrCmp 1 $1 0 UAC_Success_${_UAC.GOIECUniq} ;Are we the real deal or just the wrapper?
|
|
||||||
Quit
|
|
||||||
UAC_Err_${_UAC.GOIECUniq}:
|
|
||||||
MessageBox mb_iconstop "${UACSTR.${_modeprefix}ElvWinErr}"
|
|
||||||
Abort
|
|
||||||
UAC_ElevationAborted_${_UAC.GOIECUniq}:
|
|
||||||
MessageBox mb_iconstop "${UACSTR.${_modeprefix}ElvAbortReqAdmin}"
|
|
||||||
Abort
|
|
||||||
UAC_Success_${_UAC.GOIECUniq}:
|
|
||||||
# if $0==0 && $3==1, we are a member of the admin group (Any OS)
|
|
||||||
# if $0==0 && $1==0, UAC not supported (Probably <NT6), run as normal?
|
|
||||||
# if $0==0 && $1==3, we can try to elevate again
|
|
||||||
StrCmp 1 $3 /*+4*/ UAC_Done_${_UAC.GOIECUniq} ;Admin?
|
|
||||||
StrCmp 3 $1 0 UAC_ElevationAborted_${_UAC.GOIECUniq} ;Try again or abort?
|
|
||||||
MessageBox mb_iconexclamation "${UACSTR.${_modeprefix}ElvMustTryAgain}" ;Inform user...
|
|
||||||
goto UAC_Elevate_${_UAC.GOIECUniq} ;...lets try again
|
|
||||||
UAC_Done_${_UAC.GOIECUniq}:
|
|
||||||
!undef _UAC.GOIECUniq
|
|
||||||
!macroend
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!define UAC.I.Elevate.AdminOnly '!insertmacro UAC.I.Elevate.AdminOnly '
|
|
||||||
!macro UAC.I.Elevate.AdminOnly
|
|
||||||
!insertmacro _UAC.GenerateOnInitElevationCode 'I.'
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!define UAC.U.Elevate.AdminOnly '!insertmacro UAC.U.Elevate.AdminOnly '
|
|
||||||
!macro UAC.U.Elevate.AdminOnly _UninstallerName
|
|
||||||
!ifNdef UAC_DISABLEUNINSTALLERTANGO
|
|
||||||
!insertmacro _UAC.GenerateUninstallerTango "${_UninstallerName}"
|
|
||||||
!endif
|
|
||||||
!insertmacro _UAC.GenerateOnInitElevationCode 'U.'
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!define UAC.AutoCodeUnload '!insertmacro UAC.AutoCodeUnload '
|
|
||||||
!macro UAC.AutoCodeUnload _HasUninstaller
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "" .OnInstFailed '${UAC.Unload}'
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "" .OnInstSuccess '${UAC.Unload}'
|
|
||||||
!ifNdef MUI_INCLUDED
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "" .onUserAbort '${UAC.Unload}'
|
|
||||||
!else
|
|
||||||
!ifNdef MUI_CUSTOMFUNCTION_ABORT
|
|
||||||
!error "UAC: must call $$ {UAC.Unload} in MUI_CUSTOMFUNCTION_ABORT!"
|
|
||||||
!endif
|
|
||||||
!endif
|
|
||||||
!if "${_HasUninstaller}" != ""
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "un" .onUninstFailed '${UAC.Unload}'
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "un" .onUninstSuccess '${UAC.Unload}'
|
|
||||||
!ifNdef MUI_INCLUDED
|
|
||||||
!insertmacro _UAC.GenerateSimpleFunction "un" .onUserAbort '${UAC.Unload}'
|
|
||||||
!else
|
|
||||||
!ifNdef MUI_CUSTOMFUNCTION_ABORT
|
|
||||||
!error "UAC: must call $$ {UAC.Unload} in MUI_CUSTOMFUNCTION_(UN)ABORT!"
|
|
||||||
!endif
|
|
||||||
!endif
|
|
||||||
!endif
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!define UAC.FastCallFunctionAsUser '!insertmacro UAC.FastCallFunctionAsUser '
|
|
||||||
!macro UAC.FastCallFunctionAsUser _func _var
|
|
||||||
GetFunctionAddress ${_var} ${_func}
|
|
||||||
UAC::ExecCodeSegment ${_var}
|
|
||||||
!macroend
|
|
||||||
!define UAC.CallFunctionAsUser '!insertmacro UAC.CallFunctionAsUser '
|
|
||||||
!macro UAC.CallFunctionAsUser _func
|
|
||||||
push $R9
|
|
||||||
!insertmacro UAC.FastCallFunctionAsUser ${_func} $R9
|
|
||||||
pop $R9
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!define UAC.FastCallGetOuterInstanceHwndParent UAC::GetOuterHwnd
|
|
||||||
!define UAC.GetOuterInstanceHwndParent '!insertmacro UAC.GetOuterInstanceHwndParent '
|
|
||||||
!macro UAC.GetOuterInstanceHwndParent _var
|
|
||||||
push $0
|
|
||||||
${UAC.FastCallGetOuterInstanceHwndParent}
|
|
||||||
Exch $0
|
|
||||||
Pop ${_var}
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
!macro _UAC.DumpEx _disp _f _fp _v
|
|
||||||
${_f} ${_fp}
|
|
||||||
DetailPrint "${_disp}=${_v}"
|
|
||||||
!macroend
|
|
||||||
!macro _UAC.Dump _f _fp _v
|
|
||||||
!insertmacro _UAC.DumpEx `${_f}` `${_f}` `${_fp}` `${_v}`
|
|
||||||
!macroend
|
|
||||||
!macro _UAC.DbgDetailPrint
|
|
||||||
push $0
|
|
||||||
push $1
|
|
||||||
System::Call /NoUnload "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})"
|
|
||||||
System::Call "Kernel32::GetComputerName(t.r1,*i${NSIS_MAX_STRLEN})"
|
|
||||||
DetailPrint "$1\$0"
|
|
||||||
;!insertmacro _UAC.DumpEx "User" System::Call "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})" $0
|
|
||||||
!insertmacro _UAC.DumpEx "CmdLine" "" "" "$CmdLine"
|
|
||||||
!insertmacro _UAC.Dump UAC::IsAdmin "" $0
|
|
||||||
!insertmacro _UAC.Dump UAC::SupportsUAC "" $0
|
|
||||||
!insertmacro _UAC.Dump UAC::GetElevationType "" $0
|
|
||||||
pop $1
|
|
||||||
pop $0
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
!endif /* ifndef UAC_HDR__INC */
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
RequestExecutionLevel user /* RequestExecutionLevel REQUIRED! */
|
|
||||||
!define APPNAME "UAC_AdminOnly"
|
|
||||||
Name "${APPNAME}"
|
|
||||||
OutFile "${APPNAME}.exe"
|
|
||||||
ShowInstDetails show
|
|
||||||
|
|
||||||
!include UAC.nsh ;<<< New headerfile that does everything for you ;)
|
|
||||||
!include LogicLib.nsh
|
|
||||||
|
|
||||||
!define UACSTR.I.ElvAbortReqAdmin "This fancy app requires admin rights fool" ;custom error string, see _UAC.InitStrings macro in uac.nsh for more
|
|
||||||
|
|
||||||
Function .OnInit
|
|
||||||
${UAC.I.Elevate.AdminOnly}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function .OnInstFailed
|
|
||||||
${UAC.Unload}
|
|
||||||
FunctionEnd
|
|
||||||
Function .OnInstSuccess
|
|
||||||
${UAC.Unload}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function ExecCodeSegmentTest
|
|
||||||
${If} "$1" != "666, the # of the beast"
|
|
||||||
MessageBox mb_ok "uh oh"
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Section "Info"
|
|
||||||
!insertmacro _UAC.DbgDetailPrint
|
|
||||||
|
|
||||||
StrCpy $1 "666, the # of the beast"
|
|
||||||
!insertmacro UAC.CallFunctionAsUser ExecCodeSegmentTest
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
page InstFiles
|
|
||||||
|
|
||||||
/* LEGACY CODE: (now uses magic code from UAC.nsh)
|
|
||||||
Function .OnInit
|
|
||||||
UAC_Elevate:
|
|
||||||
UAC::RunElevated
|
|
||||||
StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
|
|
||||||
StrCmp 0 $0 0 UAC_Err ; Error?
|
|
||||||
StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
|
|
||||||
Quit
|
|
||||||
UAC_Err:
|
|
||||||
MessageBox mb_iconstop "Unable to elevate , error $0"
|
|
||||||
Abort
|
|
||||||
UAC_ElevationAborted:
|
|
||||||
/*System::Call "user32::CreateWindowEx(i ${WS_EX_TRANSPARENT}|${WS_EX_LAYERED}, t 'Button', t 'blah', i 0, i 10, i 10, i 10, i 10, i 0, i 0, i 0) i .r0"
|
|
||||||
ShowWindow $0 ${SW_SHOW}
|
|
||||||
System::Call "user32::SetForegroundWindow(i r0) i."
|
|
||||||
System::Call "user32::DestroyWindow(i r0) i."
|
|
||||||
* /
|
|
||||||
MessageBox mb_iconstop "This installer requires admin access, aborting!"
|
|
||||||
Abort
|
|
||||||
UAC_Success:
|
|
||||||
StrCmp 1 $3 +4 ;Admin?
|
|
||||||
StrCmp 3 $1 0 UAC_ElevationAborted ;Try again or abort?
|
|
||||||
MessageBox mb_iconstop "This installer requires admin access, try again" ;Inform user...
|
|
||||||
goto UAC_Elevate ;... and try again
|
|
||||||
FunctionEnd*/
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
This sample will try to elevate, but it will also allow non admin users to continue if they click cancel in the elevation dialog
|
|
||||||
*/
|
|
||||||
|
|
||||||
RequestExecutionLevel user /* RequestExecutionLevel REQUIRED! */
|
|
||||||
!define APPNAME "UAC_AllowLUA"
|
|
||||||
Name "${APPNAME}"
|
|
||||||
OutFile "${APPNAME}.exe"
|
|
||||||
ShowInstDetails show
|
|
||||||
!include UAC.nsh
|
|
||||||
|
|
||||||
|
|
||||||
Function .OnInstFailed
|
|
||||||
UAC::Unload ;Must call unload!
|
|
||||||
FunctionEnd
|
|
||||||
Function .OnInstSuccess
|
|
||||||
UAC::Unload ;Must call unload!
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function .OnInit
|
|
||||||
UAC::RunElevated
|
|
||||||
;MessageBox mb_iconinformation "Debug: UAC::RunElevated: $\n0(Error)=$0 $\n1(UACMode)=$1 $\n2=$2 $\nadmin=$3$\n$\n$CmdLine"
|
|
||||||
StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
|
|
||||||
StrCmp 0 $0 0 UAC_Err ; Error?
|
|
||||||
StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
|
|
||||||
Quit
|
|
||||||
UAC_Err:
|
|
||||||
MessageBox mb_iconstop "Unable to elevate , error $0"
|
|
||||||
Abort
|
|
||||||
UAC_ElevationAborted:
|
|
||||||
# elevation was aborted, we still run as normal
|
|
||||||
UAC_Success:
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Section "Info"
|
|
||||||
!insertmacro _UAC.DbgDetailPrint
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Page InstFiles
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
RequestExecutionLevel user /* RequestExecutionLevel REQUIRED! */
|
|
||||||
!define APPNAME "UAC_GetUserShellFolderPath"
|
|
||||||
Name "${APPNAME}"
|
|
||||||
OutFile "${APPNAME}.exe"
|
|
||||||
ShowInstDetails show
|
|
||||||
|
|
||||||
!include UAC.nsh
|
|
||||||
!include LogicLib.nsh
|
|
||||||
|
|
||||||
page instfiles
|
|
||||||
|
|
||||||
Function .onInit
|
|
||||||
${UAC.I.Elevate.AdminOnly}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
!ifndef CSIDL_PERSONAL
|
|
||||||
!define CSIDL_PERSONAL 0x0005 ;My Documents
|
|
||||||
!endif
|
|
||||||
Section
|
|
||||||
|
|
||||||
/*
|
|
||||||
You can specify a fallback value in the 2nd parameter, it is used if the installer is not elevated
|
|
||||||
or running on NT4/Win9x or on errors.
|
|
||||||
If you just want to check for success, use "" as the 2nd parameter and compare $0 with ""
|
|
||||||
*/
|
|
||||||
UAC::GetShellFolderPath ${CSIDL_PERSONAL} $Documents
|
|
||||||
DetailPrint MyDocs=$0
|
|
||||||
|
|
||||||
|
|
||||||
SectionEnd
|
|
||||||
@@ -1,235 +0,0 @@
|
|||||||
/*
|
|
||||||
This sample supports two modes, installing as a normal user (single user install) AND as admin (all users install)
|
|
||||||
This sample uses the registry plugin, so you need to download that if you don't already have it
|
|
||||||
*/
|
|
||||||
|
|
||||||
!define APPNAME "UAC_RealWorldFullyLoadedDualMode"
|
|
||||||
!define ELEVATIONTITLE "${APPNAME}: Elevate" ;displayed during elevation on our custom page
|
|
||||||
!define UNINSTALLER_NAME "Uninstall ${APPNAME}.exe"
|
|
||||||
!define UNINSTALLER_REGSECTION "${APPNAME}"
|
|
||||||
!define RegPath.MSUninstall "Software\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
||||||
Name "${APPNAME}"
|
|
||||||
OutFile "${APPNAME}.exe"
|
|
||||||
ShowInstDetails show
|
|
||||||
SetCompressor LZMA
|
|
||||||
RequestExecutionLevel user /* RequestExecutionLevel REQUIRED! */
|
|
||||||
!include MUI.nsh
|
|
||||||
!include UAC.nsh
|
|
||||||
!include LogicLib.nsh
|
|
||||||
!include Registry.nsh
|
|
||||||
!include nsDialogs.nsh ;for our custom page
|
|
||||||
!include FileFunc.nsh ;we need to parse the command line
|
|
||||||
|
|
||||||
!insertmacro GetParameters
|
|
||||||
!insertmacro GetOptions
|
|
||||||
|
|
||||||
!define MUI_CUSTOMFUNCTION_ABORT onAbort
|
|
||||||
!define MUI_CUSTOMFUNCTION_GUIINIT onGuiInit
|
|
||||||
!define MUI_COMPONENTSPAGE_NODESC
|
|
||||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
|
||||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\llama-blue.ico"
|
|
||||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\llama-blue.ico"
|
|
||||||
!define MUI_WELCOMEPAGE_TITLE_3LINES
|
|
||||||
|
|
||||||
var InstMode # 0: Single user, 1:All users, >1:elevated instance, perform page jump
|
|
||||||
var hKey # Reg hive
|
|
||||||
var hSelModeAdminRadio
|
|
||||||
var StartMenuFolder
|
|
||||||
|
|
||||||
!macro SetMode IsAdmin
|
|
||||||
!if "${IsAdmin}" > 0
|
|
||||||
SetShellVarContext all
|
|
||||||
StrCpy $InstMode 1
|
|
||||||
StrCpy $hKey HKLM
|
|
||||||
!else
|
|
||||||
SetShellVarContext current
|
|
||||||
StrCpy $InstMode 0
|
|
||||||
StrCpy $hKey HKCU
|
|
||||||
!endif
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
Function .OnInit
|
|
||||||
!insertmacro SetMode 0
|
|
||||||
${GetParameters} $R9
|
|
||||||
${GetOptions} "$R9" UAC $0 ;look for special /UAC:???? parameter (sort of undocumented)
|
|
||||||
${Unless} ${Errors}
|
|
||||||
UAC::IsAdmin
|
|
||||||
${If} $0 < 1
|
|
||||||
SetErrorLevel 666 ;special return value for outer instance so it knows we did not have admin rights
|
|
||||||
Quit
|
|
||||||
${EndIf}
|
|
||||||
!insertmacro SetMode 1
|
|
||||||
StrCpy $InstMode 2
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function onGuiInit
|
|
||||||
${If} $InstMode >= 2
|
|
||||||
${UAC.GetOuterInstanceHwndParent} $0
|
|
||||||
${If} $0 <> 0
|
|
||||||
System::Call /NOUNLOAD "*(i,i,i,i)i.r1"
|
|
||||||
System::Call /NOUNLOAD 'user32::GetWindowRect(i $0,i r1)i.r2'
|
|
||||||
${If} $2 <> 0
|
|
||||||
System::Call /NOUNLOAD "*$1(i.r2,i.r3)"
|
|
||||||
System::Call /NOUNLOAD 'user32::SetWindowPos(i $hwndParent,i0,ir2,ir3,i0,i0,i 4|1)'
|
|
||||||
${EndIf}
|
|
||||||
ShowWindow $hwndParent ${SW_SHOW}
|
|
||||||
ShowWindow $0 ${SW_HIDE} ;hide outer instance installer window
|
|
||||||
System::Free $1
|
|
||||||
${EndIf}
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function Un.OnInit
|
|
||||||
!insertmacro SetMode 0
|
|
||||||
ReadRegDWORD $0 HKLM "${RegPath.MSUninstall}\${UNINSTALLER_REGSECTION}" InstMode ;We saved the "mode" in the installer
|
|
||||||
${If} $0 U> 0
|
|
||||||
; If it was installed for all users, we have to be admin to uninstall it
|
|
||||||
${UAC.U.Elevate.AdminOnly} "${UNINSTALLER_NAME}"
|
|
||||||
!insertmacro SetMode 1
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function onAbort
|
|
||||||
${UAC.Unload}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
${UAC.AutoCodeUnload} 1 ;Auto-generate .OnInstFailed and .OnInstSuccess functions
|
|
||||||
|
|
||||||
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipPageInElvModePreCB
|
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
|
||||||
Page Custom ModeSelectionPageCreate ModeSelectionPageLeave
|
|
||||||
!define MUI_PAGE_CUSTOMFUNCTION_PRE CmpntsPreCB
|
|
||||||
!insertmacro MUI_PAGE_COMPONENTS
|
|
||||||
!define MUI_PAGE_CUSTOMFUNCTION_PRE DirPreCB
|
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
|
||||||
!insertmacro MUI_PAGE_STARTMENU 1 $StartMenuFolder
|
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
|
||||||
!define MUI_FINISHPAGE_TITLE_3LINES
|
|
||||||
!define MUI_FINISHPAGE_RUN
|
|
||||||
!define MUI_FINISHPAGE_RUN_FUNCTION FinishRunCB
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
|
||||||
!define MUI_WELCOMEPAGE_TITLE_3LINES
|
|
||||||
!insertmacro MUI_UNPAGE_WELCOME
|
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
|
||||||
|
|
||||||
Function CmpntsPreCB
|
|
||||||
GetDlgItem $0 $hwndparent 3
|
|
||||||
${IfThen} $InstMode >= 1 ${|} EnableWindow $0 0 ${|} ;prevent user from going back and selecting single user so noobs don't end up installing as the wrong user
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function SkipPageInElvModePreCB
|
|
||||||
${IfThen} $InstMode > 1 ${|} Abort ${|} ;skip this page so we get to the mode selection page
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function ModeSelectionPageCreate
|
|
||||||
${If} $InstMode > 1
|
|
||||||
StrCpy $InstMode 1
|
|
||||||
Abort ;skip this page and contine where the "parent" would have gone
|
|
||||||
${EndIf}
|
|
||||||
!insertmacro MUI_HEADER_TEXT_PAGE "Select install type" "Blah blah blah blah"
|
|
||||||
nsDialogs::Create /NOUNLOAD 1018
|
|
||||||
Pop $0
|
|
||||||
${NSD_CreateLabel} 0 20u 75% 20u "Blah blah blah blah select install type..."
|
|
||||||
Pop $0
|
|
||||||
System::Call "advapi32::GetUserName(t.r0, *i ${NSIS_MAX_STRLEN}r1) i.r2"
|
|
||||||
${NSD_CreateRadioButton} 0 40u 75% 15u "Single User ($0)"
|
|
||||||
Pop $0
|
|
||||||
${IfThen} $InstMode U< 1 ${|} SendMessage $0 ${BM_SETCHECK} 1 0 ${|}
|
|
||||||
${NSD_CreateRadioButton} 0 60u 75% 15u "All users"
|
|
||||||
Pop $hSelModeAdminRadio
|
|
||||||
${IfThen} $InstMode U> 0 ${|} SendMessage $hSelModeAdminRadio ${BM_SETCHECK} 1 0 ${|}
|
|
||||||
nsDialogs::Show
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
!macro EnableCtrl dlg id state
|
|
||||||
push $language
|
|
||||||
GetDlgItem $language ${dlg} ${id}
|
|
||||||
EnableWindow $language ${state}
|
|
||||||
pop $language
|
|
||||||
!macroend
|
|
||||||
|
|
||||||
Function ModeSelectionPageLeave
|
|
||||||
SendMessage $hSelModeAdminRadio ${BM_GETCHECK} 0 0 $9
|
|
||||||
UAC::IsAdmin
|
|
||||||
${If} $9 U> 0
|
|
||||||
${If} $0 <> 0
|
|
||||||
!insertmacro SetMode 1
|
|
||||||
${Else}
|
|
||||||
System::Call /NoUnload 'user32::GetWindowText(i $HwndParent,t.R1,i ${NSIS_MAX_STRLEN})' ;get original window title
|
|
||||||
System::Call /NoUnload 'user32::SetWindowText(i $HwndParent,t "${ELEVATIONTITLE}")' ;set out special title
|
|
||||||
StrCpy $2 "" ;reset special return, only gets set when sub process is executed, not when user cancels
|
|
||||||
!insertmacro EnableCtrl $HWNDParent 1 0 ;Disable next button, just because it looks good ;)
|
|
||||||
${UAC.RunElevatedAndProcessMessages}
|
|
||||||
!insertmacro EnableCtrl $HWNDParent 1 1
|
|
||||||
System::Call 'user32::SetWindowText(i $HwndParent,t "$R1")' ;restore title
|
|
||||||
${If} $2 = 666 ;our special return, the new process was not admin after all
|
|
||||||
MessageBox mb_iconExclamation "You need to login with an account that is a member of the admin group to continue..."
|
|
||||||
Abort
|
|
||||||
${ElseIf} $0 = 1223 ;cancel
|
|
||||||
Abort
|
|
||||||
${Else}
|
|
||||||
${If} $0 <> 0
|
|
||||||
${If} $0 = 1062
|
|
||||||
MessageBox mb_iconstop "Unable to elevate, Secondary Logon service not running!"
|
|
||||||
${Else}
|
|
||||||
MessageBox mb_iconstop "Unable to elevate, error $0 ($1,$2,$3)"
|
|
||||||
${EndIf}
|
|
||||||
Abort
|
|
||||||
${EndIf}
|
|
||||||
${EndIf}
|
|
||||||
Quit ;We now have a new process, the install will continue there, we have nothing left to do here
|
|
||||||
${EndIf}
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function DirPreCB
|
|
||||||
${If} $InstDir == ""
|
|
||||||
${If} $InstMode U> 0
|
|
||||||
StrCpy $InstDir "$ProgramFiles\${APPNAME}"
|
|
||||||
${Else}
|
|
||||||
StrCpy $InstDir "$APPDATA\${APPNAME}"
|
|
||||||
${EndIf}
|
|
||||||
${EndIf}
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function FinishRunCB
|
|
||||||
UAC::Exec "" "Notepad.exe" "$Windir\Win.INI" "$InstDir"
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function CreateSMShortcuts
|
|
||||||
CreateShortcut "$SMPrograms\${APPNAME}.lnk" "$Windir\Notepad.exe"
|
|
||||||
FunctionEnd
|
|
||||||
Function CreateDeskShortcuts
|
|
||||||
CreateShortcut "$Desktop\${APPNAME}.lnk" "$Windir\Notepad.exe"
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Section "!Required files"
|
|
||||||
SectionIn RO
|
|
||||||
SetOutPath -
|
|
||||||
!insertmacro _UAC.DbgDetailPrint ;some debug info, useful during testing
|
|
||||||
;Install files here...
|
|
||||||
WriteUninstaller "$InstDir\${UNINSTALLER_NAME}"
|
|
||||||
${registry::Write} "$hKey\${RegPath.MSUninstall}\${UNINSTALLER_REGSECTION}" DisplayName "${APPNAME}" REG_SZ $0
|
|
||||||
${registry::Write} "$hKey\${RegPath.MSUninstall}\${UNINSTALLER_REGSECTION}" UninstallString "$InstDir\${UNINSTALLER_NAME}" REG_SZ $0
|
|
||||||
${registry::Write} "$hKey\${RegPath.MSUninstall}\${UNINSTALLER_REGSECTION}" InstMode $InstMode REG_DWORD $0
|
|
||||||
${registry::Unload}
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
Section "Startmenu Shortcuts"
|
|
||||||
${UAC.CallFunctionAsUser} CreateSMShortcuts
|
|
||||||
SectionEnd
|
|
||||||
Section "Desktop Shortcut"
|
|
||||||
${UAC.CallFunctionAsUser} CreateDeskShortcuts
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
Section Uninstall
|
|
||||||
Delete "$InstDir\${UNINSTALLER_NAME}"
|
|
||||||
Delete "$SMPrograms\${APPNAME}.lnk"
|
|
||||||
Delete "$Desktop\${APPNAME}.lnk"
|
|
||||||
|
|
||||||
RMDir "$InstDir"
|
|
||||||
${registry::DeleteKey} "$hKey\${RegPath.MSUninstall}\${UNINSTALLER_REGSECTION}" $0
|
|
||||||
${registry::Unload}
|
|
||||||
SectionEnd
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
This script was made in response to http://forums.winamp.com/showthread.php?threadid=280330
|
|
||||||
It is a ugly hack and is mostly here just to have a solution right now.
|
|
||||||
Hopefully, NSIS will add support for changing the RequestExecutionLevel of the uninstaller
|
|
||||||
This code inspired the _UAC.GenerateUninstallerTango macro (called by ${UAC.U.Elevate.AdminOnly} unless you define UAC_DISABLEUNINSTALLERTANGO)
|
|
||||||
*/
|
|
||||||
|
|
||||||
RequestExecutionLevel user /* RequestExecutionLevel REQUIRED! */
|
|
||||||
!define APPNAME "UAC_Uninstaller"
|
|
||||||
Name "${APPNAME}"
|
|
||||||
OutFile "${APPNAME}.exe"
|
|
||||||
ShowInstDetails show
|
|
||||||
!include LogicLib.nsh
|
|
||||||
|
|
||||||
!define UNINSTALLER_UACDATA "uac.ini"
|
|
||||||
!define UNINSTALLER_NAME "Uninstall FooBarBaz"
|
|
||||||
|
|
||||||
Function un.onInit
|
|
||||||
ReadIniStr $0 "$ExeDir\${UNINSTALLER_UACDATA}" UAC "Un.First"
|
|
||||||
${IF} $0 != 1
|
|
||||||
;SetSilent silent
|
|
||||||
InitPluginsDir
|
|
||||||
WriteIniStr "$PluginsDir\${UNINSTALLER_UACDATA}" UAC "Un.First" 1
|
|
||||||
CopyFiles /SILENT "$EXEPATH" "$PluginsDir\${UNINSTALLER_NAME}.exe"
|
|
||||||
StrCpy $0 ""
|
|
||||||
${IfThen} ${Silent} ${|} StrCpy $0 "/S " ${|}
|
|
||||||
ExecWait '"$PluginsDir\${UNINSTALLER_NAME}.exe" $0/NCRC _?=$INSTDIR' $0
|
|
||||||
SetErrorLevel $0
|
|
||||||
Quit
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
# UAC code goes here ...
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Section
|
|
||||||
WriteUninstaller "$exedir\${UNINSTALLER_NAME}.exe"
|
|
||||||
SetAutoClose true
|
|
||||||
DetailPrint "Uninstalling..."
|
|
||||||
Sleep 1111
|
|
||||||
Exec '"$exedir\${UNINSTALLER_NAME}.exe"'
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
Section uninstall
|
|
||||||
MessageBox mb_ok "My filename is: $EXEFILE"
|
|
||||||
Delete "$instdir\${UNINSTALLER_NAME}.exe"
|
|
||||||
Delete "$instdir\${APPNAME}.exe" ;delete generated installer aswell, this is just a sample script
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
page InstFiles
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
|
||||||
// Microsoft Developer Studio generated include file.
|
|
||||||
// Used by resource.rc
|
|
||||||
//
|
|
||||||
#define IDD_MYRUNAS 101
|
|
||||||
#define IDC_RUNASCURR 1000
|
|
||||||
#define IDC_RUNASSPEC 1001
|
|
||||||
#define IDC_SHICON 1002
|
|
||||||
#define IDC_HELPTEXT 1003
|
|
||||||
#define IDC_USERNAME 1004
|
|
||||||
#define IDC_PASSWORD 1005
|
|
||||||
#define IDC_LBLUSER 1007
|
|
||||||
#define IDC_LBLPWD 1008
|
|
||||||
|
|
||||||
// Next default values for new objects
|
|
||||||
//
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1009
|
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
//Microsoft Developer Studio generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#include "afxres.h"
|
|
||||||
#include "uac.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_MYRUNAS DIALOG DISCARDABLE 0, 0, 250, 145
|
|
||||||
STYLE DS_MODALFRAME | DS_NOIDLEMSG | DS_SETFOREGROUND | DS_FIXEDSYS |
|
|
||||||
DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
FONT 8, "MS Shell Dlg"
|
|
||||||
BEGIN
|
|
||||||
DEFPUSHBUTTON "&OK",IDOK,132,122,50,14
|
|
||||||
PUSHBUTTON "Ca&ncel",IDCANCEL,188,122,50,14
|
|
||||||
ICON "",IDC_SHICON,7,7,20,20
|
|
||||||
LTEXT "",IDC_HELPTEXT,34,7,204,35
|
|
||||||
CONTROL "",IDC_RUNASCURR,"Button",BS_AUTORADIOBUTTON,20,49,218,
|
|
||||||
10
|
|
||||||
CONTROL "",IDC_RUNASSPEC,"Button",BS_AUTORADIOBUTTON,20,65,218,
|
|
||||||
10
|
|
||||||
LTEXT "&User name:",IDC_LBLUSER,20,84,42,16
|
|
||||||
EDITTEXT IDC_USERNAME,63,83,175,14,ES_AUTOHSCROLL
|
|
||||||
LTEXT "&Password:",IDC_LBLPWD,20,102,42,20
|
|
||||||
EDITTEXT IDC_PASSWORD,63,100,175,14,ES_PASSWORD | ES_AUTOHSCROLL
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// DESIGNINFO
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
GUIDELINES DESIGNINFO DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDD_MYRUNAS, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 238
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 136
|
|
||||||
END
|
|
||||||
END
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"#include ""afxres.h""\r\n"
|
|
||||||
"#include ""uac.h""\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,169 +0,0 @@
|
|||||||
//Copyright (C) 2007 Anders Kjersem. Licensed under the zlib/libpng license, see License.txt for details.
|
|
||||||
#pragma once
|
|
||||||
/** /#define BUILD_DBGRELEASE // Include simple debug output in release version */
|
|
||||||
/** /#define BUILD_DBGSELECTELVMODE //Test MyRunAs*/
|
|
||||||
|
|
||||||
/** /#define UNICODE // Unicode build */
|
|
||||||
/**/#define FEAT_CUSTOMRUNASDLG // Include custom runas dialog */
|
|
||||||
/**/#define FEAT_CUSTOMRUNASDLG_TRANSLATE //*/
|
|
||||||
/**/#define FEAT_MSRUNASDLGMODHACK // Default to other user radio button */
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(APSTUDIO_INVOKED) && !defined(RC_INVOKED)
|
|
||||||
|
|
||||||
#if (defined(_MSC_VER) && !defined(_DEBUG))
|
|
||||||
#pragma comment(linker,"/opt:nowin98")
|
|
||||||
#pragma comment(linker,"/ignore:4078")
|
|
||||||
#pragma comment(linker,"/merge:.rdata=.text")
|
|
||||||
|
|
||||||
//#pragma intrinsic(memset) //http://www.codeguru.com/forum/showthread.php?t=371491&page=2&pp=15 | http://www.ddj.com/windows/184416623
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(UNICODE) && !defined(_UNICODE)
|
|
||||||
#define _UNICODE
|
|
||||||
#endif
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define TFUNCSUFFIX W
|
|
||||||
#else
|
|
||||||
#define TFUNCSUFFIX A
|
|
||||||
#endif
|
|
||||||
#define _PCJOIN(a,b) a##b
|
|
||||||
#define PCJOIN(a,b) _PCJOIN(a,b)
|
|
||||||
|
|
||||||
|
|
||||||
#define _WIN32_WINNT 0x0501
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#include <windows.h>
|
|
||||||
#include <ShellAPI.h>
|
|
||||||
#include <TChar.h>
|
|
||||||
#include "NSISUtil.h"
|
|
||||||
|
|
||||||
#ifndef SEE_MASK_NOZONECHECKS
|
|
||||||
#define SEE_MASK_NOZONECHECKS 0x00800000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define COUNTOF(___c) ( sizeof(___c)/sizeof(___c[0]) )
|
|
||||||
#ifndef ARRAYSIZE
|
|
||||||
#define ARRAYSIZE COUNTOF
|
|
||||||
#endif
|
|
||||||
#define FORCEINLINE __forceinline
|
|
||||||
|
|
||||||
#if _MSC_VER >= 1400
|
|
||||||
extern void* __cdecl memset(void*mem,int c,size_t len);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
FORCEINLINE LRESULT MySndDlgItemMsg(HWND hDlg,int id,UINT Msg,WPARAM wp=0,LPARAM lp=0) {return SendMessage(GetDlgItem(hDlg,id),Msg,wp,lp);}
|
|
||||||
#ifndef UAC_NOCUSTOMIMPLEMENTATIONS
|
|
||||||
FORCEINLINE HANDLE WINAPI GetCurrentProcess(){return ((HANDLE)(-1));}
|
|
||||||
FORCEINLINE HANDLE WINAPI GetCurrentThread(){return ((HANDLE)(-2));}
|
|
||||||
|
|
||||||
#define MyTStrLen lstrlen
|
|
||||||
|
|
||||||
#undef lstrcpy
|
|
||||||
#define lstrcpy MyTStrCpy
|
|
||||||
FORCEINLINE LPTSTR MyTStrCpy(LPTSTR s1,LPCTSTR s2) {return PCJOIN(lstr,PCJOIN(cpyn,TFUNCSUFFIX))(s1,s2,0x7FFFFFFF);}
|
|
||||||
|
|
||||||
#undef lstrcat
|
|
||||||
#define lstrcat MyTStrCat
|
|
||||||
LPTSTR MyTStrCat(LPTSTR s1,LPCTSTR s2)
|
|
||||||
#ifdef UAC_INITIMPORTS
|
|
||||||
{return s1?MyTStrCpy(&s1[MyTStrLen(s1)],s2):NULL;}
|
|
||||||
#else
|
|
||||||
;
|
|
||||||
#endif //UAC_INITIMPORTS
|
|
||||||
|
|
||||||
#endif //UAC_NOCUSTOMIMPLEMENTATIONS
|
|
||||||
|
|
||||||
|
|
||||||
//DelayLoaded functions:
|
|
||||||
typedef BOOL (WINAPI*ALLOWSETFOREGROUNDWINDOW)(DWORD dwProcessId);
|
|
||||||
typedef BOOL (WINAPI*OPENPROCESSTOKEN)(HANDLE ProcessHandle,DWORD DesiredAccess,PHANDLE TokenHandle);
|
|
||||||
typedef BOOL (WINAPI*OPENTHREADTOKEN)(HANDLE ThreadHandle,DWORD DesiredAccess,BOOL OpenAsSelf,PHANDLE TokenHandle);
|
|
||||||
typedef BOOL (WINAPI*GETTOKENINFORMATION)(HANDLE hToken,TOKEN_INFORMATION_CLASS TokInfoClass,LPVOID TokInfo,DWORD TokInfoLenh,PDWORD RetLen);
|
|
||||||
typedef BOOL (WINAPI*ALLOCATEANDINITIALIZESID)(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount,DWORD sa0,DWORD sa1,DWORD sa2,DWORD sa3,DWORD sa4,DWORD sa5,DWORD sa6,DWORD sa7,PSID*pSid);
|
|
||||||
typedef PVOID (WINAPI*FREESID)(PSID pSid);
|
|
||||||
typedef BOOL (WINAPI*EQUALSID)(PSID pSid1,PSID pSid2);
|
|
||||||
typedef BOOL (WINAPI*CHECKTOKENMEMBERSHIP)(HANDLE TokenHandle,PSID SidToCheck,PBOOL IsMember);
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG
|
|
||||||
typedef BOOL (WINAPI*GETUSERNAME)(LPTSTR lpBuffer,LPDWORD nSize);
|
|
||||||
typedef BOOL (WINAPI*CREATEPROCESSWITHLOGONW)(LPCWSTR lpUsername,LPCWSTR lpDomain,LPCWSTR lpPassword,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID pEnv,LPCWSTR WorkDir,LPSTARTUPINFOW pSI,LPPROCESS_INFORMATION pPI);
|
|
||||||
#define SECURITY_WIN32
|
|
||||||
#include <Security.h>//NameSamCompatible
|
|
||||||
typedef BOOLEAN (WINAPI*GETUSERNAMEEX)(EXTENDED_NAME_FORMAT NameFormat,LPTSTR lpNameBuffer,PULONG nSize);
|
|
||||||
#endif
|
|
||||||
#ifdef UAC_INITIMPORTS
|
|
||||||
ALLOWSETFOREGROUNDWINDOW _AllowSetForegroundWindow=0;
|
|
||||||
OPENPROCESSTOKEN _OpenProcessToken=0;
|
|
||||||
OPENTHREADTOKEN _OpenThreadToken=0;
|
|
||||||
GETTOKENINFORMATION _GetTokenInformation=0;
|
|
||||||
ALLOCATEANDINITIALIZESID _AllocateAndInitializeSid=0;
|
|
||||||
FREESID _FreeSid=0;
|
|
||||||
EQUALSID _EqualSid=0;
|
|
||||||
CHECKTOKENMEMBERSHIP _CheckTokenMembership=0;
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG
|
|
||||||
GETUSERNAME _GetUserName=0;
|
|
||||||
GETUSERNAMEEX _GetUserNameEx=0;
|
|
||||||
CREATEPROCESSWITHLOGONW _CreateProcessWithLogonW=0;
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG
|
|
||||||
extern GETUSERNAME _GetUserName;
|
|
||||||
extern GETUSERNAMEEX _GetUserNameEx;
|
|
||||||
extern CREATEPROCESSWITHLOGONW _CreateProcessWithLogonW;
|
|
||||||
#endif
|
|
||||||
#endif /* UAC_INITIMPORTS */
|
|
||||||
|
|
||||||
|
|
||||||
extern DWORD DelayLoadDlls();
|
|
||||||
#ifdef FEAT_CUSTOMRUNASDLG
|
|
||||||
extern DWORD MyRunAs(HINSTANCE hInstDll,SHELLEXECUTEINFO&sei);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(NTDDI_VISTA) || defined(BUILD_OLDSDK)
|
|
||||||
//#if !defined(NTDDI_VERSION) || (NTDDI_VERSION < 0x06000000) || !defined(NTDDI_VISTA)
|
|
||||||
//#if !defined(TOKEN_ELEVATION_TYPE) || defined(BUILD_OLDSDK)
|
|
||||||
enum TOKEN_ELEVATION_TYPE {
|
|
||||||
TokenElevationTypeDefault = 1,
|
|
||||||
TokenElevationTypeFull,
|
|
||||||
TokenElevationTypeLimited
|
|
||||||
};
|
|
||||||
enum _TOKEN_INFORMATION_CLASS___VISTA {
|
|
||||||
TokenElevationType = (TokenOrigin+1),
|
|
||||||
TokenLinkedToken,
|
|
||||||
TokenElevation,
|
|
||||||
TokenHasRestrictions,
|
|
||||||
TokenAccessInformation,
|
|
||||||
TokenVirtualizationAllowed,
|
|
||||||
TokenVirtualizationEnabled,
|
|
||||||
TokenIntegrityLevel,
|
|
||||||
TokenUIAccess,
|
|
||||||
TokenMandatoryPolicy,
|
|
||||||
TokenLogonSid,
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(_DEBUG) || defined(BUILD_DBGRELEASE)
|
|
||||||
//Simple debug helpers:
|
|
||||||
#define BUILD_DBG
|
|
||||||
/** /#define BUILD_XPTEST //Pretend UAC exists and "elevate" with NT runas */
|
|
||||||
#define DBG_RESETDBGVIEW() do{HWND hDbgView=FindWindowA("dbgviewClass",0);PostMessage(hDbgView,WM_COMMAND,40020,0);if(0)SetForegroundWindow(hDbgView);}while(0)
|
|
||||||
#define _pp_MakeStr_(x) #x
|
|
||||||
#define pp_MakeStr(x) _pp_MakeStr_(x)
|
|
||||||
#define TRACE OutputDebugStringA
|
|
||||||
#define DBGONLY(_x) _x
|
|
||||||
#ifndef ASSERT
|
|
||||||
#define ASSERT(_x) do{if(!(_x)){MessageBoxA(GetActiveWindow(),#_x##"\n\n"##__FILE__##":"## pp_MakeStr(__LINE__),"SimpleAssert",0);/*TRACE(#_x##"\n"##__FILE__##":" pp_MakeStr(__LINE__)"\n");*/}}while(0)
|
|
||||||
#endif
|
|
||||||
#define VERIFY(_x) ASSERT(_x)
|
|
||||||
static void TRACEF(const char*fmt,...) {va_list a;va_start(a,fmt);static TCHAR b[1024*4];if (sizeof(TCHAR)!=sizeof(char)){static TCHAR fmtBuf[COUNTOF(b)];VERIFY(wsprintf(fmtBuf,_T("%hs"),fmt)<COUNTOF(fmtBuf));fmt=(LPCSTR)fmtBuf;}wvsprintf(b,(TCHAR*)fmt,a);OutputDebugString(b);}
|
|
||||||
#else
|
|
||||||
#define TRACE /*(void)0*/
|
|
||||||
#define DBGONLY(_x)
|
|
||||||
#define ASSERT(_x)
|
|
||||||
#define VERIFY(_x) ((void)(_x))
|
|
||||||
#define TRACEF TRACE
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
#endif /* APSTUDIO_INVOKED */
|
|
||||||
|
|
||||||
2
binary
2
binary
Submodule binary updated: 82d72bc62d...8b72648a93
@@ -1,19 +1,21 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/mirall">
|
<qresource prefix="/client">
|
||||||
<file>resources/dialog-close.png</file>
|
<file>resources/dialog-close.png</file>
|
||||||
<file>resources/dialog-ok.png</file>
|
<file>resources/dialog-ok.png</file>
|
||||||
<file>resources/dialog-cancel.png</file>
|
<file>resources/dialog-cancel.png</file>
|
||||||
<file>resources/folder-remote-32.png</file>
|
|
||||||
<file>resources/folder-remote.png</file>
|
|
||||||
<file>resources/folder-sync.png</file>
|
<file>resources/folder-sync.png</file>
|
||||||
<file>resources/folder-grey.png</file>
|
<file>resources/folder-sync@2x.png</file>
|
||||||
<file>resources/task-ongoing.png</file>
|
<file>resources/task-ongoing.png</file>
|
||||||
<file>resources/view-refresh.png</file>
|
<file>resources/view-refresh.png</file>
|
||||||
<file>resources/warning-16.png</file>
|
<file>resources/warning.png</file>
|
||||||
|
<file>resources/warning@2x.png</file>
|
||||||
<file>resources/settings.png</file>
|
<file>resources/settings.png</file>
|
||||||
<file>resources/activity.png</file>
|
<file>resources/activity.png</file>
|
||||||
<file>resources/network.png</file>
|
<file>resources/network.png</file>
|
||||||
<file>resources/lock-http.png</file>
|
<file>resources/lock-http.png</file>
|
||||||
<file>resources/lock-https.png</file>
|
<file>resources/lock-http@2x.png</file>
|
||||||
|
<file>resources/lock-https.png</file>
|
||||||
|
<file>resources/lock-https@2x.png</file>
|
||||||
|
<file>resources/account.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
|
SET(WINDRES_EXECUTABLE_BASE ${CMAKE_RC_COMPILER})
|
||||||
|
|
||||||
# This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake.
|
# This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake.
|
||||||
#
|
#
|
||||||
@@ -21,7 +21,7 @@ macro (KDE4_ADD_APP_ICON appsources pattern)
|
|||||||
else(NOT WINCE)
|
else(NOT WINCE)
|
||||||
find_program(PNG2ICO_EXECUTABLE NAMES png2ico PATHS ${HOST_BINDIR} NO_DEFAULT_PATH )
|
find_program(PNG2ICO_EXECUTABLE NAMES png2ico PATHS ${HOST_BINDIR} NO_DEFAULT_PATH )
|
||||||
endif(NOT WINCE)
|
endif(NOT WINCE)
|
||||||
find_program(WINDRES_EXECUTABLE NAMES windres)
|
find_program(WINDRES_EXECUTABLE NAMES ${WINDRES_EXECUTABLE_BASE})
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(WINDRES_EXECUTABLE TRUE)
|
set(WINDRES_EXECUTABLE TRUE)
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
|
|||||||
|
|
||||||
# add -Wconversion ?
|
# add -Wconversion ?
|
||||||
# cannot be pedantic with sqlite3 directly linked
|
# cannot be pedantic with sqlite3 directly linked
|
||||||
if (NOT CSYNC_STATIC_COMPILE_DIR)
|
# FIXME Can we somehow not use those flags for sqlite3.* but use them for the rest of csync?
|
||||||
|
if (NOT USE_OUR_OWN_SQLITE3)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -pedantic -pedantic-errors")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -pedantic -pedantic-errors")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wmissing-prototypes")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wmissing-prototypes")
|
||||||
|
|||||||
@@ -9,7 +9,12 @@
|
|||||||
# QTKEYCHAIN_LIBRARIES - The libraries needed to use QtKeychain
|
# QTKEYCHAIN_LIBRARIES - The libraries needed to use QtKeychain
|
||||||
# QTKEYCHAIN_DEFINITIONS - Compiler switches required for using LibXml2
|
# QTKEYCHAIN_DEFINITIONS - Compiler switches required for using LibXml2
|
||||||
|
|
||||||
find_path(QTKEYCHAIN_INCLUDE_DIR qt5keychain/keychain.h)
|
find_path(QTKEYCHAIN_INCLUDE_DIR
|
||||||
|
NAMES
|
||||||
|
keychain.h
|
||||||
|
PATH_SUFFIXES
|
||||||
|
qt5keychain
|
||||||
|
)
|
||||||
|
|
||||||
find_library(QTKEYCHAIN_LIBRARY
|
find_library(QTKEYCHAIN_LIBRARY
|
||||||
NAMES
|
NAMES
|
||||||
|
|||||||
@@ -9,7 +9,13 @@
|
|||||||
# QTKEYCHAIN_LIBRARIES - The libraries needed to use QtKeychain
|
# QTKEYCHAIN_LIBRARIES - The libraries needed to use QtKeychain
|
||||||
# QTKEYCHAIN_DEFINITIONS - Compiler switches required for using LibXml2
|
# QTKEYCHAIN_DEFINITIONS - Compiler switches required for using LibXml2
|
||||||
|
|
||||||
find_path(QTKEYCHAIN_INCLUDE_DIR qtkeychain/keychain.h)
|
find_path(QTKEYCHAIN_INCLUDE_DIR
|
||||||
|
NAMES
|
||||||
|
keychain.h
|
||||||
|
PATH_SUFFIXES
|
||||||
|
qtkeychain
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
find_library(QTKEYCHAIN_LIBRARY
|
find_library(QTKEYCHAIN_LIBRARY
|
||||||
NAMES
|
NAMES
|
||||||
|
|||||||
@@ -50,8 +50,18 @@ if (SQLite3_FIND_VERSION AND _SQLITE3_VERSION)
|
|||||||
set(SQLite3_VERSION _SQLITE3_VERSION)
|
set(SQLite3_VERSION _SQLITE3_VERSION)
|
||||||
endif (SQLite3_FIND_VERSION AND _SQLITE3_VERSION)
|
endif (SQLite3_FIND_VERSION AND _SQLITE3_VERSION)
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
if (APPLE OR WIN32)
|
||||||
find_package_handle_standard_args(SQLite3 DEFAULT_MSG SQLITE3_LIBRARIES SQLITE3_INCLUDE_DIRS)
|
set(USE_OUR_OWN_SQLITE3 TRUE)
|
||||||
|
set(SQLITE3_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdparty/sqlite3)
|
||||||
|
set(SQLITE3_LIBRARIES "")
|
||||||
|
set(SQLITE3_SOURCE ${SQLITE3_INCLUDE_DIR}/sqlite3.c)
|
||||||
|
MESSAGE(STATUS "Using own sqlite3 from " ${SQLITE3_INCLUDE_DIR})
|
||||||
|
else()
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(SQLite3 DEFAULT_MSG SQLITE3_LIBRARIES SQLITE3_INCLUDE_DIRS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view
|
# show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view
|
||||||
mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES)
|
mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ set(__get_git_revision_description YES)
|
|||||||
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||||
|
|
||||||
function(get_git_head_revision _refspecvar _hashvar)
|
function(get_git_head_revision _refspecvar _hashvar)
|
||||||
set(GIT_PARENT_DIR "${CMAKE_SOURCE_DIR}")
|
set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||||
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
|
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
|
||||||
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
|
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
|
||||||
@@ -53,6 +53,13 @@ function(get_git_head_revision _refspecvar _hashvar)
|
|||||||
endif()
|
endif()
|
||||||
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||||
endwhile()
|
endwhile()
|
||||||
|
# check if this is a submodule
|
||||||
|
if(NOT IS_DIRECTORY ${GIT_DIR})
|
||||||
|
file(READ ${GIT_DIR} submodule)
|
||||||
|
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
|
||||||
|
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
|
||||||
|
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
|
||||||
|
endif()
|
||||||
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
|
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
|
||||||
if(NOT EXISTS "${GIT_DATA}")
|
if(NOT EXISTS "${GIT_DATA}")
|
||||||
file(MAKE_DIRECTORY "${GIT_DATA}")
|
file(MAKE_DIRECTORY "${GIT_DATA}")
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
!define APPLICATION_LICENSE "@APPLICATION_LICENSE@"
|
!define APPLICATION_LICENSE "@APPLICATION_LICENSE@"
|
||||||
!define WIN_SETUP_BITMAP_PATH "@WIN_SETUP_BITMAP_PATH@"
|
!define WIN_SETUP_BITMAP_PATH "@WIN_SETUP_BITMAP_PATH@"
|
||||||
|
|
||||||
|
!define CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@"
|
||||||
|
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Some installer script options (comment-out options not required)
|
; Some installer script options (comment-out options not required)
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
@@ -173,10 +175,11 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}"
|
|||||||
StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
|
StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
|
||||||
StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0
|
StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0
|
||||||
StrCmp $LANGUAGE ${LANG_GREEK} Greek 0
|
StrCmp $LANGUAGE ${LANG_GREEK} Greek 0
|
||||||
StrCmp $LANGUAGE ${LANG_GREEK} Basque 0
|
StrCmp $LANGUAGE ${LANG_BASQUE} Basque 0
|
||||||
StrCmp $LANGUAGE ${LANG_GREEK} Galician 0
|
StrCmp $LANGUAGE ${LANG_GALICIAN} Galician 0
|
||||||
StrCmp $LANGUAGE ${LANG_GREEK} Slovak 0
|
StrCmp $LANGUAGE ${LANG_SLOVAC} Slovak 0
|
||||||
StrCmp $LANGUAGE ${LANG_GREEK} Turkish 0
|
StrCmp $LANGUAGE ${LANG_TURKISH} Turkish 0
|
||||||
|
StrCmp $LANGUAGE ${LANG_NORWEGIAN} Norwegian 0
|
||||||
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
|
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
|
||||||
German:
|
German:
|
||||||
!include "${source_path}/admin/win/nsi/l10n\German.nsh"
|
!include "${source_path}/admin/win/nsi/l10n\German.nsh"
|
||||||
@@ -219,6 +222,9 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}"
|
|||||||
Goto EndLanguageCmp
|
Goto EndLanguageCmp
|
||||||
Brazilian:
|
Brazilian:
|
||||||
!include "${source_path}/admin/win/nsi/l10n\PortugueseBR.nsh"
|
!include "${source_path}/admin/win/nsi/l10n\PortugueseBR.nsh"
|
||||||
|
Goto EndLanguageCmp
|
||||||
|
Norwegian:
|
||||||
|
!include "${source_path}/admin/win/nsi/l10n\Norwegian.nsh"
|
||||||
EndLanguageCmp:
|
EndLanguageCmp:
|
||||||
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
@@ -262,7 +268,7 @@ FunctionEnd
|
|||||||
!macro ConfirmEndProcess processName
|
!macro ConfirmEndProcess processName
|
||||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
|
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
|
||||||
$ConfirmEndProcess_MESSAGEBOX_TEXT \
|
$ConfirmEndProcess_MESSAGEBOX_TEXT \
|
||||||
IDYES process_${processName}_kill IDNO process_${processName}_ended
|
/SD IDYES IDYES process_${processName}_kill IDNO process_${processName}_ended
|
||||||
process_${processName}_kill:
|
process_${processName}_kill:
|
||||||
DetailPrint $ConfirmEndProcess_KILLING_PROCESSES_TEXT
|
DetailPrint $ConfirmEndProcess_KILLING_PROCESSES_TEXT
|
||||||
Processes::KillProcess ${processName}
|
Processes::KillProcess ${processName}
|
||||||
@@ -383,20 +389,21 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
|
|||||||
;Main executable & csync
|
;Main executable & csync
|
||||||
File "${BUILD_PATH}\bin\${APPLICATION_EXECUTABLE}"
|
File "${BUILD_PATH}\bin\${APPLICATION_EXECUTABLE}"
|
||||||
File "${BUILD_PATH}\bin\${APPLICATION_CMD_EXECUTABLE}"
|
File "${BUILD_PATH}\bin\${APPLICATION_CMD_EXECUTABLE}"
|
||||||
File "${BUILD_PATH}\bin\socketapiclient.exe"
|
File "${BUILD_PATH}\bin\lib${APPLICATION_SHORTNAME}sync.dll"
|
||||||
File "${BUILD_PATH}\src\lib${APPLICATION_SHORTNAME}sync.dll"
|
File "${BUILD_PATH}\bin\libocsync.dll"
|
||||||
File "${BUILD_PATH}\csync\src\libocsync.dll"
|
|
||||||
|
|
||||||
File "${BUILD_PATH}\src\mirall_*.qm"
|
File "${BUILD_PATH}\src\gui\client*.qm"
|
||||||
; Make sure only to copy qt, not qt_help, etc
|
; Make sure only to copy qt, not qt_help, etc
|
||||||
File "${MING_SHARE}\qt5\translations\qt_??.qm"
|
File "${MING_SHARE}\qt5\translations\qt_??.qm"
|
||||||
File "${MING_SHARE}\qt5\translations\qt_??_??.qm"
|
File "${MING_SHARE}\qt5\translations\qt_??_??.qm"
|
||||||
|
File "${MING_SHARE}\qt5\translations\qtbase_*.qm"
|
||||||
File "${MING_SHARE}\qt5\translations\qtkeychain_*.qm"
|
File "${MING_SHARE}\qt5\translations\qtkeychain_*.qm"
|
||||||
|
|
||||||
|
;Add crash reporter if it was built
|
||||||
|
File /nonfatal "${BUILD_PATH}/bin/${CRASHREPORTER_EXECUTABLE}.exe"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR\platforms"
|
SetOutPath "$INSTDIR\platforms"
|
||||||
File "${PLATFORMS_DLL_PATH}\qwindows.dll"
|
File "${PLATFORMS_DLL_PATH}\qwindows.dll"
|
||||||
SetOutPath "$INSTDIR\accessible"
|
|
||||||
File "${ACCESSIBLE_DLL_PATH}\qtaccessiblewidgets.dll"
|
|
||||||
SetOutPath "$INSTDIR\imageformats"
|
SetOutPath "$INSTDIR\imageformats"
|
||||||
File "${IMAGEFORMATS_DLL_PATH}\qgif.dll"
|
File "${IMAGEFORMATS_DLL_PATH}\qgif.dll"
|
||||||
File "${IMAGEFORMATS_DLL_PATH}\qjpeg.dll"
|
File "${IMAGEFORMATS_DLL_PATH}\qjpeg.dll"
|
||||||
@@ -418,13 +425,17 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
|
|||||||
File "${QT_DLL_PATH}\Qt5PrintSupport.dll"
|
File "${QT_DLL_PATH}\Qt5PrintSupport.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5Qml.dll"
|
File "${QT_DLL_PATH}\Qt5Qml.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5Quick.dll"
|
File "${QT_DLL_PATH}\Qt5Quick.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5Sensors.dll"
|
|
||||||
File "${QT_DLL_PATH}\Qt5Sql.dll"
|
File "${QT_DLL_PATH}\Qt5Sql.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5WebKit.dll"
|
File "${QT_DLL_PATH}\Qt5WebKit.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5WebKitWidgets.dll"
|
File "${QT_DLL_PATH}\Qt5WebKitWidgets.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5Widgets.dll"
|
File "${QT_DLL_PATH}\Qt5Widgets.dll"
|
||||||
File "${QT_DLL_PATH}\Qt5Xml.dll"
|
File "${QT_DLL_PATH}\Qt5Xml.dll"
|
||||||
|
|
||||||
|
;QtWebKit dependencies
|
||||||
|
File "${QT_DLL_PATH}\Qt5Multimedia.dll"
|
||||||
|
File "${QT_DLL_PATH}\Qt5MultimediaWidgets.dll"
|
||||||
|
File "${QT_DLL_PATH}\Qt5Sensors.dll"
|
||||||
|
|
||||||
;Qt deps
|
;Qt deps
|
||||||
File "${MING_BIN}\libpng16-16.dll"
|
File "${MING_BIN}\libpng16-16.dll"
|
||||||
File "${MING_BIN}\icudata53.dll"
|
File "${MING_BIN}\icudata53.dll"
|
||||||
@@ -434,28 +445,19 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
|
|||||||
File "${MING_BIN}\libGLESv2.dll"
|
File "${MING_BIN}\libGLESv2.dll"
|
||||||
File "${MING_BIN}\libjpeg-8.dll"
|
File "${MING_BIN}\libjpeg-8.dll"
|
||||||
File "${MING_BIN}\libpcre16-0.dll"
|
File "${MING_BIN}\libpcre16-0.dll"
|
||||||
File "${MING_BIN}\libproxy.dll"
|
|
||||||
File "${MING_BIN}\libsqlite3-0.dll"
|
File "${MING_BIN}\libsqlite3-0.dll"
|
||||||
File "${MING_BIN}\libcrypto-10.dll"
|
File "${MING_BIN}\libcrypto-10.dll"
|
||||||
File "${MING_BIN}\libssl-10.dll"
|
File "${MING_BIN}\libssl-10.dll"
|
||||||
File "${MING_BIN}\libstdc++-6.dll"
|
File "${MING_BIN}\libstdc++-6.dll"
|
||||||
File "${MING_BIN}\libwebp-4.dll"
|
File "${MING_BIN}\libwebp-4.dll"
|
||||||
File "${MING_BIN}\libxslt-1.dll"
|
File "${MING_BIN}\libxslt-1.dll"
|
||||||
|
File "${MING_BIN}\libxml2-2.dll"
|
||||||
File "${MING_BIN}\zlib1.dll"
|
File "${MING_BIN}\zlib1.dll"
|
||||||
|
|
||||||
;QtSql and csync dep
|
|
||||||
File "${MING_BIN}\libsqlite3-0.dll"
|
File "${MING_BIN}\libsqlite3-0.dll"
|
||||||
|
|
||||||
;QtKeyChain stuff
|
;QtKeyChain stuff
|
||||||
File "${MING_BIN}\libqt5keychain.dll"
|
File "${MING_BIN}\libqt5keychain.dll"
|
||||||
|
|
||||||
;ownCloud plugin
|
|
||||||
File "${MING_BIN}\libintl-8.dll"
|
|
||||||
File "${MING_BIN}\libneon-27.dll"
|
|
||||||
File "${MING_BIN}\libproxy.dll"
|
|
||||||
File "${MING_BIN}\libmodman.dll"
|
|
||||||
File "${MING_BIN}\libxml2-2.dll"
|
|
||||||
|
|
||||||
;MinGW stuff
|
;MinGW stuff
|
||||||
File "${MING_BIN}\libgcc_s_sjlj-1.dll"
|
File "${MING_BIN}\libgcc_s_sjlj-1.dll"
|
||||||
File "${MING_BIN}\libstdc++-6.dll"
|
File "${MING_BIN}\libstdc++-6.dll"
|
||||||
@@ -475,15 +477,23 @@ SectionEnd
|
|||||||
File "${BUILD_PATH}\vcredist_x64.exe"
|
File "${BUILD_PATH}\vcredist_x64.exe"
|
||||||
Call InstallRedistributables
|
Call InstallRedistributables
|
||||||
CreateDirectory "$INSTDIR\shellext"
|
CreateDirectory "$INSTDIR\shellext"
|
||||||
|
!define LIBRARY_COM
|
||||||
|
!define LIBRARY_SHELL_EXTENSION
|
||||||
|
!define LIBRARY_IGNORE_VERSION
|
||||||
${If} ${RunningX64}
|
${If} ${RunningX64}
|
||||||
!define LIBRARY_X64
|
!define LIBRARY_X64
|
||||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCUtil_x64.dll" "$INSTDIR\shellext\OCUtil_x64.dll" "$INSTDIR\shellext"
|
!insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCUtil_x64.dll" "$INSTDIR\shellext\OCUtil_x64.dll" "$INSTDIR\shellext"
|
||||||
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCOverlays_x64.dll" "$INSTDIR\shellext\OCOverlays_x64.dll" "$INSTDIR\shellext"
|
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCOverlays_x64.dll" "$INSTDIR\shellext\OCOverlays_x64.dll" "$INSTDIR\shellext"
|
||||||
|
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCContextMenu_x64.dll" "$INSTDIR\shellext\OCContextMenu_x64.dll" "$INSTDIR\shellext"
|
||||||
!undef LIBRARY_X64
|
!undef LIBRARY_X64
|
||||||
${Else}
|
${Else}
|
||||||
!insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCUtil_x86.dll" "$INSTDIR\shellext\OCUtil_x86.dll" "$INSTDIR\shellext"
|
!insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCUtil_x86.dll" "$INSTDIR\shellext\OCUtil_x86.dll" "$INSTDIR\shellext"
|
||||||
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCOverlays_x86.dll" "$INSTDIR\shellext\OCOverlays_x86.dll" "$INSTDIR\shellext"
|
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCOverlays_x86.dll" "$INSTDIR\shellext\OCOverlays_x86.dll" "$INSTDIR\shellext"
|
||||||
|
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCContextMenu_x86.dll" "$INSTDIR\shellext\OCContextMenu_x86.dll" "$INSTDIR\shellext"
|
||||||
${Endif}
|
${Endif}
|
||||||
|
!undef LIBRARY_COM
|
||||||
|
!undef LIBRARY_SHELL_EXTENSION
|
||||||
|
!undef LIBRARY_IGNORE_VERSION
|
||||||
${MementoSectionEnd}
|
${MementoSectionEnd}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
@@ -507,7 +517,9 @@ SectionGroup $SectionGroup_Shortcuts
|
|||||||
SetDetailsPrint textonly
|
SetDetailsPrint textonly
|
||||||
DetailPrint $OPTION_SECTION_SC_DESKTOP_DetailPrint
|
DetailPrint $OPTION_SECTION_SC_DESKTOP_DetailPrint
|
||||||
SetDetailsPrint listonly
|
SetDetailsPrint listonly
|
||||||
|
SetShellVarContext all
|
||||||
CreateShortCut "$DESKTOP\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
|
CreateShortCut "$DESKTOP\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
|
||||||
|
SetShellVarContext current
|
||||||
${MementoSectionEnd}
|
${MementoSectionEnd}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
@@ -516,8 +528,10 @@ SectionGroup $SectionGroup_Shortcuts
|
|||||||
SectionIn 1 2
|
SectionIn 1 2
|
||||||
SetDetailsPrint textonly
|
SetDetailsPrint textonly
|
||||||
DetailPrint $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint
|
DetailPrint $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint
|
||||||
|
SetShellVarContext all
|
||||||
SetDetailsPrint listonly
|
SetDetailsPrint listonly
|
||||||
CreateShortCut "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
|
CreateShortCut "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
|
||||||
|
SetShellVarContext current
|
||||||
${MementoSectionEnd}
|
${MementoSectionEnd}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
@@ -638,16 +652,24 @@ Section Uninstall
|
|||||||
!ifdef OPTION_SECTION_SC_SHELL_EXT
|
!ifdef OPTION_SECTION_SC_SHELL_EXT
|
||||||
!define LIBRARY_COM
|
!define LIBRARY_COM
|
||||||
!define LIBRARY_SHELL_EXTENSION
|
!define LIBRARY_SHELL_EXTENSION
|
||||||
|
!define LIBRARY_IGNORE_VERSION
|
||||||
${If} ${HasSection} SEC_SHELL_EXT
|
${If} ${HasSection} SEC_SHELL_EXT
|
||||||
|
DetailPrint "Uninstalling x64 overlay DLLs"
|
||||||
!define LIBRARY_X64
|
!define LIBRARY_X64
|
||||||
!insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR/shellext/OCUtil_x64.dll"
|
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCContextMenu_x64.dll"
|
||||||
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR/shellext/OCOverlays_x64.dll"
|
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCOverlays_x64.dll"
|
||||||
|
!insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCUtil_x64.dll"
|
||||||
!undef LIBRARY_X64
|
!undef LIBRARY_X64
|
||||||
${Else}
|
${Else}
|
||||||
!insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR/shellext/OCUtil_x86.dll"
|
DetailPrint "Uninstalling x86 overlay DLLs"
|
||||||
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR/shellext/OCOverlays_x86.dll"
|
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCContextMenu_x86.dll"
|
||||||
|
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCOverlays_x86.dll"
|
||||||
|
!insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCUtil_x86.dll"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!undef LIBRARY_COM
|
||||||
|
!undef LIBRARY_SHELL_EXTENSION
|
||||||
|
!undef LIBRARY_IGNORE_VERSION
|
||||||
|
!endif
|
||||||
|
|
||||||
;Start menu shortcut
|
;Start menu shortcut
|
||||||
!ifdef OPTION_SECTION_SC_START_MENU
|
!ifdef OPTION_SECTION_SC_START_MENU
|
||||||
@@ -661,18 +683,22 @@ Section Uninstall
|
|||||||
;Desktop shortcut.
|
;Desktop shortcut.
|
||||||
!ifdef OPTION_SECTION_SC_DESKTOP
|
!ifdef OPTION_SECTION_SC_DESKTOP
|
||||||
${If} ${HasSection} SEC_DESKTOP
|
${If} ${HasSection} SEC_DESKTOP
|
||||||
|
SetShellVarContext all
|
||||||
${If} ${FileExists} "$DESKTOP\${APPLICATION_NAME}.lnk"
|
${If} ${FileExists} "$DESKTOP\${APPLICATION_NAME}.lnk"
|
||||||
Delete "$DESKTOP\${APPLICATION_NAME}.lnk"
|
Delete "$DESKTOP\${APPLICATION_NAME}.lnk"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
SetShellVarContext current
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
;Quick Launch shortcut.
|
;Quick Launch shortcut.
|
||||||
!ifdef OPTION_SECTION_SC_QUICK_LAUNCH
|
!ifdef OPTION_SECTION_SC_QUICK_LAUNCH
|
||||||
${If} ${HasSection} SEC_QUICK_LAUNCH
|
${If} ${HasSection} SEC_QUICK_LAUNCH
|
||||||
|
SetShellVarContext all
|
||||||
${If} ${FileExists} "$QUICKLAUNCH\${APPLICATION_NAME}.lnk"
|
${If} ${FileExists} "$QUICKLAUNCH\${APPLICATION_NAME}.lnk"
|
||||||
Delete "$QUICKLAUNCH\${APPLICATION_NAME}.lnk"
|
Delete "$QUICKLAUNCH\${APPLICATION_NAME}.lnk"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
SetShellVarContext current
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
@@ -759,7 +785,7 @@ Function .onInit
|
|||||||
goto UAC_Elevate
|
goto UAC_Elevate
|
||||||
|
|
||||||
;Prevent multiple instances.
|
;Prevent multiple instances.
|
||||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudInstaller") i .r1 ?e'
|
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Installer") i .r1 ?e'
|
||||||
Pop $R0
|
Pop $R0
|
||||||
StrCmp $R0 0 +3
|
StrCmp $R0 0 +3
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_INSTALLER_RUNNING
|
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_INSTALLER_RUNNING
|
||||||
@@ -824,7 +850,7 @@ Function un.onInit
|
|||||||
goto UAC_Elevate
|
goto UAC_Elevate
|
||||||
|
|
||||||
;Prevent multiple instances.
|
;Prevent multiple instances.
|
||||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudUninstaller") i .r1 ?e'
|
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Uninstaller") i .r1 ?e'
|
||||||
Pop $R0
|
Pop $R0
|
||||||
StrCmp $R0 0 +3
|
StrCmp $R0 0 +3
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_UNINSTALLER_RUNNING
|
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_UNINSTALLER_RUNNING
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ include (MacroLogFeature)
|
|||||||
option(BUILD_WITH_QT4 "Build with Qt4 no matter if Qt5 was found" OFF)
|
option(BUILD_WITH_QT4 "Build with Qt4 no matter if Qt5 was found" OFF)
|
||||||
|
|
||||||
if( BUILD_WITH_QT4 )
|
if( BUILD_WITH_QT4 )
|
||||||
message(STATUS "Search for Qt5 was disalbed by option BUILD_WITH_QT4")
|
message(STATUS "Search for Qt5 was disabled by option BUILD_WITH_QT4")
|
||||||
else( BUILD_WITH_QT4 )
|
else( BUILD_WITH_QT4 )
|
||||||
find_package(Qt5Core QUIET)
|
find_package(Qt5Core QUIET)
|
||||||
endif( BUILD_WITH_QT4 )
|
endif( BUILD_WITH_QT4 )
|
||||||
@@ -17,6 +17,7 @@ if( Qt5Core_FOUND )
|
|||||||
message(STATUS "Found Qt5 core, checking for further dependencies...")
|
message(STATUS "Found Qt5 core, checking for further dependencies...")
|
||||||
find_package(Qt5Network REQUIRED)
|
find_package(Qt5Network REQUIRED)
|
||||||
find_package(Qt5Xml REQUIRED)
|
find_package(Qt5Xml REQUIRED)
|
||||||
|
find_package(Qt5Concurrent REQUIRED)
|
||||||
if(NOT TOKEN_AUTH_ONLY)
|
if(NOT TOKEN_AUTH_ONLY)
|
||||||
find_package(Qt5WebKitWidgets REQUIRED)
|
find_package(Qt5WebKitWidgets REQUIRED)
|
||||||
find_package(Qt5WebKit REQUIRED)
|
find_package(Qt5WebKit REQUIRED)
|
||||||
@@ -70,10 +71,15 @@ endif()
|
|||||||
qt5_add_resources(${ARGN})
|
qt5_add_resources(${ARGN})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
if(NOT TOKEN_AUTH_ONLY)
|
||||||
find_package(Qt5LinguistTools REQUIRED)
|
find_package(Qt5LinguistTools REQUIRED)
|
||||||
macro(qt_add_translation)
|
macro(qt_add_translation)
|
||||||
qt5_add_translation(${ARGN})
|
qt5_add_translation(${ARGN})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
else()
|
||||||
|
macro(qt_add_translation)
|
||||||
|
endmacro()
|
||||||
|
endif()
|
||||||
|
|
||||||
macro(qt_add_dbus_interface)
|
macro(qt_add_dbus_interface)
|
||||||
qt5_add_dbus_interface(${ARGN})
|
qt5_add_dbus_interface(${ARGN})
|
||||||
@@ -98,6 +104,9 @@ endif()
|
|||||||
|
|
||||||
#Enable deprecated symbols
|
#Enable deprecated symbols
|
||||||
add_definitions("-DQT_DISABLE_DEPRECATED_BEFORE=0")
|
add_definitions("-DQT_DISABLE_DEPRECATED_BEFORE=0")
|
||||||
|
|
||||||
|
add_definitions("-DQT_USE_QSTRINGBUILDER") #optimize string concatenation
|
||||||
|
add_definitions("-DQT_MESSAGELOGCONTEXT") #enable function name and line number in debug output
|
||||||
endif( Qt5Core_FOUND )
|
endif( Qt5Core_FOUND )
|
||||||
|
|
||||||
if(NOT Qt5Core_FOUND)
|
if(NOT Qt5Core_FOUND)
|
||||||
@@ -153,7 +162,18 @@ if(NOT Qt5Core_FOUND)
|
|||||||
include( ${QT_USE_FILE} )
|
include( ${QT_USE_FILE} )
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
add_definitions("-DQ_DECL_OVERRIDE=override")
|
if (CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||||
|
OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
|
||||||
|
add_definitions("-DQ_DECL_OVERRIDE=override")
|
||||||
|
else()
|
||||||
|
add_definitions("-DQ_DECL_OVERRIDE=")
|
||||||
|
endif()
|
||||||
|
else() #clang or others
|
||||||
|
add_definitions("-DQ_DECL_OVERRIDE=override")
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( Qt5Core_DIR )
|
if( Qt5Core_DIR )
|
||||||
|
|||||||
@@ -2,25 +2,21 @@
|
|||||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||||
# For details see the accompanying COPYING* file.
|
# For details see the accompanying COPYING* file.
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||||
OUTPUT_VARIABLE GCC_VERSION)
|
OUTPUT_VARIABLE GCC_VERSION)
|
||||||
if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Wno-long-long")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
|
||||||
else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
|
||||||
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
else()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
|
||||||
endif(CMAKE_COMPILER_IS_GNUCXX)
|
endif(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
if(CMAKE_CXX_COMPILER MATCHES "clang")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
||||||
endif(CMAKE_CXX_COMPILER MATCHES "clang")
|
|
||||||
# TODO: handle msvc compilers warnings?
|
|
||||||
|
|
||||||
if(DEFINED MIRALL_FATAL_WARNINGS)
|
if(DEFINED MIRALL_FATAL_WARNINGS)
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
|
||||||
endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang")
|
|
||||||
# TODO: handle msvc compilers warnings?
|
|
||||||
endif(DEFINED MIRALL_FATAL_WARNINGS)
|
endif(DEFINED MIRALL_FATAL_WARNINGS)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user