| adm | Find | login register |
eliu joined: 2007-08-09 posted: 11480 promoted: 617 bookmarked: 187 新竹, 台灣 |
我的喇叭是華碩 lcd monitor 內建的,在螢幕休眠時是關閉的,沒有聲音。因為 skype 在來電鈴聲時沒有辦法打開螢幕,所以聽不到。 後來想用 LD_PRELOAD 把 function open/fopen 包一層,當 skype open 來電鈴聲的 file,就執行 xset來打開螢幕。LD_PRELOAD environment variable 可以設定成自己想要先 load 的 .so,系統 load 進來你的 function 之後,就會忽略其他的 .so 的同名 function,這樣我們就可以把 libc.so libgtk*.so ... 裏面 的 function 取代掉。
這個小程式是可以用,可以用來紀錄 open 什麼 file, firefox/gedit ... 都可以用。惟獨 skype 不行, Orz. 不知道 skype 做了什麼手腳。 $ export LD_PRELOAD=./sky-wrap.so $ firefox Makefile
sky-wrap.so: myopen.c myopen.c
#include <stdlib.h> | |||||||
本人已不在此站活動 joined: 2007-09-19 posted: 4946 promoted: 325 bookmarked: 206 歸隱山林 |
| |||||||
eliu joined: 2007-08-09 posted: 11480 promoted: 617 bookmarked: 187 新竹, 台灣 |
| |||||||
本人已不在此站活動 joined: 2007-09-19 posted: 4946 promoted: 325 bookmarked: 206 歸隱山林 |
我的意思是說, so 沒效果,是否和載入路徑有關。也就是說程式 preload 時的 ./,和你的 ./ 並不一樣?雖然可能性很小…… :p
| |||||||
eliu joined: 2007-08-09 posted: 11480 promoted: 617 bookmarked: 187 新竹, 台灣 |
| |||||||
dou0228 joined: 2008-08-14 posted: 21 promoted: 2 bookmarked: 2 |
如果轉用 inotify 去做呢? 不管 skype, 只 monitor 檔案, 當事件發生, 就 xset | |||||||
eliu joined: 2007-08-09 posted: 11480 promoted: 617 bookmarked: 187 新竹, 台灣 |
有可能可以,只是我現在很少用 skype 了。
|
| adm | Find | login register |