<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97</id>
	<title>Qtの基礎 - 環境変数の取得 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97"/>
	<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97&amp;action=history"/>
	<updated>2026-08-21T18:58:01Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97&amp;diff=4132&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == Qtにおいて、システムの環境変数を取得する手順について記載する。&lt;br&gt; &lt;br&gt;&lt;br&gt;  == qgetenv関数 == 以下の例では、環境変…」</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97&amp;diff=4132&amp;oldid=prev"/>
		<updated>2021-09-28T04:29:30Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == Qtにおいて、システムの環境変数を取得する手順について記載する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;  == qgetenv関数 == 以下の例では、環境変…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
Qtにおいて、システムの環境変数を取得する手順について記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== qgetenv関数 ==&lt;br /&gt;
以下の例では、環境変数&amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;(または、&amp;lt;code&amp;gt;USERNAME&amp;lt;/code&amp;gt;)を取得している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
    QString name = qgetenv(&amp;quot;USER&amp;quot;);  // Linux or MacOS&lt;br /&gt;
    if(name.isEmpty())&lt;br /&gt;
    {  // Windows&lt;br /&gt;
       name = qgetenv(&amp;quot;USERNAME&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    std::cout &amp;lt;&amp;lt; name &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QStandardPaths関数 ==&lt;br /&gt;
&amp;lt;code&amp;gt;QStandardPaths&amp;lt;/code&amp;gt;関数は、異なるユーザのホームディレクトリを取得することはできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、現在ログインしているユーザのホームディレクトリのフルパスを取得している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;QStandardPaths&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
    QStringList homePath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation);&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; homePath.first().split(QDir::separator()).last();&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 外部プロセスの実行およびプラットフォーム固有のAPI ==&lt;br /&gt;
上記の環境変数やホームディレクトリの取得のように、ソフトウェアの下で簡単に変更できないため、最も信頼性が高い方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、QProcessクラスを使用してwhoamiコマンドを呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
Windowsでは、[http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724432%28v=vs.85%29.aspx GetUserName WinAPI]を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;QCoreApplication&amp;gt;&lt;br /&gt;
 #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
 // Strictly pseudo code!&lt;br /&gt;
 #ifdef Q_OS_WIN&lt;br /&gt;
    char acUserName[MAX_USERNAME];&lt;br /&gt;
    DWORD nUserName = sizeof(acUserName);&lt;br /&gt;
    if (GetUserName(acUserName, &amp;amp;nUserName))&lt;br /&gt;
    {&lt;br /&gt;
        std:cout &amp;lt;&amp;lt; acUserName &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 #elif Q_OS_UNIX&lt;br /&gt;
    QCoreApplication coreApplication(argc, argv);&lt;br /&gt;
    QProcess process;&lt;br /&gt;
    QObject::connect(&amp;amp;process, &amp;amp;QProcess::finished, [&amp;amp;coreApplication, &amp;amp;process](int exitCode, QProcess::ExitStatus exitStatus)&lt;br /&gt;
                                                    {&lt;br /&gt;
                                                       std::cout &amp;lt;&amp;lt; process.readAllStandardOutput() &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
                                                       coreApplication.quit();&lt;br /&gt;
                                                    });&lt;br /&gt;
    process.start(&amp;quot;whoami&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    return coreApplication.exec();&lt;br /&gt;
 #endif&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Qt]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>