とりあえず、
記事を書く。
記事を書く。
記事を書く。
記事を書く。
記事を書く。
これでいいか?
技術的な知見や日々の記録、日常の些細な変化などを綴る雑記ブログです。専門的な技術解説から日記のようなライトな話題まで、特定のジャンルに縛られず、気になったことや面白いと感じた出来事を幅広く発信しています。筆者の視点で切り取った多様なコンテンツが楽しめる、自由な雑記空間を目指しています。
C#でuser32.dllを使用してマウスカーソルを消すには、
P/Invoke(Platform Invocation Services)を利用してWindows APIを呼び出します。
以下の手順で、マウスカーソルを非表示にする方法を説明します。
user32.dllのインポート:user32.dllのShowCursor関数を呼び出すために、P/Invokeを使います。
ShowCursor関数の呼び出し:ShowCursor関数は、カーソルの表示状態を変更するために使います。
関数の引数にfalseを渡すことでカーソルを非表示にできます。
以下に、C#コードの例を示します。
using System;
using System.Runtime.InteropServices;
class Program
{
// user32.dllのShowCursor関数をインポート
[DllImport("user32.dll")]
private static extern int ShowCursor(bool bShow);
static void Main(string[] args)
{
// カーソルを非表示にする
ShowCursor(false);
Console.WriteLine("Press any key to show cursor again...");
Console.ReadKey();
// カーソルを表示する
ShowCursor(true);
}
}
マウスカーソルを非表示にすることで、特定のアプリケーション(ゲーム、全画面表示のアプリケーションなど)の操作性を向上させたり、より没入感のある体験を提供したりすることができます。C#では、P/Invoke(Platfrom Invocation Services)を利用してWindows APIのShowCursor関数を呼び出すことで、マウスカーソルを簡単に非表示にすることができます。
P/Invokeは、マネージドコード(C#など)からアンマネージドコード(C++で記述されたDLLなど)を呼び出すための仕組みです。これにより、C#からWindows APIなどの既存の機能を再利用することができます。
ShowCursor関数の利用ShowCursor関数は、Windows APIの一部であり、マウスカーソルの表示/非表示を制御するために使用されます。この関数を呼び出すことで、アプリケーションの動作に合わせてマウスカーソルを動的に制御することができます。
user32.dllのインポート: DllImport属性を使用して、user32.dllのShowCursor関数をC#コードにインポートします。ShowCursor関数の呼び出し: ShowCursor関数を呼び出し、引数にfalseを渡すことでマウスカーソルを非表示にできます。trueを渡すと、マウスカーソルが再び表示されます。以下に、マウスカーソルを非表示にするC#コードの例を示します。
using System;
using System.Runtime.InteropServices;
class Program
{
// user32.dllのShowCursor関数をインポート
[DllImport("user32.dll")]
private static extern int ShowCursor(bool bShow);
static void Main(string[] args)
{
// カーソルを非表示にする
ShowCursor(false);
Console.WriteLine("マウスカーソルを非表示にしました。");
Console.WriteLine("何かキーを押すとマウスカーソルを再表示します...");
Console.ReadKey();
// カーソルを表示する
ShowCursor(true);
Console.WriteLine("マウスカーソルを再表示しました。");
}
}
コード解説:
[DllImport("user32.dll")]: user32.dllをインポートし、ShowCursor関数をC#から呼び出せるようにします。private static extern int ShowCursor(bool bShow);: ShowCursor関数のシグネチャを定義します。bool bShowは、カーソルを表示するか非表示にするかを指定する引数です。ShowCursor(false);: カーソルを非表示にします。ShowCursor(true);: カーソルを表示します。P/Invokeを利用することで、C#からWindows APIのShowCursor関数を呼び出し、マウスカーソルを簡単に非表示にすることができます。この機能は、特定のアプリケーションの操作性を向上させたり、より没入感のある体験を提供したりするのに役立ちます。ただし、ユーザーエクスペリエンスに配慮し、適切な状況でのみ使用するように注意してください。
| 機種 |
|---|
| iPhone 15 |
| iPhone 15 Plus |
| iPhone 15 Pro |
| iPhone 15 Pro Max |
| iPhone 14 |
| iPhone 14 Plus |
| iPhone 14 Pro |
| iPhone 14 Pro Max |
| iPhone 13 |
| iPhone 13 mini |
| iPhone 13 Pro |
| iPhone 13 Pro Max |
| iPhone 12 |
| iPhone 12 mini |
| iPhone 12 Pro |
| iPhone 12 Pro Max |
| iPhone 11 |
| iPhone 11 Pro |
| iPhone 11 Pro Max |
| iPhone XS |
| iPhone XS Max |
| iPhone XR |
| iPhone SE(第2世代) |
| iPhone SE(第3世代) |
android のOSのバージョンの分布が気になったので確認してみました。
新規に作成する人は10以上で作成を行えばよいのでは?と思います。
ちなみに、android studioで確認が可能です。
ソースコードレビューしていて、ふと気になった点があります。条件分岐の書き方について、どちらのスタイルが多いのか、あるいはどちらが読みやすいと感じるか、といったことです。
私は後者の書き方が好きで、ソースコードの最初に「ダメな条件」を記述し、最後に「問題ない時の処理」を記述するのが好みです。これは、コードの意図が明確になり、可読性が向上すると思ってます。
-------------
if (aaaaaa == 1) {
// 問題ない時の処理
} else {
print("エラーだよ");
}
------or-------
if (aaaaaa != 1) {
print("エラーだよ");
return;
}
// 問題ない時の処理
-------------
上記2つのコードは、どちらも同じ処理を行います。しかし、書き方によってコードの理解しやすさが変わってきます。前者では、条件が真の場合と偽の場合の両方を記述する必要があり、コードが少し長くなる可能性があります。一方、後者では、エラー条件を最初にチェックし、エラーの場合はすぐに処理を中断するため、コードが簡潔になり、可読性が向上します。この「エラー条件を最初にチェックする」という書き方は、「早期リターン」と呼ばれ、多くのプログラミングコミュニティで推奨されています。
早期リターンを採用することで、ネストされた条件分岐を減らすことができ、コードの複雑さを軽減できます。また、エラー処理が明確になり、デバッグが容易になります。もちろん、どちらの書き方が正解というわけではありません。チームのコーディング規約や個人の好みに合わせて選択することが重要です。しかし、早期リターンは、可読性、保守性、デバッグの容易性を向上させるための有効な手段の一つと言えるでしょう。
このガイドでは、X( 旧 Twitter) センシティブの設定を解除する方法を説明します。
プライバシーオプションを選択します。センシティブ コンテンツの項目を見つけます。上記の手順に従えば、x センシティブの設定を解除できます。
最近、テレビでYouTubeを見る機会が増えていませんか?多くのの人が、好きなYouTuberの動画やライブ配信を楽しんでいることと思います。ライブ配信では、コメントだけでなくチャット機能を使って、演者とリアルタイムなやり取りが可能です。
しかし、テレビでYouTubeを見ると、チャットが画面の右半分ほどを占めてしまい、動画を全画面で楽しむことができません。チャット部分を別画面で表示できないだろうか、と疑問に思う方も多いでしょう。
実は、チャット部分を別画面で表示する簡単な方法があるのです。以下のURLに、配信中のビデオIDを「v=」の後に追加するだけで、チャット部分を別画面で表示することができます。
チャット別画面表示URL: https://www.youtube.com/live_chat?v=配信ID
テレビでYouTubeチャット別画面表示機能を使えば、動画を全画面で楽しむと同時に、チャットも快適に閲覧することができます。ぜひ試してみてください!
ブログ「一生ヘタレプログラマ」では、iOSやAndroidの最新情報、プログラミングのヒント、個人的な経験談を紹介しています。最近の記事では、iOS 17.5の更新、Android 15のベータ版、Rocky Linux 9のインストール手順について触れています。また、SwiftのUIViewControllerライフサイクルの詳細な説明や、技術業界での体験談も共有されています。
ーー
とのこと。
Rocky Linux 9を最小構成でインストールした場合、よく忘れがちな初期設定手順をメモとして記載します。
# dnf -y update
まず、最新の状態に更新します。
# nmtui
IPアドレスを固定化する場合は設定してください。(すでに設定済みの場合 は不要です。)
# shutdown -rf now
アップデート内容を反映させるために再起動します。
# ip addr
再起動後、IPアドレスが正しく設定されているか確認します。
上記コマンドで、自分のIPアドレスを確認してください。
補足:
# はroot権限でコマンドを実行することを意味します。nmtui はテキストベースのネットワーク設定ツールです。GUI環境がない場合でも利用できます。2024年4月29日以降、
App Store Connectにアップロードするアプリは
iOS 17、iPadOS 17、tvOS 17、
またはwatchOS 10向けにXcode 15 でビルドする必要があります。
----
過去に書いていたのですが、意外と観ていただいている人がいたので、更新版です
忘れやすいですよね
もう少し、細かいイベントを追加しました
import UIKit
class ViewController: UIViewController {
override func awakeFromNib() {
super.awakeFromNib()
print("awakeFromNib")
}
override func loadView() {
super.loadView()
print("loadView")
}
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad")
}
override func loadViewIfNeeded() {
super.loadViewIfNeeded()
print("loadViewIfNeeded")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("viewWillAppear")
}
override func viewLayoutMarginsDidChange() {
super.viewLayoutMarginsDidChange()
print("viewLayoutMarginsDidChange")
}
override func viewSafeAreaInsetsDidChange() {
super.viewSafeAreaInsetsDidChange()
print("viewSafeAreaInsetsDidChange")
}
override func updateViewConstraints() {
super.updateViewConstraints()
print("updateViewConstraints")
}
override func viewIsAppearing(_ animated: Bool) {
super.viewIsAppearing(animated)
print("viewIsAppearing")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("viewDidAppear")
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
print("viewWillLayoutSubviews")
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print("viewDidLayoutSubviews")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("viewWillDisappear")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("viewDidDisappear")
}
}
2024年2月1日、東京・品川区のオフィス街。
28歳のプログラマ、佐藤は、いつものようにオフィスで仕事をしていた。
佐藤は、新しく開発中のゲームのプログラムを担当していた。
ゲームは、プレイヤーが巨大なモンスターと戦うアクションゲームだった。
佐藤は、ゲームのグラフィックやサウンドも担当していた。
佐藤は、ゲームの完成に向けて、日々懸命に取り組んでいた。
しかし、その日、佐藤はいつもと違う違和感を感じていた。
頭がぼんやりするし、体がだるい。
「風邪かな?」
佐藤は、心配になって、体温を測ってみた。
37.5度。
「やっぱり風邪だ。」
佐藤は、残念そうにため息をついた。
佐藤は、風邪をひくと、いつも仕事に支障をきたす。
頭がぼんやりして、集中力が続かない。
そのため、いつもより多くのミスをしてしまう。
「今日は、早めに帰ろう。」
佐藤は、上司に報告して、会社を後にした。
家に帰ると、すぐに布団に潜り込んだ。
「早く治れよ。」
佐藤は、そう呟いて、目を閉じた。
翌日、佐藤は、さらに体調が悪くなった。
頭痛がひどくなり、熱も38度を超えていた。
佐藤は、仕事を休んで、寝込むことにした。
3日後、佐藤の体調は少しずつ回復し始めた。
しかし、まだ頭痛や倦怠感は残っていた。
佐藤は、仕事に復帰するかどうか迷っていた。
「早く仕事に戻らないと、プロジェクトが遅れる。」
佐藤は、そう考えて、仕事に戻ることにした。
しかし、佐藤の体調は、まだ完全には回復していなかった。
仕事に集中できず、ミスを連発した。
上司は、佐藤の様子を見て、心配そうに言った。
「佐藤、まだ無理をしないほうがいいよ。」
しかし、佐藤は、仕事にこだわりすぎていた。
「大丈夫です。もう大丈夫です。」
佐藤は、そう言って、仕事を続けた。
しかし、佐藤の体調は、さらに悪化した。
頭痛がひどくなり、熱も39度を超えた。
佐藤は、とうとう倒れてしまった。
佐藤は、病院に運ばれ、入院した。
佐藤は、入院して2週間、ようやく退院することができた。
しかし、佐藤は、まだ完全には回復していなかった。
佐藤は、仕事に復帰することを断念した。
佐藤は、自分の過ちを反省した。
「もう、仕事に無理をしない。」
佐藤は、そう心に誓った。
佐藤は、しばらくの間、ゆっくりと休養をとることにした。
そして、体調が完全に回復したら、もう一度、仕事に挑戦することを決意した。
佐藤の物語は、仕事に熱心すぎるあまり、自分の体を壊してしまうことの危険性を警告する物語です。
仕事は大切ですが、健康も大切です。
仕事と健康のバランスをうまく保つことが、大切なのではないでしょうか。
2024年1月18日、神奈川県横浜市にある一小学校で、担任教師の田中由紀は、いつものように授業を行っていた。由紀は、3年生の担任を務め、生徒たちから慕われていた。
授業が終わり、生徒たちが下校していくと、由紀は息を切らせながら机に座った。最近、少し体調がすぐれない気がしていた。
「やっぱり、風邪ひいちゃったかな」
由紀は、自分の額に手を当てた。熱は、まだそれほど高くはない。
「でも、明日も授業があるし、なんとか乗り切らないと」
由紀は、無理をしながらも、翌日の授業に備えて準備を始めた。
翌日、由紀は、いつも通りに学校に向かった。しかし、授業が始まると、頭痛や倦怠感、鼻水などの症状がひどくなってきた。
「もう、無理だ」
由紀は、担任主任に連絡し、休ませてもらうことにした。
由紀は、自宅で療養することにした。しかし、熱はどんどん上昇し、咳や鼻水もひどくなった。
「これは、マズイ」
由紀は、病院に行くことにした。
病院で診察を受けた由紀は、肺炎と診断された。
「肺炎って、重症になることもあるんですよね?」
由紀は、不安でいっぱいだった。
「心配はいりません。早めに治療すれば、大丈夫ですよ」
医師の言葉に、由紀は少し安心した。
由紀は、入院して治療を受けることとなった。
入院中、由紀は、生徒たちのことを心配していた。
「早く退院して、みんなに会いたい」
由紀は、退院の日を待ちわびた。
そして、2週間後、由紀は退院することができた。
退院した由紀は、すぐに学校に向かった。
「先生、おかえりなさい!」
生徒たちは、由紀の帰りを心待ちにしていた。
14日後に風邪をひく小学校教師由紀は、生徒たちと再会し、嬉し涙を流した。
「先生、お大事にしてください」
生徒たちは、由紀を気遣って声をかけてくれた。
由紀は、生徒たちとの再会に、心から安堵した。
由紀は、改めて、教師という仕事の大切さを実感した。
「これからも、生徒たちのために、頑張ろう」
由紀は、そう心に誓った。
13日後に風邪をひく3DCGデザイナー
2024年1月18日、神奈川県横浜市に住む30歳の3DCGデザイナー、佐藤は、いつものように仕事に励んでいた。
佐藤は、大手ゲーム会社に勤務するベテランデザイナーで、これまでに数々のヒットゲームの3DCG制作に携わってきた。彼は、仕事に熱心で、常に完璧な作品を目指して努力していた。
しかし、佐藤にはひとつだけ、悩みがあった。それは、なぜか13日ごとに必ず風邪をひいてしまうことだった。
佐藤は、最初は単なる偶然だと思っていた。しかし、13日ごとに風邪をひくという現象は、何度繰り返しても変わらなかった。
佐藤は、風邪をひくと、仕事に支障をきたすこともあった。また、体調が悪いと、いつものパフォーマンスを発揮することができず、ストレスも溜まっていた。
佐藤は、風邪をひかないように、いろいろな対策を試してみた。しかし、どれも効果はなかった。
ある日、佐藤は、風邪をひく理由を占ってもらうことにした。占い師は、佐藤の守護霊から、次のようなメッセージを受け取った。
「佐藤さん、あなたは、13日ごとに、自分の人生を振り返る機会を与えられています。それは、あなたが、これまでの人生で、何か大切なことを忘れていないか、確認するための機会です。もし、何か大切なことを忘れていたら、それを思い出し、人生をより良いものにするために、行動を起こしてください。」
占い師の言葉を聞いた佐藤は、自分の人生を振り返ってみることにした。
そして、佐藤は、あることに気づいた。それは、彼が、仕事にばかり没頭していて、家族や友人と過ごす時間を、大切にできていなかったということだった。
佐藤は、占い師の言葉を心に留め、家族や友人と過ごす時間を、もっと大切にしようと決意した。
そして、13日後に風邪をひくという現象は、その後、起こらなくなった。
佐藤は、自分の人生をより良いものにするために、大切なことを思い出すことができた。そして、風邪をひくことで、彼は、人生の大切さを学んだのだった。
12日後に風邪をひくCGデザイナー
2024年1月18日、神奈川県横浜市に住むCGデザイナーの佐藤は、いつものように仕事に勤しんでいた。午前中は新しいプロジェクトの打ち合わせ、午後はモデルのモデリング作業。いつも通りの忙しい一日だった。
佐藤は、風邪をひきやすい体質だった。冬になると毎年のように風邪をひき、仕事に支障をきたすことも少なくなかった。そのため、風邪をひかないように気を付けていたが、なかなかうまくいかなかった。
その日の夜、佐藤は仕事で疲れ、早く寝ることにした。布団に入った佐藤は、ふと「12日後に風邪をひく」という予感がした。
「何をバカなことを考えているんだ」と、佐藤は自分に言い聞かせたが、なぜかその予感が消えることはなかった。
翌日、佐藤はいつも通りの仕事をした。しかし、午後からなんだか体がだるくなり、頭が重くなった。
「やっぱり風邪をひくな」と、佐藤は予感通りになったことに少し驚いた。
佐藤は、風邪をひく前に仕事を片付けておきたかった。しかし、体調が悪く、思うように仕事が進まなかった。
12日後、佐藤は高熱と咳で寝込んでいた。仕事は休まざるを得ず、クライアントに迷惑をかけてしまった。
佐藤は、なぜ自分が12日後に風邪をひくのか、分からなかった。しかし、予感が当たったことで、不思議な感覚に陥った。
「もしかして、私の予知能力が開花したのかもしれない」
佐藤は、そんな可能性を少しだけ信じていた。
1年後
佐藤は、仕事で成功を収めていた。予知能力のおかげで、仕事を上手く進めることができた。
ある日、佐藤は新しいプロジェクトの打ち合わせをしていた。
「このプロジェクトは、12日後に完了します」
佐藤は、クライアントにそう言った。
クライアントは、佐藤の予言に驚いた。しかし、佐藤は自信を持って言った。
「私の予知能力は、必ず当たるのです」
そして、佐藤の予言通り、プロジェクトは12日後に完了した。
佐藤の予知能力は、世間に知られるようになり、佐藤は有名になった。佐藤は、自分の能力を人々の役に立てたいと願っていた。
「私の予知能力を使って、世界をより良い場所にしたい」
佐藤は、そんな夢を抱いていた。
11日後に風邪をひく営業
東京のIT企業に勤める営業マン、佐藤は、毎月11日になると風邪をひくという不思議な体質を持っていた。
佐藤は、最初は風邪をひく理由がわからず、病院に通ったり、風邪をひきにくい体質になるように努力したりしたが、何も効果がなかった。
ある日、佐藤は、ある占い師に相談をしてみた。占い師は、佐藤の体質は「11日後に大きな仕事が控えているとき、プレッシャーから風邪をひく」というものだと告げた。
佐藤は、占い師の言葉を信じ、11日後に大きな仕事が控えているときは、無理をせずに休むようにした。すると、風邪をひく頻度が減り、仕事も順調にこなせるようになった。
ある日、佐藤は、大きな取引の交渉を任された。佐藤は、プレッシャーで風邪をひかないように、十分な準備をして交渉に臨んだ。
交渉は、佐藤の予想通り、難航した。しかし、佐藤は、粘り強く交渉を続け、ついに、取引を成立させることができた。
佐藤は、取引成立の喜びに浸っていると、ふと、風邪の予感がした。佐藤は、すぐに帰宅し、早めに寝ることにした。
翌朝、佐藤は、予想通り、風邪をひいていた。しかし、佐藤は、風邪をひいても、取引を成立させたことに、大きな達成感を感じていた。
佐藤は、その後も、11日後に大きな仕事が控えているときは、無理をせずに休むようにした。そして、風邪をひく頻度を減らし、仕事も順調にこなしていくことができた。
佐藤は、自分の体質を、不幸ではなく、幸運なものだと考えるようになった。なぜなら、自分の体質のおかげで、無理をせずに仕事に取り組むことができ、結果的に、大きな成果を上げることができたからだ。
佐藤は、これからも、自分の体質を大切にしながら、仕事に取り組んでいく決意をした。
10日後に風邪をひくプログラマ
2024年1月18日、神奈川県横浜市に住むプログラマの田中は、いつものように自宅で仕事をしていた。
田中は、大手IT企業の社員で、新しく開発中のAIのソフトウェアの開発を担当していた。
田中は、仕事に熱心で、いつも夜遅くまで仕事をしていた。
その日も、田中は、夕方になっても仕事を続けていた。
すると、突然、田中は、頭が痛くなった。
田中は、頭を押さえて、椅子から立ち上がった。
「もしかして、風邪かな?」
田中は、心配になった。
田中は、冷蔵庫から水を取り出して、飲んだ。
しばらくすると、頭痛は治まった。
田中は、安心して、仕事を続けた。
しかし、翌日、田中は、また頭痛に襲われた。
さらに、その日は、鼻水も出てきた。
田中は、やはり、風邪をひいたのだと思った。
田中は、会社を休んで、家で休むことにした。
田中は、ベッドに横になって、寝た。
しかし、なかなか眠れなかった。
田中は、不安になった。
「このままだと、仕事に遅れそうだ……」
田中は、心配で、目が冴えてしまった。
田中は、起きあがって、テレビをつけた。
テレビでは、天気予報が放送されていた。
「明日から、寒波が到来するそうです」
テレビのアナウンサーが言った。
田中は、さらに不安になった。
「寒波で、風邪が悪化したら……」
田中は、考え込んでしまった。
田中は、仕事を早く終わらせて、風邪を治さなければならないと思った。
田中は、ベッドに戻って、眠ろうとした。
すると、ふと、あるアイデアが浮かんだ。
「そうだ、AIに仕事を手伝ってもらえばいいんだ」
田中は、すぐに、AIに仕事を依頼した。
AIは、田中の指示に従って、仕事をこなしていった。
AIのおかげで、田中は、早く仕事を終わらせることができた。
田中は、AIに感謝した。
「ありがとう、AI」
田中は、AIに話しかけながら、眠りについた。
翌日、田中は、風邪が治っていた。
田中は、すぐに、会社に行った。
田中は、AIに仕事を手伝ってもらったおかげで、仕事に遅れることなく、仕事を進めることができた。
田中は、AIに感謝した。
「AIのおかげで、助かったよ」
田中は、AIに話しかけながら、仕事を続けた。
終わり