Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

Не работает прога под win2k и XP   Найти похожие ветки 

 
colonel   (2004-10-30 17:32) [0]

Суть в следуещем: написал прогу для регулировки звука, но у меня на компе все работает, на компе у соседа работает. Я понес к другим ребятам, там не стала работать, я проверил работает ли хук, хук работает. Потом я обратил внимание на микшер (и у меня и у соседа в микшере написано - Play control, WaveMP3..., не суть важно что дальше, я использую только play control) у других у кого я тестил было написано Громкость....
В чем может быть проблема ?
Привожу исходный код: да сообщение что "миксер не найден" не выскакивает, может я не так читаю данные из микшера (но у меня и соседа пашет):


 private
   { Private declarations }
   procedure Mix_Volume_Change(var mess:tmessage); message MM_MIXM_CONTROL_CHANGE;
 public
   { Public declarations }
   procedure FormIcon(var Msg:TMessage); message WM_USER+100;
   //procedure CreateParams(var Params:TCreateParams); override;
 protected
   procedure wndproc(var Msg:tmessage); override;
 end;

var
 F_Volume:TF_Volume;
 mixcaps:TMixerCaps;
 hmix,volumeID,volmin,volmax:integer;
 details:TMixerControlDetails;
 mixctrl:TMixerControl;
 valdets:TMixerControlDetailsUnsigned;
 curvolume:dword;
 svEnable:boolean;
 k:byte;
 m_ctrl:array [0..255] of TMIXERCONTROL;
 mixline:tmixerLine;
 mixlinectrl:tmixerLineControls;
 nid : TNotifyIconData;
 Reg : TRegistry;
 left: integer;
 a:integer;
 b:boolean;

implementation

uses HookInt;

{$R *.dfm}

procedure TF_Volume.Mix_Volume_Change(var mess : TMessage);
begin
 if not svenable then exit;
 if WindowState=wsMinimized then Exit;
 Details.cbStruct:=SizeOf(Details);
 Details.dwControlID:=volumeid;
 Details.cChannels:=1;
 Details.cMultipleItems:=0;
 Details.cbDetails:=SizeOf(Valdets);
 Details.paDetails:=@valdets;
 mixerGetControlDetails(hmix,@details,MIXER_GETCONTROLDETAILSF_VALUE);
 CurVolume:=Valdets.dwValue;
end;

procedure TF_Volume.FormDestroy(Sender: TObject);
begin
 if not svEnable then exit;
 MixerClose(hmix);
 inherited;
end;

procedure TF_Volume.FormCreate(Sender: TObject);
var
 i:integer;
begin
 if not HookStart(handle,"0+106 0+107 0+109") then ShowMessage("Íå ìîãó çàïóñòèòü õóê :-(");
 inherited;
 MixerOpen(@hmix,0,Handle,0,MIXER_OBJECTF_MIXER or CALLBACK_WINDOW);
 MixerGetDevCaps(0,@mixcaps,SizeOf(MixCaps));
 for i:=0 to MixCaps.cDestinations-1 do
   begin
     Mixline.dwDestination:=i;
     Mixline.cbStruct:=SizeOf(Mixline);
     MixerGetLineInfo(hmix,@mixline,MIXER_GETLINEINFOF_DESTINATION or MIXER_OBJECTF_HMIXER);
     if Mixline.dwComponentType=MIXERLINE_COMPONENTTYPE_DST_SPEAKERS then break;
   end;
 if Mixline.dwComponentType<>MIXERLINE_COMPONENTTYPE_DST_SPEAKERS then
   begin
     ShowMessage("&#204;&#232;&#234;&#241;&#229;&#240; &#237;&#229; &#237;&#224;&#233;&#228;&#229;&#237; !");
     svEnable:=false;
     exit;
   end
     else
       svEnable:=True;
       MixLineCtrl.cbStruct:=SizeOf(MixLineCtrl);
       MixLineCtrl.cbmxctrl:=Sizeof(MixCtrl);
       MixLineCtrl.dwLineID:=MixLine.dwLineID;
       MixLineCtrl.cControls:=mixline.cControls;
       MixLineCtrl.pamxctrl:=@m_ctrl;
       MixerGetLineControls(hmix,@mixlinectrl,MIXER_GETLINECONTROLSF_ALL);
       VolMax:=MixCtrl.Bounds.dwMaximum;
       Details.cbStruct:=Sizeof(Details);
       Details.dwControlID:=m_ctrl[0].dwControlID;
       Details.cChannels:=1;
       Details.cMultipleItems:=0;
       Details.cbDetails:=SizeOf(Valdets);
       Details.paDetails:=@valdets;
       MixerGetControlDetails(hmix,@details,0);
       CurVolume:=Valdets.dwValue;
