[Delphi] Определение полного захода в Steam
- Darth Revan
- Майор
- Сообщения: 784
- Зарегистрирован: 30.09.2008
- Поблагодарили: 1 раз
- Контактная информация:
Для работы Team Fortress 2 Items Visibility Tool в Cracked Steam нужно определять логин в Steam. Но я не знаю, как его опредилить программно.
В принципе, можно определять по иконке Steam в трее или по SteamAPI, но как?
Это нужно для Steam Patching Utility (т.е. мне и [user]).
В принципе, можно определять по иконке Steam в трее или по SteamAPI, но как?
Это нужно для Steam Patching Utility (т.е. мне и [user]).
- Darth Revan
- Майор
- Сообщения: 784
- Зарегистрирован: 30.09.2008
- Поблагодарили: 1 раз
- Контактная информация:
fire64
А можно поподробнее о steamislogin?
А можно поподробнее о steamislogin?
-
- Эксперты no-Steam
- Сообщения: 3501
- Зарегистрирован: 18.07.2008
- Благодарил (а): 2 раза
- Поблагодарили: 17 раз
- Контактная информация:
Добавлю ещё от себя вопрос.
Как определить программно, что steam запускает приложение с некоторым appid?
Если точнее, то нам надо из внешней программы определить залогинен ли steam и запущен ли TF2.
Как определить программно, что steam запускает приложение с некоторым appid?
Если точнее, то нам надо из внешней программы определить залогинен ли steam и запущен ли TF2.
© [user]
[user]
вот очень хорошая статья, правда на дотнетах http://cs.rin.ru/forum/viewtopic.php?f= ... 26&start=0
вот очень хорошая статья, правда на дотнетах http://cs.rin.ru/forum/viewtopic.php?f= ... 26&start=0
-
- Эксперты no-Steam
- Сообщения: 2600
- Зарегистрирован: 15.02.2007
- Откуда: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 43 раза
- Контактная информация:
такого увы нет :)[user] писал(а):fire64
Подскажи, где можно найти руководство по steamapi "для начинающих"...
я тебе отправил в личку ссылку на код класса CSteamFunc
там чистый winapi так что думаю проблем с портом на Delphi быть не должно
- Darth Revan
- Майор
- Сообщения: 784
- Зарегистрирован: 30.09.2008
- Поблагодарили: 1 раз
- Контактная информация:
fire64
А мне послать :-D? [user] не в сети.
А мне послать :-D? [user] не в сети.
-
- Разработчик
- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
- Контактная информация:
Код: Выделить всё
int (__cdecl * SteamIsLoggedIn_t)(int *pbIsLoggedIn, TSteamError *pError);
STEAM_API int STEAM_CALL SteamIsLoggedIn (int *pbIsLoggedIn, TSteamError *pError);
int MySteamIsLoggedIn(void) {
int iReturn = 0;
int pbIsLoggedIn = 0;
TSteamError pError = new TSteamError;
try {
//HMODULE steamDLL = GetModuleHandle("steam.dll"); //LoadLibrary("steam.dll");
//SteamIsLoggedIn_t(GetProcAddress(steamDLL, "SteamIsLoggedIn"))(&pbIsLoggedIn, &pError);
SteamIsLoggedIn(&pbIsLoggedIn, &pError);
iReturn = pbIsLoggedIn;
} catch(int a) {
//MessageBox(NULL, pError.szDesc, "MySteamIsLoggedIn Error", MB_OK | MB_ICONHAND | MB_ICONERROR);
iReturn = -1;
}
return iReturn;
}
int IsLoggedIn = MySteamIsLoggedIn(); // 1 - logged in, 0 - not logged in, -1 - Error
Документации писать не моё призвание, но сегодня постараюсь написать ексэмлы для использования функций steam.dllтакого увы нет :)
кстате, естли кому надо последний OSW вчера качал OpenSteamWorks-Revision-235.zip
- Darth Revan
- Майор
- Сообщения: 784
- Зарегистрирован: 30.09.2008
- Поблагодарили: 1 раз
- Контактная информация:
eldest
Спасибо. Но как вот этоперевести в Delphi?
А лучше всё.
Спасибо. Но как вот это
Код: Выделить всё
int (__cdecl * SteamIsLoggedIn_t)(int *pbIsLoggedIn, TSteamError *pError);
STEAM_API int STEAM_CALL SteamIsLoggedIn (int *pbIsLoggedIn, TSteamError *pError);
А лучше всё.
- Darth Revan
- Майор
- Сообщения: 784
- Зарегистрирован: 30.09.2008
- Поблагодарили: 1 раз
- Контактная информация:
Dr_Quake
Тогда уж-костылём будет Си-библиотека.
Тогда уж-костылём будет Си-библиотека.
-
- Разработчик
- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
- Контактная информация:
Darth Revan
Вот так наверное
А проверить запущен ли TF2 из под стима сравнив HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam\SteamPID
Или я не прав?
Вот так наверное
Код: Выделить всё
type
SteamIsLoggedIn_t = function(pbIsLoggedIn: Integer; pError: TSteamError): int; virtual; cdecl;
const
SteamIsLoggedIn: SteamIsLoggedIn_t = nil;
var
steamDLL: THandle;
steamDLL := LoadLibrary('steam.dll');
try
@SteamIsLoggedIn := GetProcAddress(steamDLL, 'SteamIsLoggedIn');
SteamIsLoggedIn(<pbIsLoggedIn>, <pError>);
finally
FreeLibrary(steamDLL);
end;
По идее можно просто мониторить список процессов, если запущен Steam.exe ждать когда запустится TF2[user] писал(а):Добавлю ещё от себя вопрос.
Как определить программно, что steam запускает приложение с некоторым appid?
Если точнее, то нам надо из внешней программы определить залогинен ли steam и запущен ли TF2.
А проверить запущен ли TF2 из под стима сравнив HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam\SteamPID
Или я не прав?