PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Bioto
09-07-2013, 02:21
Приветствую!

1. Как в инсталлятор встроить рекламу от Google Adsense? И разрешено ли это гуглом? Если нет, так как встроить свои баннеры?

2. Как можно подсчитать количество установок? Например, можно было бы отправлять по окончании успешной установки get/post запрос на свой сайт. И желательно с ip-адресом, чтобы можно было считать уникальное число. Как можно это реализовать? Интересует отправка, так как на php я уже сам приму. И что скажут по этому поводу антивирусы?

habib2302
09-07-2013, 09:48
1. Как в инсталлятор встроить рекламу от Google Adsense? »
тебе заняться нечем???

Gnom_aka_Lexander
09-07-2013, 18:14
тебе заняться нечем??? »
Оффтоп, не находишь? Задача в наше время довольно частая, сам делал человеку инсталл по партнерке с яндексом, за который он так и не заплатил. но это так, раз уж пошел оффтоп, если удалят - не обижусь. Как в инсталлятор встроить рекламу от Google Adsense? »
Есть море способов. Нужно знать, как оно должно выглядеть? Возможности инно - от открытия браузера по нажатию на активный элемент, до браузера встроенного прямо в инсталл. Как можно подсчитать количество установок? »
Было решение ранее. При наличии желания и отсутствии лени - легко находится. Если нужно частное решение - можно обратиться ко мне в личку, но результат потом все равно выложу тут - ибо задача выглядит интересной.

El Sanchez
09-07-2013, 18:26
1. Как в инсталлятор встроить рекламу от Google Adsense? И разрешено ли это гуглом? »
Bioto, не разрешено (https://support.google.com/adsense/answer/48182)
Если нет, так как встроить свои баннеры? »
Bioto, если статический, то обычная картинка (может и кликабельная). Если динамический, то gif, какой-нибудь.
И желательно с ip-адресом, чтобы можно было считать уникальное число »
Bioto, а если несколько пользователей одной сети с общим IP установят, то считать за одну установку? А если удалил и поставил заново?
И что скажут по этому поводу антивирусы? »
Bioto, параноики обнаружат подозрительную сетевую активность.

Gnom_aka_Lexander
09-07-2013, 18:34
параноики »
В данный момент любой антивирус, который действительно защищает заблочит это дело.

а если несколько пользователей одной сети с общим IP установят, то считать за одну установку? »
куки, мак, еткА если удалил и поставил заново? »
для того и нужно вроде. Человеку нужен именно подсчет количества установок. Если подружить решение с файрволом и антивирем, то решение в принципе сложностей не вызовет. на php я уже сам приму »
в этом случае совсем просто - создаем свой протокол на нем и общаемся в режиме клиент-сервер.

Serega
09-07-2013, 20:12
Всем привет :hi:
1. Как в инсталлятор встроить рекламу от Google Adsense? »
Встроить не проблема... главное авторские права соблюсти.
как встроить свои баннеры? »
вариантов масса, весь вопрос в том, что вы хотите увидеть...
2. Как можно подсчитать количество установок? »
Вопрос более риторический... как сказал El Sanchez:
а если несколько пользователей одной сети с общим IP установят, то считать за одну установку? А если удалил и поставил заново? »
Здесь только нужно привязываться к железу и в конечном итоге вы увидите количество оригинальных установок.
И что скажут по этому поводу антивирусы? »
Антивирусы пишут люди, впрочем как и вирусы... поверьте get/post это последнее о чём стоит беспокоится в решении вашего вопроса.

insombia
09-07-2013, 23:42
del

Bioto
11-07-2013, 00:36
Bioto, а если несколько пользователей одной сети с общим IP установят, то считать за одну установку? А если удалил и поставил заново? »

Я думаю это не проблема программы, главное сделать факт установки и записывать все на сайт в базу MySQL, например. Просто лог установок, а как уже считать количество уникальных посетить это другое дело. Ну cookie еще можно поставить.

insombia
12-07-2013, 23:44
http://i47.fastpic.ru/big/2013/0712/8c/27a1772da14aa4394f9c35c10fa57e8c.jpg как убрать белую обводку вокруг кнопок?

El Sanchez
14-07-2013, 11:42
как убрать белую обводку вокруг кнопок? »
insombia, в данном случае родитель кнопки имеет сплошной цвет, поэтому верни для кнопки кисть нужного цвета, например, WizardForm.Brush.Color := clRed. В случае, если на родителе картинка, нужно создать на ее основе узорчастую кисть, сабклассить кнопку или ее родителя и в сообщении CN_CTLCOLORBTN (если сабклассить кнопку) или WM_CTLCOLORBTN (если сабклассить родителя) вернуть кисть с необходимым смещением. Пример:


[Setup]
AppName=test
AppVerName=test
CreateAppDir=false
DefaultDirName={tmp}
Uninstallable=false
BitmapResource=bgnd:{app}\robots.bmp

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Code]
#define A = (Defined UNICODE) ? "W" : "A"

const
CN_CTLCOLORBTN = $BD35;
GA_ROOT = 2;
GWL_WNDPROC = (-4);
GWL_USERDATA = (-21);

function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function CreatePatternBrush(hbmp: HBITMAP): Longint; external 'CreatePatternBrush@gdi32.dll stdcall';
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external 'CallWindowProc{#A}@user32.dll stdcall';
function MapWindowPoints(hWndFrom, hWndTo: HWND; var lpPoints: TPoint; cPoints: UINT): Integer; external 'MapWindowPoints@user32.dll stdcall';
function SetBrushOrgEx(hdc: Longint; nXOrg, nYOrg: Integer; var lppt: TPoint): BOOL; external 'SetBrushOrgEx@gdi32.dll stdcall';
function GetAncestor(hwnd: HWND; gaFlags: UINT): HWND; external 'GetAncestor@user32.dll stdcall';