end;

procedure tF_Volume.min_volume(Sender: TObject);
var
 vol:integer;
begin
 if not svEnable then exit;
 Details.cbStruct:=SizeOf(Details);
 Details.dwControlID:=volumeid;
 details.cChannels:=1;
 Details.cMultipleItems:=0;
 Details.cbDetails:=SizeOf(Valdets);
 Details.paDetails:=@Valdets;
 vol:=valdets.dwValue;
 if valdets.dwValue>0 then begin
                             if vol-1310<0 then valdets.dwValue:=0
                               else valdets.dwValue:=valdets.dwValue-1310;
                           end;
 MixerSetControlDetails(hmix,@details,MIXER_SETCONTROLDETAILSF_VALUE);
end;

procedure tF_Volume.max_volume(Sender: TObject);
var
 vol:integer;
begin
 if not svEnable then exit;
 Details.cbStruct:=SizeOf(Details);
 Details.dwControlID:=volumeid;
 Details.cChannels:=1;
 Details.cMultipleItems:=0;
 Details.cbDetails:=SizeOf(Valdets);
 Details.paDetails:=@Valdets;
 vol:=valdets.dwValue;
 if valdets.dwValue>=0 then begin
                             if vol+1310>65535 then valdets.dwValue:=65535
                               else valdets.dwValue:=valdets.dwValue+1310;
                           end;
 MixerSetControlDetails(hmix,@details,MIXER_SETCONTROLDETAILSF_VALUE);
end;

procedure tF_Volume.mute_volume(Sender: TObject);
begin
 if not svEnable then exit;
 Details.cbStruct:=SizeOf(Details);
 Details.dwControlID:=volumeid;
 Details.cChannels:=1;
 Details.cMultipleItems:=0;
 Details.cbDetails:=SizeOf(Valdets);
 Details.paDetails:=@Valdets;
 if k=0 then begin
               Valdets.dwValue:=1;
               k:=1;
             end else begin
                        volumeid:=m_ctrl[0].dwControlID;
                        Valdets.dwValue:=0;
                        k:=0;
                      end;
 MixerSetControlDetails(hmix,@details,0);
end;

procedure TF_Volume.FormActivate(Sender: TObject);
begin
 icon_(self,nim_add);
 showform(sw_hide,false);
 application.ShowMainForm:=false;
end;

end.


 
Digitman ©   (2004-11-01 16:22) [1]


> там не стала работать


так и сказала, мол, работать не стану ... я угадал ?


> проверил работает ли хук, хук работает


какой такой "хук" ?
HookStart мне ни о чем не говорит


> inherited;


а это зачем ? можешь вразумительно объяснить, какой такой наследуемый метод ты здесь пытаешься вызвать ?



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
3-1105612348
Pavelkq
2005-01-13 13:32
2005.02.13
Что выбрать и что изучить(почитать)?


11-1090252322
grumbler
2004-07-19 19:52
2005.02.13
как можно получить информацию о выполняемом файле по LNK/PIF?


10-1082955820
goliath
2004-04-26 09:03
2005.02.13
Помогите пожалуйста с OPC


3-1104401956
Zloy
2004-12-30 13:19
2005.02.13
Возможность использваоние базы данных без установленного софта


3-1105556863
про
2005-01-12 22:07
2005.02.13
Sortirovka zapisej v alfavitnom porjadke





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский