There is at least one proof of Specker's theorem that can be adapted in an obvious way. I believe that the first half of this proof is due to Sąsiada, and the second half to Łoś.
Let $A$ be a free $\mathbb{Z}_{(p)}$ module of countable rank, and $B=D_{(p)}A$
its dual, whose elements I will think of as sequences of elements of
$\mathbb{Z}_{(p)}$. Let $e_{n}\in B$ be the sequence with $n$th term equal to
$1$ and all other terms zero.
It is easy to see that to prove that the natural map $A\to D^{2}_{(p)}A$ is an
isomorphism, it is enough to prove the following two facts about elements
$\varphi:B\to\mathbb{Z}_{(p)}$ of $D_{(p)}B$.
Proposition 1. $\varphi(e_{n})=0$ for all but finitely many $n$.
Proof. Suppose not. By ignoring those $n$ for which $\varphi(e_{n})=0$, we can
assume, for simplicity, that $\varphi(e_{n})\neq0$ for all $n$.
Construct a sequence $(x_{n})_{n\in\mathbb{N}}\in B$ by inductively choosing
$x_{n}$ to be nonzero but divisible by a higher power of $p$ than
$\varphi(x_{n-1}e_{n-1})$.
Now consider all sequences whose $n$th term is either $x_{n}$ or $0$. There are
uncountably many of these, but $\mathbb{Z}_{(p)}$ is countable, so two of these
sequences must be sent to the same place by $\varphi$. Taking the difference, we
get a nonzero sequence $(y_{n})_{n\in\mathbb{N}}\in\ker(\varphi)$ with $y_{n}$
equal to $0$ or to $\pm x_{n}$. Choosing $m$ minimal such that $y_{m}\neq0$ we
have
$$0=\varphi((y_{n})_{n\in\mathbb{N}})=
\varphi(y_{m}e_{m})+\varphi((y_{n})_{n\in\mathbb{N}}-y_{m}e_{m}),$$ but
$(y_{n})_{n\in\mathbb{N}}-y_{m}e_{m}$, and hence $\varphi((y_{n})_{n\in\mathbb{N}}-y_{m}e_{m})$, is divisible by a higher power of
$p$ than $\varphi(y_{m}e_{m})$. $\;\blacksquare$
Proposition 2. $\varphi$ is determined by the values of $\varphi(e_{n})$.
Proof. If not, there is some nonzero $\varphi\in D_{(p)}B$ with
$\varphi(e_{n})=0$ for all $n$.
Choose a sequence $(a_{n})_{n\in\mathbb{N}}\not\in\ker(\varphi)$, and define a
homomorphism $\theta:B\to B$
by
$$\theta((b_{n})_{n\in\mathbb{N}})=((b_{0}+b_{1}+\cdots+b_{n})a_{n})_{n\in\mathbb{N}}.$$
For each $m$, $\theta(e_{m})$ differs from $(a_{n})_{n\in\mathbb{N}}$ in only
finitely many terms, so
$\varphi\theta(e_{m})=\varphi((a_{n})_{n\in\mathbb{N}})\neq0$ for all $n$,
contradicting Proposition 1 for $\varphi\theta$. $\;\blacksquare$