var
g_Bgnd: TBitmapImage;
g_hBrush: Longint;

/////////////////////////////////////////////////////////////////////////////
function ButtonProc(hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint;
var
pt: TPoint;
begin
case Msg of
CN_CTLCOLORBTN: begin
MapWindowPoints(hWnd, GetAncestor(hWnd, GA_ROOT), pt, 1);
SetBrushOrgEx(wParam, -pt.x, -pt.y, pt);
Result := g_hBrush;
end;
else
Result := CallWindowProc(GetWindowLong(hWnd, GWL_USERDATA), hWnd, Msg, wParam, lParam);
end;
end;

/////////////////////////////
procedure InitializeWizard();
begin
with WizardForm do
begin
WizardBitmapImage.Hide;
Bevel.Hide;
OuterNotebook.Hide;
end;
// background
g_Bgnd := TBitmapImage.Create(WizardForm);
with g_Bgnd do
begin
Parent := WizardForm;
Align := alClient;
Bitmap.LoadFromResourceName(HInstance, '_IS_BGND');
g_hBrush := CreatePatternBrush(Bitmap.Handle);
end;
// subclass button
with WizardForm.NextButton do SetWindowLong(Handle, GWL_USERDATA, SetWindowLong(Handle, GWL_WNDPROC, CallbackAddr('ButtonProc')));
end;

procedure DeinitializeSetup();
begin
with WizardForm.NextButton do if GetWindowLong(Handle, GWL_USERDATA) > 0 then SetWindowLong(Handle, GWL_WNDPROC, GetWindowLong(Handle, GWL_USERDATA));
end;

Gnom_aka_Lexander
14-07-2013, 11:45
если сабклассить кнопку »
Позволю себе уточнить. насколько я помню (ибо как-то бился в истерике над этим вопросом) событие WM_CTLCOLOR обрабатывается исключительно родителем.
если еще точнее - главным окном приложения.
А вообще просто переход на юникодную версию инно легко решает этот вопрос без дополнительных усилий. правда тогда наверняка часть скрипта придется переписывать. если не весь.
Ах, да. Еще один гемор в этом направлении. WM_CTLCOLOR довольно криво работает с XP манифестом.

El Sanchez
14-07-2013, 14:02
Позволю себе уточнить. насколько я помню (ибо как-то бился в истерике над этим вопросом) событие WM_CTLCOLOR обрабатывается исключительно родителем.
если еще точнее - главным окном приложения. »
Приходит родителю. Родителем кнопки NextButton является WizardForm (сообщение приходит форме), родителем DirBrowseButton - SelectDirPage (сообщение приходит нотебуку)

А вообще просто переход на юникодную версию инно легко решает этот вопрос без дополнительных усилий. правда тогда наверняка часть скрипта придется переписывать. если не весь. »
Например?

Еще один гемор в этом направлении. WM_CTLCOLOR довольно криво работает с XP манифестом. »
Не заметил, хотя больше использую дельфовые CN_CTLCOLOR*, приходящие напрямую контролу.

Gnom_aka_Lexander
14-07-2013, 14:14
Например? »
Ссылка (http://innoultra.ru/?dl_id=6) Никакой рекламы, только для примера. тем более есть в шапке соседней темы.

El Sanchez
14-07-2013, 14:55
Gnom_aka_Lexander, ясно, в юникодной версии фон дочернего окна закрашивается кистью родительского, для анси реализовывать самому.

Gnom_aka_Lexander
14-07-2013, 14:59
El Sanchez, на правах частичного оффтопа - лучше ведь, использовать возможности инно, в плане оптимальности готового приложения, чем описывать в инно эту реализацию? тем более не нужно предпринимать вообще никаких действий, для обеспечения нужного эффекта.

insombia
14-07-2013, 17:14
все было из-за темы
p.s. спасибо Gnom_aka_Lexander и El Sanchez за помощь,буду знать

saurn
14-07-2013, 18:48
Немного переделал свой старый код авторана. По хорошему его бы надо целиком переделать, но, в принципе, заложенные функции выполняет правильно. Может кому сгодится.
Скачать архив (http://rghost.ru/47419209)
P.S.
Код писался преимущественно для одной игры, но в целом вполне универсален.
Спасибо Johny777 за примеры и направления по верному пути))).

sergey3695
14-07-2013, 21:16
delete/

Михаил_Печников@fb
15-07-2013, 17:23
Всем, доброго!
Подскажите как бы в сетапе проверить, установлено в системе ms officсe
нужной версии.
И если нет то скачать с сайта и установить runtime версию access.


з.ы. прошу отнестись с пониманием. Поиск не рулит, курить сначала тему не реально.

El Sanchez
15-07-2013, 21:10
проверить, установлено в системе ms officсe »
Михаил_Печников@fb, может нужно определить наличие в системе установленного Access, а не Office? Ибо наличие Office не говорит о обязательном наличии Access.

нужной версии »
Михаил_Печников@fb, какой? А то рантаймов несколько (http://search.microsoft.com/ru-ru/DownloadResults.aspx?q=%d0%a1%d1%80%d0%b5%d0%b4%d0%b0+%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0% bd%d0%b8%d1%8f+Microsoft+Access) и разной разрядности.

скачать с сайта »
Михаил_Печников@fb, может лучше рядом с установщиком рантайм держать? Качать много.




© OSzone.net 2001-2012